Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2010)
ADPファイルのオブジェクトをエクスポート
投稿日時: 20/03/17 17:46:22
投稿者: rai

ADPからAccdbファイルに移行中です。
 
AccdbファイルからADPのオブジェクトをインポートすると、非常に時間を要したため
ADPからAccdbにエクスポート処理をVBAで実行しましたがエラーが発生しました。
調べましたが、原因を突き止められないため質問させて頂きます。
 
エラー番号:2501 "TransferDatabase アクションの実行は取り消されました"
 
 
 
Private Sub cmdExpObj_Click()
    Dim DB1 As Database
     
    Dim obj As Object
    Dim srcMdb As String
     
    srcMdb = "C:\test\testAccdb.accdb"
    Set DB1 = OpenDatabase(srcMdb)
 
    For Each obj In CurrentProject.AllReports
        DoCmd.TransferDatabase acExport, "Microsoft Access", DB1.name, acReport, obj.name, obj.name
    Next
    DB1.Close
    Set DB1 = Nothing
     
End Sub

回答
投稿日時: 20/03/19 11:36:52
投稿者: sk

引用:
Dim DB1 As Database

引用:
Set DB1 = OpenDatabase(srcMdb)

引用:
DB1.Close
Set DB1 = Nothing

これらのコードは何のために実行されているのでしょうか。
 
引用:
srcMdb = "C:\test\testAccdb.accdb"

引用:
DoCmd.TransferDatabase acExport, "Microsoft Access", DB1.name, acReport, obj.name, obj.name

DoCmd.TransferDatabase acExport, "Microsoft Access", srcMdb, acReport, obj.name, obj.name
 
-------------------------------------------------------------------
 
ただエクスポートするだけなら、上記のような形で十分であるはず。
 
引用:
エラー番号:2501 "TransferDatabase アクションの実行は取り消されました"

例えば、別の Access のインスタンス上で(または他のユーザーによって)
testAccdb.accdb が開かれている状態でレポートのエクスポートを
実行なさろうとしているからでは。

投稿日時: 20/04/08 15:40:54
投稿者: rai

お礼が遅れて申し訳ありません。
 
ご指摘の通り修正し、問題解決しました。
落ち着いてコードを見れば分かる内容でしたのに、焦っていて気づきませんでした。
ありがとうございました。