Access VBA質問箱 IV

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

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


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

【10148】CopyFolderについて kiki 08/1/17(木) 11:46 質問[未読]
【10149】Re:CopyFolderについて VBWASURETA 08/1/17(木) 13:34 回答[未読]
【10150】Re:CopyFolderについて VBWASURETA 08/1/17(木) 14:00 発言[未読]
【10159】Re:CopyFolderについて kiki 08/1/22(火) 13:14 お礼[未読]
【10160】Re:CopyFolderについて VBWASURETA 08/1/22(火) 13:32 回答[未読]
【10161】Re:CopyFolderについて VBWASURETA 08/1/22(火) 14:06 発言[未読]
【10166】Re:CopyFolderについて kiki 08/1/23(水) 13:23 お礼[未読]

【10148】CopyFolderについて
質問  kiki  - 08/1/17(木) 11:46 -

引用なし
パスワード
   2台のPCで1つのMO装置にバックアップするときに下記のような現象が発生して悩んでいます。どうか良きアドバイスをお願い致します。

Win Xp(Pro)でACCESS2000を使っています。

ACCESSで作成したシステムを2台のPCで別々に運用しています。それぞれのシステムをMOにバックアップするようにしています。
MO装置は1台しかなく、1台目にMOを接続して2台目からはこの1台目のMO装置に書き込むようにしています。テストの段階ではPC毎にMO装置を接続しての書き込みは問題なく動作していましたが、MO装置を共用するようにして書き込みテストをすると、「MO装置が見付からない」状態になります。
例えばMO装置が無いPCから書き込みをした後に(正常に動作している)MO装置があるPCで書き込みをすると「MO装置がみつからない」(err.number=76)の状態になります。この状態の時にMO装置があるPCを再起動して書き込みをすると正常に動作します。このような現象を解消する方法をお教え下さい。以下にMOへの書き込みコードを記述しますのでどうか良きアドバイスをお願いいたします。(共通のコードです)

Dim strFileSystem as Object
Dim strInFolder  as String
Dim strOutFolder as String

Select Case Rst!Computer_Name
    Case "Honsha001"
       strInFolder = "C:\本社システム1"   
       strOutFolder = "F:\BackUp1"
    Case "Honsha002"
       strInFolder = "C:\本社システム2"
       strOutFolder = "\\Honha001\F\BackUp2"
End Select

strFileSystem.CopyFolder strInFolder, strOutFolder

'オブジェクトの開放
Set strFileSystem = Nothing
    
MsgBox "MOに退避できました"

【10149】Re:CopyFolderについて
回答  VBWASURETA  - 08/1/17(木) 13:34 -

引用なし
パスワード
    ▼kiki さん:
こんにちは。

エラーコード76は指定フォルダが見つからないエラーのようです。
パスは正しいのでしょうか?

後、使用された変数、オブジェクト全て解放されていますでしょうか?

PCを再起動することで書き込みができるとのことなので、
バッティングかどちらかに思われます。

【10150】Re:CopyFolderについて
発言  VBWASURETA  - 08/1/17(木) 14:00 -

引用なし
パスワード
   ▼VBWASURETA さん:

HPにあったサンプルと見比べていたら若干違うようです。

sub test()
  Dim FSO
  Set FSO = CreateObject("Scripting.FileSystemObject")
  ''C:\Tmp\フォルダのSubフォルダを、C:\Work\フォルダにコピーします
  FSO.CopyFolder "C:\Tmp\Sub", "C:\Work\"
  Set FSO = Nothing
end sub

フォルダの指定が違うようです。

元のフォルダ:最後に"\"無しです

"C:\Tmp\Sub"

コピー先フォルダ:最後に"\"有り

"C:\Work\"

【10159】Re:CopyFolderについて
お礼  kiki  - 08/1/22(火) 13:14 -

引用なし
パスワード
   ▼VBWASURETA さん:

アドバイスありがとうございます。いろいろ試してみましたが結果は同じようになりました。
1つだけ違うやり方で試したらできる場合がありました。
1)今まではメニューを作っていますが、終了コマンドでMOに退避して業務を終了さすやりかで、上手く出来ませんでした
2)コマンドボタンを作ってMOに退避すると上手く出来ました。
勿論、MOに退避するコードは共通です。

有難うございました。

【10160】Re:CopyFolderについて
回答  VBWASURETA  - 08/1/22(火) 13:32 -

引用なし
パスワード
   ▼kiki さん:

もしかすると、Accessの問題ではなくMO独自のドライバーやOS/
セキュリティソフト関係等が問題になっているかも知れませんね。

XPでもたまに大容量のファイルを移動させたりすると
OSがそのファイルをロックしてしまって消すことも削除することも
できなくなったり、ドライバーでもMOドライブを認識しなくなったり
などがあります。

【10161】Re:CopyFolderについて
発言  VBWASURETA  - 08/1/22(火) 14:06 -

引用なし
パスワード
   ▼kiki さん:

ちょっと調べてみました。
//www.moug.net/skillup/nksw/nksw14-03.htm?PRINT

CopyFolderメソッドで失敗する場合がある場合に
上記のURLのAPI(使用しているのはExcel VBAですがAPIなので使用可能のはずです)
でやってみると良いそうです。

一応ご参考までに。

【10166】Re:CopyFolderについて
お礼  kiki  - 08/1/23(水) 13:23 -

引用なし
パスワード
   ▼VBWASURETA さん:
ご丁寧に有難うございます。
一度、調べてみます。

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