質問の条件に不足、矛盾があるので、そこは勝手に推測して回答します。
下記のような条件とします。
- マクロのあるExcelブックとAccessデータベースファイルは同じフォルダ内にある。
- Accessデータベースファイル名は「資料.ACCDB」
- その中のデータの入っているテーブル名は「閲覧」
- Excelのユーザーフォームにテキストボックス「TextBox1」とコマンドボタン「CommandButton1」が配置してある
- テキストボックスに名前を入力してコマンドボタンをクリックしたら、「閲覧」テーブルから「名前」が一致して、かつ都道府県が「千葉」のレコード(行)を抽出して、アクティブシートのA2セル以降に出力する。
vba
1Private Sub CommandButton1_Click()
2
3 Dim DBFile As String
4 DBFile = ThisWorkbook.Path & "\資料.ACCDB"
5
6 '資料.ACCDBファイルに接続
7 Dim cn As ADODB.Connection
8 Set cn = New ADODB.Connection
9 cn.Open _
10 "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFile
11
12 '対象データを抽出するSQL
13 Dim strSQL As String
14 strSQL = "SELECT * FROM 閲覧 where 都道府県='千葉' AND 名前='" & Me.TextBox1.Value & "';"
15
16 '対象データをレコードセットとして開く
17 Dim rs As ADODB.Recordset
18 Set rs = New ADODB.Recordset
19 rs.Open strSQL, cn, adOpenStatic
20
21 'レコードセットをA2セル以降に出力
22 Range("A2").CopyFromRecordset rs
23
24 'レコードセットを閉じる
25 rs.Close: Set rs = Nothing
26 'ACCDBファイルへの接続を閉じる
27 cn.Close: Set cn = Nothing
28End Sub
追記
今回は回答しましたが、丸投げの推奨されない質問になっています。
次回からは、下記を参照して、指摘されていることに留意して質問してください。
質問するときのヒント|teratail(テラテイル)
推奨していない質問|teratail(テラテイル)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/20 11:42