- ベストアンサー
accessのステートメント
XPの環境でaccess2000のステートメントなどが正常に動作しません。Windows98seやwindowsMeの環境では正常に動作します。 例えば、MKDIRやsusst.exeなどです。
- みんなの回答 (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)
- tsukasa-12r
- ベストアンサー率65% (358/549)
>コマンドプロンプトでの操作は正常ですが、VBAの中でエラーが発生します。 そうなんですかぁ。システム自体に問題があってコマンドプロンプトでも正常に動作しないんじゃないかと勝手に推測していたんですけど、そうじゃないんですね。 susst.exe って、subst.exe のことですよね。Win98 や WinMe では正常に動作して WinXP でも正常に動作しなくて、しかもそれがファイルやフォルダ関係となると、権限関係くらいしか思いつかないですが・・・。Access でもコマンドプロンプトでも、同じユーザーで実行してるんですよね?お役に立てなくて申し訳ないですが、よくわかりません。
- Hayashi_Trek
- ベストアンサー率44% (366/818)
原因として思いつくのは ・MKDIR の引数(つまり作成したいディレクトリ名)に空白が含まれている。 ディレクトリ名を""で囲むとどうでしょうか? ・susst.exeに対するpathが通っていない。 exe名をフルパスで指定するとどうでしょうか?
- tsukasa-12r
- ベストアンサー率65% (358/549)
「正常に動作しません」とはどういう状況なのでしょうか?何かエラーメッセージが出ますか?それとも、何のエラーメッセージも出ないけれど、期待したとおりに実行されていないということでしょうか? もし、何かエラーメッセージが出ているのなら、何かの手がかりになるかもしれませんので補足にでも書いてください。 それと、MKDIR はわかるんですが、susst.exe とは一体何でしょうか?私は今まで聞いたこともありませんし、Google なんかで検索してみてもそれらしいものは検索に引っかかりませんでした。 susst.exe って、何をするものでしょうか? Shell 関数で susst.exe という実行ファイルを実行しているということでしょうか?XPのコマンドプロンプトや「ファイル名を指定して実行」で実行すると正常に動作しますか?
- maruru01
- ベストアンサー率51% (1179/2272)
>参照設定のダイアログボックスの中に、 >参照不可という文字は見出せません。 参照不可はないのでしょう。 そういうことなら、申し訳ありませんが、他の原因はちょっと思いつきません。
- maruru01
- ベストアンサー率51% (1179/2272)
>参照可能なライブラリファイルはたくさんありますが、 ですから、「参照不可」になっている項目はありますか? ある場合は、チェックを外して下さい。 参照不可の原因は、バージョン違いが多いので、参照不可になっている項目と同じ項目でバージョンが違うものをリストから探して、参照設定をして下さい。
補足
参照不可の意味がわかりません。 参照設定のダイアログボックスの中に、参照不可という 文字は見出せません。今現在選択されているファイルに 何かマークでも付加されるのでしょうか? 申し訳ありません。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 とりあえず、VBE画面のメニューの[ツール]→[参照設定]で参照不可になっている項目がないか確認して下さい。 (バージョン違いなどでそうなっている場合があります。) あったら、チェックを外し、必要なら正しく参照設定をし直して下さい。
補足
参照可能なライブラリファイルはたくさん ありますが、どのファイルが選択されてないと いけないのでしょうか?
補足
mkdirのエラーは特にメッセージはでません。 コマンドプロンプトでの操作は正常ですが、VBAの中で エラーが発生します。 susst.exeはdosコマンドで、仮想ドライブの設定で つかいます。これは、ステートメントでないので、 shell関数を用いて使用します。 しかし、mkdirと同じで、VBAでエラー、コマンドプロンプトではうまくゆきます。