Excel ワークシートから SQL サーバー データベースにデータをロードできるようにしたいと考えています。
ループを使用して一度に 1 行ずつ VBA でこれを行うことができますが、さらに進んで結合も行うことができれば素晴らしいと思います。Remouがこのフォームに投稿したコードは理想的に見えますが、うまく動作しません。
私が困惑していると思うのは、VBAがExcelでテーブルを正しく認識できるようにすることです。Remou が提供したコードには、単純に [Sheet2$]; の結合があります。ここで、Excel データをどのように定義しようとしても、「無効なオブジェクト名」エラーが発生し続けます。理想的には、結合したい配列は、Excel でテーブルとして定義されます。
結合で使用するテーブルを認識するために VBA で何が必要ですか? アドバイス/ヒントは大歓迎です。
Dim cnTrans As New ADODB.Connection
''You should probably change Activeworkbook.Fullname to the
''name of your workbook
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& ActiveWorkbook.FullName _
& ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
cn.Open strCon
s = "INSERT INTO [ODBC;Description=TEST;DRIVER=SQL Server;" _
& "SERVER=Server;Trusted_Connection=Yes;" _
& "DATABASE=test].SomeTable ( Col1, Col2, Col3, Col4 ) " _
& "SELECT a.Col1, a.Col2, a.Col3, a.Col4 " _
& "FROM [Sheet2$] a " _
& "LEFT JOIN [ODBC;Description=TEST;DRIVER=SQL Server;" _
& "SERVER=Server;Trusted_Connection=Yes;" _
& "DATABASE=test].SomeTable b ON a.Col1 = b.Col1 " _
& "WHERE b.Col1 Is Null"
cn.Execute s