誕生日にもらった意外なもの

下記マクロ「アクセスからインポート」はアクセスの人口テーブルから番号フィールドがエクセルシートセル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の書き方が悪いのでしょが、いろいろ試したがうまく行きません。

初心者ですがよろしくお願い致します。

A 回答 (3件)

たびたびすみません。


&も要りそうです

【例】
& "WHERE 番号 = " & Range("A1").Value & " and 都道府県 = " & Range("B1").Value
    • good
    • 0
この回答へのお礼

うまくいきました。ありがとうございます。

お礼日時:2006/05/06 17:41

and が問題ではなく "" の区切り位置ですかね。



SelCmd = "SELECT * FROM 人口 " _
& "WHERE 番号 = " & Range("A1").Value & " and 都道府県 = " & Range("B1").Value

ちなみに都道府県フィールドが数値ではなく文字列なら

SelCmd = "SELECT * FROM 人口 " _
& "WHERE 番号 = " & Range("A1").Value & " and 都道府県 = """ & Range("B1").Value & """"

となります。
    • good
    • 0
この回答へのお礼

うまくいきました。ありがとうございます。

お礼日時:2006/05/06 17:41

" が1つ足りないとか、、



SelCmd = "SELECT * FROM 人口 " _
& "WHERE 番号 = " & Range("A1").Value and 都道府県 = " & Range("B1").Value 
↑"
【修正例】
& "WHERE 番号 = " & Range("A1").Value " and 都道府県 = " & Range("B1").Value 
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!