0
私はAccess VBAにコードを持っています。これはSQLでクエリーテンプレートを満たして実行しています。私はquerydefsする必要があります。最初は正常に動作していますが、SQL文字列を割り当てると2番目にエラー3305が発生します。2番目のQueryDefs.SQLが機能しません
挿入されたテーブルはどちらもOracle DBにあり、テーブルをリンクしています。
コード
Sub prc()
Dim pSQLStr As String
Dim pQuery As QueryDef
Dim pBaza As Database
Set pBaza = CurrentDb
Set pQuery = pBaza.QueryDefs("qryInsertTemplate")
pSQLStr = ""
pSQLStr = pSQLStr & "INSERT INTO tbl1 ("
pSQLStr = pSQLStr & "ID, POS)"
pSQLStr = pSQLStr & "SELECT xlsx.ID, xlsx.pos"
pSQLStr = pSQLStr & " FROM xlsx;"
With pQuery
.SQL = pSQLStr
.ReturnsRecords = False
.Execute
End With
Set pQuery = pBaza.QueryDefs("qryInsertTemplate")
pSQLStr = ""
pSQLStr = pSQLStr & "INSERT INTO tbl2 ("
pSQLStr = pSQLStr & "ID, POS)"
pSQLStr = pSQLStr & "SELECT xlsx.ID, xlsx.pos"
pSQLStr = pSQLStr & " FROM xlsx;"
With pQuery
.SQL = pSQLStr 'here I got error 3305
.ReturnsRecords = False
.Execute
End With
End Sub
クエリの順序を逆にすることができれば、Excelファイルが正しく閉じられていない可能性があります。スタンドアロンで実行すると、クエリ2が動作すると仮定します。 – Gustav
スタンドアロンランニング – Gadziu