【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

Access 2007 VBAの質問です。

win7 home premium 64bit です
 
CopyFile "D:\1.csv","D:\2.csv"とすると、パスが無効ですとエラーが出ます。

CopyFile "D:\1.csv","D:\sub\2.csv"にすれば、成功します。

Dドライブ直下に作成できないのでしょうか。また、直下に作成するにはどうすればよいのでしょうか。

どなたかご教授お願いします。

A 回答 (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_User …
ミスリードして状況を悪化させる訳には行かないので、私からはこの辺が限界です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/03/30 09:33

一般的な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 の制約のためと考えられます。

この回答への補足

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

補足日時:2013/03/29 13:58
    • good
    • 0
この回答へのお礼

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

nicotinismさん、ありがとうございます。

お礼日時:2013/03/29 14:16

すみません。


3行目は"F:\sub" じゃなくて"D:\sub"です。
    • good
    • 0
この回答へのお礼

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

ありがとうございます。

お礼日時:2013/03/29 14:22

直接はできないのだと思います。


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"
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報