Sheet1 の列 A に約 1000 個の項目番号のリストがある Excel ワークシートがあります。現在、Sheet1 という名前の Access テーブルにインポートしItemNumbers
、次のクエリを実行します。
SELECT MyTable.ItemNumber, MyTable.ItemName, MyTable.ItemPrice
FROM [ItemNumbers] INNER JOIN MyTable ON [ItemNumbers].ItemNumber = MyTable.ItemNumber
ORDER BY MyTable.ItemNumber;
次に、出力をコピーして Sheet2 に貼り付けます。
Excel の VBA でこれを行い、結果をレコードセットに入れるにはどうすればよいですか? レコードセットをループして結果を Sheet2 に入れる方法を理解できます。クエリを実行するコードがわかりません。
これまでのところ、次のものがあります。Sheet1 列 A の値を使用するように変更するだけです。
Dim cn As Object
Dim rs As Object
Dim strSql As String
Dim strConnection As String
Set cn = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\MyDatabase.accdb"
strSql = "SELECT MyTable.ItemNumber, MyTable.ItemName, MyTable.ItemPrice " & _
"FROM MyTable " & _
"WHERE WHERE (((MyTable.ItemNumber)= ??? IS IN Sheet1!A:A ??? )) " & _
"ORDER BY MyTable.ItemNumber;"
cn.Open strConnection
Set rs = cn.Execute(strSql)
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
ありがとう!!!