- ベストアンサー
エクセルVBAでSQLを使ってアクセルのデータを引き出す
下記マクロ「アクセスからインポート」はアクセスの人口テーブルから番号フィールドがエクセルシートセルA1に入力された番号と一致するデータのみをエクセルのセルA5以下に入力するマクロですが、★部分を書き換えて番号フィールドがセルA1、都道府県フィールドがセルB2と一致するデータを取り出したい。 Sub アクセスからインポート() Dim cn As Connection Dim rs As Recordset Dim SelCmd As String 'データベースに接続 Set cn = New Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\Excel\Sample.mdb" cn.Open '★↓これはうまく動きます SelCmd = "SELECT * FROM 人口 " _ & "WHERE 番号 = " & Range("A1").Value 'データを取得 Set rs = New Recordset rs.Open SelCmd, cn 'シートに貼り付け Range("A5").CopyFromRecordset rs '後処理 rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub ★↓これを入力しようとするとエラーになります。 SelCmd = "SELECT * FROM 人口 " _ & "WHERE 番号 = " & Range("A1").Value and 都道府県 = " & Range("B1").Value andの書き方が悪いのでしょが、いろいろ試したがうまく行きません。 初心者ですがよろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
たびたびすみません。 &も要りそうです 【例】 & "WHERE 番号 = " & Range("A1").Value & " and 都道府県 = " & Range("B1").Value
その他の回答 (2)
- dober-o
- ベストアンサー率59% (260/439)
and が問題ではなく "" の区切り位置ですかね。 SelCmd = "SELECT * FROM 人口 " _ & "WHERE 番号 = " & Range("A1").Value & " and 都道府県 = " & Range("B1").Value ちなみに都道府県フィールドが数値ではなく文字列なら SelCmd = "SELECT * FROM 人口 " _ & "WHERE 番号 = " & Range("A1").Value & " and 都道府県 = """ & Range("B1").Value & """" となります。
お礼
うまくいきました。ありがとうございます。
- komono2006
- ベストアンサー率25% (1/4)
" が1つ足りないとか、、 SelCmd = "SELECT * FROM 人口 " _ & "WHERE 番号 = " & Range("A1").Value and 都道府県 = " & Range("B1").Value ↑" 【修正例】 & "WHERE 番号 = " & Range("A1").Value " and 都道府県 = " & Range("B1").Value
お礼
うまくいきました。ありがとうございます。