• ベストアンサー

access2007 copyfile困っています

Access 2007 VBAの質問です。 win7 home premium 64bit です   CopyFile "D:\1.csv","D:\2.csv"とすると、パスが無効ですとエラーが出ます。 CopyFile "D:\1.csv","D:\sub\2.csv"にすれば、成功します。 Dドライブ直下に作成できないのでしょうか。また、直下に作成するにはどうすればよいのでしょうか。 どなたかご教授お願いします。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

?environ・・・でもしかしたら、D/D:\windows が返ってくるかも?と思った次第です。 これはこれで困った状態なのですが。 『管理者として実行』でエラーにならなかったので、 やはり、UAC 絡みの問題と思えてしまいます。 対処方法ですが、望ましいと思われる順です。 ・社内のシステムの管理者さん?に診てもらって根本的に解決する。 ・ドライブ直下に置く運用を止める。 ・#1 さんの方法で問題なければ、これで進める。 ・MSAccess.exe のショートカットを作成し、これを右クリック  プロパティ→ショートカットタブ→「詳細設定(D)」クリック  管理者として実行にチェックを入れて、OK  このショートカットを  C:\Users\あなたのアカウント名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup  フォルダにコピーする。(デスクトップでも可)  (毎回確認画面が出て鬱陶しいです。。) ・UAC の設定を変更する。セキュリティレベルが下がり、WindowsXP時代に逆戻り。  http://www.sakyou.com/ManualShop/Windows/05_UserAccount/07_UAC-Affirmation/17_Win7Pro/index.html ミスリードして状況を悪化させる訳には行かないので、私からはこの辺が限界です。

ishinobutai
質問者

お礼

会社のパソコンで使用の為、ただいま回答を読ませてい頂きました。 誠にありがとうございます、 なにげなくDドライブ直下でファイルの コピーや削除をしていましたので気づきませんでした。私の不注意で皆様の手を煩わせてしまい申し訳ありませんでした。すべてのドライブの直下では、UACの警告メッセージが出ていました。 やはり、対策としまして皆様のご回答のように、フォルダーの追加か移動の手段で処理をしようと思います。ありがとうございました。

その他の回答 (3)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

一般的なOSのセットアップであれば 起動ドライブが常に、Cドライブになります。 で、Cドライブ直下には、UAC の制約のためにファイルを置くことが出来ません。 ですが他のドライブには、その制約は無いハズです。 (Error 75 にはならない) Access のイミディエイトウィンドウで(Ctrl + G) ?environ("systemdrive") と入力しEnter ?environ("systemroot") と入力しEnter ではそれぞれ何が返ってきますか? それとも、 ネットワーク上の共有フォルダをネットワークドライブ(D)に設定したのでしょうか? なお、CopyFile ではなくて FileCopy ですね。 イミディエイトウィンドウで ?syscmd(acSysCmdAccessDir) でEnter で返ってくるフォルダ内の Msaccess.exe を探して、右クリックで『管理者として実行』を選択。 (Home でも出来るかと) Access が立ち上がったら、Ctrl + G で イミディエイトウィンドウ上で件の Filecopy ・・・を 試してエラーにならなければ、UAC の制約のためと考えられます。

ishinobutai
質問者

お礼

適切な回答をありがとうございました。FileCpoyでしたすいません。 なお、accessを管理者として実行しましたらエラーが出ずに処理ができました。UACの制約みたいでしたが、なぜ、サブフォルダをつけると処理でるのは不思議です。 nicotinismさん、ありがとうございます。

ishinobutai
質問者

補足

皆さん早速のご返答ありがとうございます。特にnicotinismさん ありがとうござます。 ?environ("systemdrive") と入力しEnter C:がかえりました。 ?environ("systemroot") と入力しEnter C:\windowsと帰ってきました、これはどういうことでしょうか Dドライブではないということでしょうか。 また、よろしくお願いいたします。

  • jin34
  • ベストアンサー率80% (17/21)
回答No.2

すみません。 3行目は"F:\sub" じゃなくて"D:\sub"です。

ishinobutai
質問者

お礼

ご回答いただきありがとうございました。 Dドライブ直下にどうしてもコピーを置くことができない場合には、 jin34さんのように移動してみます。 ありがとうございます。

  • jin34
  • ベストアンサー率80% (17/21)
回答No.1

直接はできないのだと思います。 subフォルダにいったんコピー後、リネームする手があります。 dim fs set fs=Wscript.createobject("Scripting.Filesystemobject") fs.createfolder "F:\sub" fs.copyfile "D:\1.csv", "D:\sub\2.csv" fs.movefile "D:\sub\2.csv", "D:\2.csv" fs.deletefolder "D:\sub"

関連するQ&A