mayu
2021/08/25 (水) 17:41:47
ef559@a99f1
おそらくですが、VB.NET で利用なさっているのが
ADO ではなく、ADO.NET の DataSet だからではないでしょうか。
レガシーADO は OLE DB プロバイダー
ADO.NET は .NET Framework データプロバイダー
とアーキテクチャも異なっており、
名前が似てはいますけど、仕様は全くの別物になっています。
一応、SQLServer 側のテーブルから Acccess のテーブルへ
Insert文を発行する例を載せておきます。
Sub insertTBL2()
Const fDate As Date = #8/1/2021#
Const tDate As Date = #8/31/2021#
Dim strSQL As String
'接続に用いるプロバイダがODBCのため、日付リテラルの引用符は
'Transact-SQLの単一引用符ではなく、Access-SQLのシャープになります
strSQL = "INSERT INTO TBL2 " & vbNewLine _
& "SELECT * FROM " & vbNewLine _
& "[ODBC;" & vbNewLine _
& "driver=SQL SERVER;" & vbNewLine _
& "server=SALESSV2\ABCINSTANCE;" & vbNewLine _
& "trusted connection=YES;" & vbNewLine _
& "database=AAA].TBL1 " & vbNewLine _
& "WHERE planDate Between #" & fDate & "# " & vbNewLine _
& " And #" & tDate & "# " & vbNewLine _
& "ORDER BY ID;"
CurrentProject.Connection.Execute CommandText:=strSQL _
, Options:=adExecuteNoRecords
End Sub
通報 ...