ADOどころかVBAもよくわかっていない初心者です。
顧客情報DBというアクセスのファイルのテーブル「tb顧客」に
フィルターをかけてフィールド「会社名カナ」に「カブシキ」が入っている
データのみをエクセルに張り付けています。
以下でうまく動くのですが、本当は「*カブシキ*」のところをエクセルで入力した任意の言葉
(Cells(5,3)に入力された文字)をワイルドカードで挟んで実行させたいです。
変数を使ったり、そのままCells(5,3).valueを入れたり、と試してみたのですが
うまくいきません。
正しい書き方がお分かりになる方、よろしくお願いします。
Sub 検索_顧客()
Set myCon = New ADODB.Connection
myCon.Provider = "Microsoft.Ace.OLEDB.12.0"
myCon.Open "C:\Users\Desktop\顧客情報DB.accdb"
Set myRS = New ADODB.Recordset
If Cells(5, 3).Value <> "" Then
With myRS
.Open "tb顧客", myCon, adOpenDynamic, adLockOptimistic
.Filter = "会社名カナ like '*カブシキ*'"
End With
End If
Range("D9").CopyFromRecordset myRS
No.2ベストアンサー
- 回答日時:
例えばCells(5,3)に「カブシキ」の文字列が入っているとしたら、
以下の形で求める結果が得られるのではないかと思います。
<現状>
.Filter = "会社名カナ like '*カブシキ*'"
<修正後>
.Filter = "会社名カナ like '*" & Cells(5,3) & "*'"
【説明】
「カブシキ」の文字列を置き換える場合、単純にそこを
「Cells(5,3)」にしてしまえばよさそうに思ってしまいがちですが、
実際には「カブシキ」は「"」で括られた中にありますので、
これだと「Cells(5,3)」という文字列そのものがフィルタとして
渡されてしまいます。
そのため、カブシキの部分を一旦「"」の括りの外に外して
考え、
.Filter = "会社名カナ like '*" & "カブシキ" & "*'"
その上で、「"カブシキ"」の部分を「Cells(5,3)」に変える、
ということになります。
No.3
- 回答日時:
違う観点から
ご提示のVBA記述部分は、この後どうなっていくのでしょうか。
特に myRS は、また何かで使われるのでしょうか。
※ 使われることはない、という前提で。
ADO での曖昧部分は * ではなく % と思ってください。
(Recordset の Filter では * が使えるようですが)
Recordset を Open する時点で、絞り込みします。
また、軽そうなカーソル、読み取りのみとします。
以下、見えている範囲で
If Cells(5, 3).Value <> "" Then
With myRS
.Source = "SELECT * FROM tb顧客 WHERE 会社名カナ like '%" & Cells(5,3) & "%';"
.Open , myCon, adOpenForwardOnly, adLockReadOnly
Range("D9").CopyFromRecordset myRS
.Close
End With
End If
多分、動くと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) 関数の式を教えてください 2 2022/04/04 11:15
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) ListBox1をClickしたときのイベント 5 2022/12/11 19:45
- Visual Basic(VBA) エラー処理 3 2022/04/11 14:58
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
・What sports do you like? ・W...
-
I'm like~、I was like~の使い方
-
or を3つ以上続けるとき
-
look like と like の使い訳...
-
What do you look like? の意味...
-
you'dは何の短縮形
-
自然な接客英語を知りたい!PLE...
-
Would you like~?とWould you...
-
なぜWhat do you like colorで...
-
What subjects do you like?
-
服を脱いでいる途中、を英語で
-
It looks like + S + Vについて
-
「まるで天使のようだ」を英語...
-
it feels likeとI feel like
-
begin ~ing は間違いでしょうか?
-
like as~とlike a~の用法の違...
-
same as~とjust like~について
-
英作文の添削をお願いいたします。
-
「服を見る」を英語でなんと言...
-
likeの後に文章が来るのは、間...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
or を3つ以上続けるとき
-
・What sports do you like? ・W...
-
Would you like~?とWould you...
-
自然な接客英語を知りたい!PLE...
-
I'm like~、I was like~の使い方
-
What do you look like? の意味...
-
「服を見る」を英語でなんと言...
-
you'dは何の短縮形
-
look like と like の使い訳...
-
It looks like + S + Vについて
-
Would you like の後にtoがつく...
-
丁寧な表現を教えて下さい"if y...
-
I mean.... と I mean like....
-
What subjects do you like?
-
「まるで天使のようだ」を英語...
-
外人に「フォークは必要ですか...
-
服を脱いでいる途中、を英語で
-
「○日のうちのどれか」 英語で
-
Would you like to〜のlikeはど...
-
なぜWhat do you like colorで...
おすすめ情報