• ベストアンサー

accessのステートメント

XPの環境でaccess2000のステートメントなどが正常に動作しません。Windows98seやwindowsMeの環境では正常に動作します。 例えば、MKDIRやsusst.exeなどです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.7

なんか解決していないようなのでちょいテストコードを Private Const DIR_TEST   As String = "C:\hogehoge" Private Const DRV_VIR    As String = "Z:" Private Sub CmdTest1_Click()   'ディレクトリ作成   Call MkDir(DIR_TEST) End Sub Private Sub CmdTest2_Click()   Dim strCommand   As String   '仮想ドライブ設定   'strCommand = Environ("windir") & "\system32\subst " & DRV_VIR & " " & DIR_TEST   strCommand = "subst " & DRV_VIR & " " & DIR_TEST   Call Shell(strCommand) End Sub Private Sub CmdTest3_Click()   Dim strCommand   As String   '仮想ドライブ解除   'strCommand = Environ("windir") & "\system32\subst " & DRV_VIR & " /d"   strCommand = "subst " & DRV_VIR & " /d"   Call Shell(strCommand) End Sub Private Sub CmdTest4_Click()   'ディレクトリ削除   Call RmDir(DIR_TEST) End Sub 試験環境: ・WinXP+Ac2002 ・Win2K+Ac2002runtime ・Win2K+Ac2000 参照設定: ・Visual Basic For Applications ・Microsoft Access *.* Object Library 上記環境で正常動作を確認しています NT系しか検証していませんが... (もしかして釣りですか?)

その他の回答 (6)

回答No.6

>コマンドプロンプトでの操作は正常ですが、VBAの中でエラーが発生します。 そうなんですかぁ。システム自体に問題があってコマンドプロンプトでも正常に動作しないんじゃないかと勝手に推測していたんですけど、そうじゃないんですね。 susst.exe って、subst.exe のことですよね。Win98 や WinMe では正常に動作して WinXP でも正常に動作しなくて、しかもそれがファイルやフォルダ関係となると、権限関係くらいしか思いつかないですが・・・。Access でもコマンドプロンプトでも、同じユーザーで実行してるんですよね?お役に立てなくて申し訳ないですが、よくわかりません。

回答No.5

原因として思いつくのは ・MKDIR の引数(つまり作成したいディレクトリ名)に空白が含まれている。  ディレクトリ名を""で囲むとどうでしょうか? ・susst.exeに対するpathが通っていない。  exe名をフルパスで指定するとどうでしょうか?

回答No.4

「正常に動作しません」とはどういう状況なのでしょうか?何かエラーメッセージが出ますか?それとも、何のエラーメッセージも出ないけれど、期待したとおりに実行されていないということでしょうか? もし、何かエラーメッセージが出ているのなら、何かの手がかりになるかもしれませんので補足にでも書いてください。 それと、MKDIR はわかるんですが、susst.exe とは一体何でしょうか?私は今まで聞いたこともありませんし、Google なんかで検索してみてもそれらしいものは検索に引っかかりませんでした。 susst.exe って、何をするものでしょうか? Shell 関数で susst.exe という実行ファイルを実行しているということでしょうか?XPのコマンドプロンプトや「ファイル名を指定して実行」で実行すると正常に動作しますか?

qaccess
質問者

補足

mkdirのエラーは特にメッセージはでません。 コマンドプロンプトでの操作は正常ですが、VBAの中で エラーが発生します。 susst.exeはdosコマンドで、仮想ドライブの設定で つかいます。これは、ステートメントでないので、 shell関数を用いて使用します。 しかし、mkdirと同じで、VBAでエラー、コマンドプロンプトではうまくゆきます。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

>参照設定のダイアログボックスの中に、 >参照不可という文字は見出せません。 参照不可はないのでしょう。 そういうことなら、申し訳ありませんが、他の原因はちょっと思いつきません。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

>参照可能なライブラリファイルはたくさんありますが、 ですから、「参照不可」になっている項目はありますか? ある場合は、チェックを外して下さい。 参照不可の原因は、バージョン違いが多いので、参照不可になっている項目と同じ項目でバージョンが違うものをリストから探して、参照設定をして下さい。

qaccess
質問者

補足

参照不可の意味がわかりません。 参照設定のダイアログボックスの中に、参照不可という 文字は見出せません。今現在選択されているファイルに 何かマークでも付加されるのでしょうか? 申し訳ありません。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 とりあえず、VBE画面のメニューの[ツール]→[参照設定]で参照不可になっている項目がないか確認して下さい。 (バージョン違いなどでそうなっている場合があります。) あったら、チェックを外し、必要なら正しく参照設定をし直して下さい。

qaccess
質問者

補足

参照可能なライブラリファイルはたくさん ありますが、どのファイルが選択されてないと いけないのでしょうか?

関連するQ&A