• 締切済み

XPバーチャルモードでACESSS2000使用

こんにちは、よろしかったら教えてください。 現在PCはWindows7ですが、WindowsXPバーチャルモードにACCESS2000をインストールし、サーバー(SQLServer2000)とでデータベースを運用しています。 そして上記ACCESSアプリで、レコードを表示した画面で、WORD、EXCEL、PDF等のファイルを取り込んで、あるフォルダに置き、画面上からこの添付ファイルを見られるようにしています。 ところが、バーチャルモードで運用するようになってから「取り込みに失敗」のエラーが 出るようになりました。 コードは以下のような記述です。 エラー処理等は省略 Function XLSFileOpen() Dim objXLS As New Excel.Application Dim varGetFile As Variant Dim filename As String Dim POS As Integer Dim fso, f1, f2, s Dim MyPath As Variant varGetFile = objXLS.GetOpenFilename("すべて (*.*),*.*", , "ファイル選択") POS = InStrRev(varGetFile, "\", , vbTextCompare) filename = Mid(varGetFile, POS + 1) Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.GetFile(varGetFile) Set objXLS = Nothing MyPath = "パス名\" '←サーバフォルダ f1.Copy (MyPath & filename & "") Set f2 = fso.GetFile(MyPath & filename & "") If (f2.Attributes And 1) = False Then f2.Attributes = f2.Attributes + 1 End If MsgBox "添付ファイルを取込みました。" End Function WindowsXPで運用していたときは、「取り込みに失敗」はなかったのですが・・。 原因が判る方、教えていただけると幸です。 よろしくお願いします。

みんなの回答

回答No.2

サーバーフォルダへのアクセス権。 あるいは、サーバーフォルダをイントラネット内ではなくインターネット上のものと誤認。 http://support.microsoft.com/default.aspx?scid=kb;ja;303650 ↑古いKBですが、IE10などでも同様です。 なので、一度XPモードPC内のフォルダを指定して試すのもよいかも。 すでに体験されたでしょうからお分かりのように XPモードはかなり遅いです。 VMware や VirtualBox の方がまだマシですが、似たり寄ったりかも。 メソッドや関数にXPモードが追随しきれていない可能性も? 以上、ご参考までということで。

kitagawasan
質問者

お礼

>サーバーフォルダへのアクセス権。 >あるいは、サーバーフォルダをイントラネット内ではなくインターネット上のものと誤認。  ・  ・ >なので、一度XPモードPC内のフォルダを指定して試すのもよいかも。 ご提案ありがとうございます。 正しく認識したり、時には誤認することもあり得るということでしょうか。 >XPモードはかなり遅いです。  ・ >メソッドや関数にXPモードが追随しきれていない可能性も? 当初は、Win98+メモリ32MBのマシンでこのシステムを開発しました。 それでも添付ファイルをサーバー上のフォルダに失敗なく置くことができました。 ただし、現在はマシン数も増え、社内ネットワーク上を日々多くのデータが行き交っていますので、マシンスペックが上がったといっても環境はより過酷になっているかもしれません。 ありがとうございました。

回答No.1

原因はわかりませんが、問題の切り分けとして。 >「取り込みに失敗」のエラーが からエラートラップを入れているようなので いったん外して VBAから出ている エラー番号と説明 & エラー行を確認してみてください。 あるいは、エラー処理中に、Debug.print Err.number,Err.descriotion を加えて イミディエイトウィンドウで確認を。 f1.Copy (MyPath & filename & "") のような気がしますけど・・・

kitagawasan
質問者

お礼

ご回答ありがとうございます。 エラー処理を外すと、これまで何度かやってみましたが、何故かエラーが出ずわかりませんでした。 大きなファイルを取り込むときに多いかと思えば、EXCELファイルの数百KBのファイルでも「取り込みに失敗」が出ることがあります。 ちなみにクライアントがWinXPで運用していたときは、数十MBのファイルでも取り込みに失敗することはありませんでした。 コードの記述は変わりありません。 再度エラー処理を外すや、仰せのイミディエイトウィンドウでの確認をしてみます。 それから、もしf1.Copy (MyPath & filename & "") が原因であれば、どんな対処を施せばよろしいでしょうか? 推測できるようであれば教えていただけると幸です。 いずれにしても少し様子を見て、またこの場で報告いたします。 ありがとうございました。

関連するQ&A

専門家に質問してみよう