Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1578 / 2272 ツリー ←次へ | 前へ→

【6415】Format関数とOracle9i RUMIKO 05/10/5(水) 14:27 質問[未読]
【6418】Re:Format関数とOracle9i YU-TANG 05/10/6(木) 8:28 発言[未読]
【6422】Re:Format関数とOracle9i RUMIKO 05/10/6(木) 9:24 質問[未読]
【6426】Re:Format関数とOracle9i YU-TANG 05/10/6(木) 12:01 発言[未読]
【6428】Re:Format関数とOracle9i RUMIKO 05/10/6(木) 15:10 回答[未読]
【6432】Re:Format関数とOracle9i YU-TANG 05/10/6(木) 16:30 発言[未読]
【6433】Re:Format関数とOracle9i RUMIKO 05/10/6(木) 16:55 お礼[未読]

【6415】Format関数とOracle9i
質問  RUMIKO  - 05/10/5(水) 14:27 -

引用なし
パスワード
   はじめて質問させていただきます。よろしくお願いします。
社内で、Oracle8i+9iと9iのみという環境が混在しており、9iのみのユーザでmdbを実行させるとFormat関数を使用しているクエリーでエラーになり実行できません。
WinXP、Office2002という環境は同じです。
こちらの質問箱で"Format関数"で検索したところ、"書き直してみる"というのがあったのでやってみましたがダメでした。
どなたか解決策をご存知ないでしょうか。

【6418】Re:Format関数とOracle9i
発言  YU-TANG WEB  - 05/10/6(木) 8:28 -

引用なし
パスワード
   おはようございます、YU-TANG です。

> Format関数を使用しているクエリーでエラーになり実行できません。

どんなエラーか提示すると、適切なレスが付きやすいと思います。

とりあえず、可能性の一つとして。

http://support.microsoft.com/kb/283806/ja

【6422】Re:Format関数とOracle9i
質問  RUMIKO  - 05/10/6(木) 9:24 -

引用なし
パスワード
   ▼YU-TANG さん:

おはようございます。レスをありがとうございます。

>どんなエラーか提示すると、適切なレスが付きやすいと思います。

そうですね。
実行時のエラーメッセージは以下の通りです。

『クエリ式 'Format([Field_A])' の この関数は式では使用できません。』

Field_Aはこのクエリで使用しているテーブルの項目で、タイプはメモ型です。
テーブルはOracleにあり、該当のAccessにアタッチしてあります。
OracleでみるとField_AのタイプはVARCHAR(2000)です。

Oracle9i環境のユーザでは上記のようなエラーが出てしまいます。


>とりあえず、可能性の一つとして。
>
>http://support.microsoft.com/kb/283806/ja

ありがとうございます。
見てみましたが、参照設定(ライブラリ)に関するもののようで
今回の現象では解決しないようです。

よろしくお願いします。

【6426】Re:Format関数とOracle9i
発言  YU-TANG WEB  - 05/10/6(木) 12:01 -

引用なし
パスワード
   こんにちは、YU-TANG です。

> 『クエリ式 'Format([Field_A])' の この関数は式では使用できません。』

ちょっと本題とズレるかもしれませんが、この式はどのような意味(目的)
なのでしょうか。
第 2 引数を省略して Format 関数を使うケースはあまり見かけないので、
後学のために教えていただけると嬉しいです。

> OracleでみるとField_AのタイプはVARCHAR(2000)です。

別のデータ型のフィールドで Format 関数を使っても、そちらはエラーに
ならないのでしょうか?
また、イミディエイト ウィンドウ上で「?Format(1,"000")」とか
流した場合は、どうなのでしょうか?

> 見てみましたが、参照設定(ライブラリ)に関するもののようで
> 今回の現象では解決しないようです。

参考のために、どのような検証の結果 参照設定が無関係と判断したのか、
差し支えなければ教えていただけますか。

【6428】Re:Format関数とOracle9i
回答  RUMIKO  - 05/10/6(木) 15:10 -

引用なし
パスワード
   ▼YU-TANG さん:

こんにちは。お世話になります。

>> 『クエリ式 'Format([Field_A])' の この関数は式では使用できません。』
>
>ちょっと本題とズレるかもしれませんが、この式はどのような意味(目的)
>なのでしょうか。
>第 2 引数を省略して Format 関数を使うケースはあまり見かけないので、
>後学のために教えていただけると嬉しいです。

クエリでリンクを張るときに、フィールドタイプが異なると当然のごとくリンクできませんよね。
リンク元がメモ型フィールド、リンク先がテキストとなった場合、メモ型フィールドにFormat関数を(引数はひとつだけ)使用するとテキスト型とリンクができるというのを発見した人がわが社にいます(^^)V


>> OracleでみるとField_AのタイプはVARCHAR(2000)です。
>
>別のデータ型のフィールドで Format 関数を使っても、そちらはエラーに
>ならないのでしょうか?
>また、イミディエイト ウィンドウ上で「?Format(1,"000")」とか
>流した場合は、どうなのでしょうか?

