パススルー クエリを使用して一括挿入ステートメントを実行しようとしています。次のコードがあります。
sSQL = "BULK INSERT tbl_Name "
sSQL = sSQL & "FROM 'C:\Users\UserName\Desktop\File.txt' "
sSQL = sSQL & "WITH "
sSQL = sSQL & "("
sSQL = sSQL & "FIELDTERMINATOR = ',', "
sSQL = sSQL & "ROWTERMINATOR='\n'"
sSQL = sSQL & ");"
Set db = CurrentDb
Set qdf = db.CreateQueryDef("")
qdf.Connect = db.TableDefs("dbo_tbl_Name").Connect
qdf.ReturnRecords = False
qdf.SQL = sSQL
qdf.Execute dbFailOnError
Set qdf = Nothing
Set db = Nothing
私が得るエラーは次3146
のとおりです。ODBC--call failed.
sSQL ステートメントを INSERT STATEMENT または SELECT ステートメントに変更すると、クエリは正常に実行されます。
パススルー クエリで BULK INSERT が機能しないのはなぜですか? 正しいことを確認するために sSQL 文字列を出力すると、次のようになります。
BULK INSERT tbl_Name FROM 'C:\Users\UserName\Desktop\File.txt' WITH (FIELDTERMINATOR=',', ROWTERMINATOR='\n');