実現したいこと&前提
ACCESSのバックアップ用に指定したテーブルのCSVを取得
ACCESSはmdbファイルで3つある。エクセルで操作することが前提
参照設定にACCESS16とACCESS databaseengin追加
発生している問題・エラーメッセージ
一回目はエラーなく進む。
2回目でエラーになる
"リモートサーバがないか使用できる状態ではありません"
ACCESSを開かずにできるならそうしたいですが
DoCmd.TransferText でACCESSを開いていないと
"コマンドまたはアクション'テキスト変換'は無効です"
なのでしょうがなくcreateobject(access)で開いている。
該当のソースコード
Sub ACCESSkaraCSV()
Set ws_sitei = ThisWorkbook.Worksheets("指定テーブル") Set ACCESSobj = CreateObject("Access.Application") ACCESSobj.OpenCurrentDatabase (mdbpath) ACCESSobj.Visible = True '↓ここで"リモートサーバがないか使用できる状態ではありません" Set DB = currentDb ws_sitei.Range("A2:A" & ws_sitei.Range("A2").Rows.End(xlDown).Row).Name = "指定テーブル" Set r_sitei = ws_sitei.Range("指定テーブル") For i = 1 To r_sitei.Rows.Count 'table_nameに入るテーブル名がCSV排出されます table_name = r_sitei(i) '↓ここで"コマンドまたはアクション'テキスト変換'は無効です" DoCmd.TransferText acExportDelim, , table_name, path & "\" & table_name & ".csv", True Next End If ACCESSobj.Quit Set ACCESSobj = Nothing DB.Close Set DB = Nothing MsgBox "end" End If
End Sub
試したこと
set db = opendatabase(mdbpath)
set db = dbe.opendatabase(mdbpath)
上記に変更しても同じエラー
ACCESSobj.quitに追加で
ACCESSobj.CloseCurrentDatabase
できない
"リモートサーバがないか使用できる状態ではありません"
を調べるとオブジェクトの解放しかでてこないがしてるっぽい
たしかに一回目が終わってリセットボタンを押して2回目だったり
end subではなくendにすると上手くいくので一回目終了後に何か残っているのかもしれませんが、setは開放している。。。
"コマンドまたはアクション'テキスト変換'は無効です"
を調べると'テキスト変換'の部分が違うエラーの物しか出てこない

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/05/09 07:39
2023/05/09 07:47 編集
2023/05/09 08:01
2023/05/09 08:04