投稿時間:2004/11/17(Wed) 11:36 投稿者名:kazuやん
Eメール:
URL :
タイトル:DAOについて
こんにちは、kazuやんといいます。 今、DAOでちょっと困っています。
'----------------------------------------------------------------------------------------- Dim r_cnt As Integer
xls_file_name = App.Path & "\test.xls" xlSheetName = "Sheet1$"
in_file_name = App.Path & "\test.csv"
Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(in_file_name) = False Then MsgBox FSO.GetFileName(in_file_name) & "ファイルが存在しません!!" Set FSO = Nothing Exit Sub End If Set FSO = Nothing
Set FSO = CreateObject("Scripting.FileSystemObject") Set ObjTs = FSO.OpenTextFile(in_file_name, ForReading, True) r_cnt = 0
'末尾レコードまでのデータを読込 Do While ObjTs.AtEndOfStream <> True 'r_cnt = r_cnt + 1 '1行読み込み r_rec = ObjTs.ReadLine
Set db = OpenDatabase(xls_file_name, False, False, "Excel 8.0;HDR=No;IMEX=1") 'Recordsetオブジェクトのオープン Set rs = db.OpenRecordset(xlSheetName) Do Until rs.EOF rs.MoveNext Loop rs.Close Set rs = Nothing db.Close Set db = Nothing Loop
Set ObjTs = Nothing Set FSO = Nothing
MsgBox "Fin" Unload Me
End Sub
'-----------------------------------------------------------------------------------------
上記のプログラムなのですが、FSOでcsvファイルを開きループさせています。 その中でDAOでexcelファイルを開きこれもループさせるという単純な処理なのですが、 自分の環境では正常に動作します。又VBがインストールされているパソコンでも正常に動作します。 しかし、VBがインストールされていないとエラーではじかれてしまいます。 「"0x・・"の命令が"0x・・・"のメモリを参照しました。メモリが"written"になることはできませんでした」
色々見てみるとどうやらFSOのループの中でDAOを何度も開いたり閉じたりしている所で警告が出ているようなのです。1回だけ開く場合は正常に終了します。 処理の書き方でまずい所があるのでしょうか?それとも他に原因が・・・。 よろしくお願いします。
|