イミディエイト ウィンドウ・・・使ったことがないんです。
使い方を調べてテストしてみたいと思います。


>> 見てみましたが、参照設定(ライブラリ)に関するもののようで
>> 今回の現象では解決しないようです。
>
>参考のために、どのような検証の結果 参照設定が無関係と判断したのか、
>差し支えなければ教えていただけますか。

リンク先のページには、Access 2000と97にするものでしたが、いちおう2000のページをチェックしました。
まず、エラーメッセージが違いました。

-------------------------------------------
エラー メッセージ 1
データベースまたはプロジェクトに、ファイル <filename> を参照する切断された参照が含まれています。

* データベースまたはプロジェクトが正しいかどうか確認し、この参照を修復してください。
------------------------------------------

Fomat関数が動かないAccessの参照設定をみても参照不可になっているものはなかったので無関係と思いました。
また、このページに書かれている対処方法は、以前別件ですが異なるバージョンで同じmdbを動かしたところ、上記のようなメッセージが出た経験があります。
そのときはこの対処方法を参考にさせていただきました。

以上ですがご参考になったでしょうか。
私としてはやはりOracleのライブラリかなにかが関連しているのではないかとにらんでるのですが・・・。

【6432】Re:Format関数とOracle9i
発言  YU-TANG WEB  - 05/10/6(木) 16:30 -

引用なし
パスワード
   こんにちは、YU-TANG です。

> リンク元がメモ型フィールド、リンク先がテキストとなった場合、
> メモ型フィールドにFormat関数を(引数はひとつだけ)使用すると
> テキスト型とリンクができるというのを発見した人がわが社に
> います(^^)V

結合のためにデータ型を合わせたいということですか。
それなら CStr 関数の方が効率良さそうですが。

> イミディエイト ウィンドウ・・・使ったことがないんです。
> 使い方を調べてテストしてみたいと思います。

[Ctrl] + [G] で起動します。

> まず、エラーメッセージが違いました。

違うのは当然で、KB に載っているのは参照不可ライブラリが有る場合に
VB コンパイラが吐くエラーです。
RUMIKO さんの場合はクエリでエラーになっているわけですから、エラーを
吐いているのは Jet です。
参照不可ライブラリが有る状況下で Jet が吐くエラーが、
「クエリ式 '式' の この関数は式では使用できません。」です。

http://www.f3.dion.ne.jp/~element/msaccess/AcTipsFunctionErrorInQuery.html#reference

エラーは違っても、原因は同一です。

# 逆に、異なる原因で同一エラーというケースもあるので、直るまで
# 確実なことは言えませんが。

> Fomat関数が動かないAccessの参照設定をみても参照不可になっている
> ものはなかったので無関係と思いました。

念のために、外せるものは一度全部外して [OK] で確定してから、再度
付け直してみた方がよいでしょう。
私は直接経験したことはありませんが、それで直ったケース(投稿)を
過去に何度か見ていますので。

> 私としてはやはりOracleのライブラリかなにかが関連しているのでは
> ないかとにらんでるのですが・・・。

私は Oracle は詳しくないので何とも言えませんが、MDB 依存なのか
環境依存なのかの切り分けは、しておいた方がよいと思います。

【6433】Re:Format関数とOracle9i
お礼  RUMIKO  - 05/10/6(木) 16:55 -

引用なし
パスワード
   ▼YU-TANG さん:

解決しました!
前回YU-TANGさんのレスをよく読みなおして、やはり参照設定から見直そうと考え直しました。
OLE Automationにチェックが入っていたので、これをはずして実行するとクエリは動きました。
その後、再びチェックしてみましたがクエリは動きました。
勝手な思い込みは良くないですね。いい気づきを頂きました。

>> リンク元がメモ型フィールド、リンク先がテキストとなった場合、
>> メモ型フィールドにFormat関数を(引数はひとつだけ)使用すると
>> テキスト型とリンクができるというのを発見した人がわが社に
>> います(^^)V
>
>結合のためにデータ型を合わせたいということですか。
>それなら CStr 関数の方が効率良さそうですが。

CStr関数ではリンクできなかったと記憶してます。

>> イミディエイト ウィンドウ・・・使ったことがないんです。
>> 使い方を調べてテストしてみたいと思います。
>
>[Ctrl] + [G] で起動します。

はい。次回から利用したいと考えてます。

>念のために、外せるものは一度全部外して [OK] で確定してから、再度
>付け直してみた方がよいでしょう。
>私は直接経験したことはありませんが、それで直ったケース(投稿)を
>過去に何度か見ていますので。
>
>> 私としてはやはりOracleのライブラリかなにかが関連しているのでは
>> ないかとにらんでるのですが・・・。
>
>私は Oracle は詳しくないので何とも言えませんが、MDB 依存なのか
>環境依存なのかの切り分けは、しておいた方がよいと思います。

このレスを頂く前に解決したわけですが、YU-TANGさんのおっしゃることが正しかったわけです。
ホントにありがとうございました。
言われなければ解らなかった(やらなかった)ことです。
助かりました。

1578 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078231
(SS)C-BOARD v3.8 is Free