
access 超初心者です。
フォームに2つのコンボボックス(COM_A,COM_B)があり
そのコンボボックスで条件を2つ設定し、テーブル(TBL)から
条件の一致したレコードを検索したいのですが、うまくいきません。
TBLのフィールド AAA ---> COM_Aで指定
BBB ---> COM_Bで指定
Dim db As DAO.Database
Dim TBL As DAO.Recordset
Set db = CurrentDb
Set TBLrs = db.OpenRecordset("TBL", dbOpenDynaset)
TBLrs.FindFirst"AAA='"&Me.COM_A&"'"And"BBB='"& Me.COM_B & "'"
If TBLrs.NoMatch Then
処理
Else
処理
End If
というコードなのですが、実行すると『型が一致しません』となってしまいます。
TBLrs.FindFirst"AAA='"&Me.COM_A&"'"
If TBLrs.NoMatch Then
~
とか
TBLrs.FindFirst"BBB='"&Me.COM_B&"'"
If TBLrs.NoMatch Then
~
のように条件を1つにすると各々問題なく動作します。
単純にAndでひっつけるだけではダメなのでしょうか?
いろいろ調べましたが、完全に行き詰ってしまいました。
ヒントでもいただければありがたいです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
>TBLrs.FindFirst"AAA='"&Me.COM_A&"'"And"BBB='"& Me.COM_B & "'"
恐らく『「And」は文字列として渡す必要があるから』と考えられて
「"And"」という形で挿入されたのだろうと思います。
確かにそう(=文字列として渡す必要がある)なのですが、そのためには、その前の
「AAA='」という文字列と、「Me.COM_B」というコンボボックスへの参照式とを
結合させた場合と同様に、「&」を使ってやる必要があります。
なお、文字列が連続する場合は、「"~"& "~"」とする代わりに、文字列全体を
一組の「""」で囲って「"~~"」とすることもできます。
ですので、上記の部分を
TBLrs.FindFirst "AAA='" & Me.COM_A & "'" & " And " & "BBB='" & Me.COM_B & "'"
とするか、または連続する文字列をひとつにまとめて
TBLrs.FindFirst "AAA='" & Me.COM_A & "' And BBB='" & Me.COM_B & "'"
と修正すれば、正しく動作するかと思います。
(「And」の前後には、ともに半角スペースが必要なので注意)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAチェックボックスで有効無効切り替えできるように 5 2022/10/21 16:13
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) VBA チェックボックスの設定について 1 2022/10/24 10:27
- Visual Basic(VBA) フォーム上のリストボックスに重複して表示しています 3 2022/10/19 11:55
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースファイル(.db)を開...
-
警察はスマホに保存した動画や...
-
ACCESSのSQLで、NULLかNULLでな...
-
最新の日付とその金額をクエリ...
-
Accessフォームで平均値の出し...
-
SQLPlusで 選手の誕生日を2017...
-
CSVファイルでテキストの改行の...
-
エクセルのフィルタ抽出が固まる
-
ファイルメーカーへネットワー...
-
Accessを開きなおすとテキスト...
-
同じテーブルをLEFT JOIN
-
テキストボックスにコントロー...
-
シャープレジスター エラーコード
-
エクセル 自動入力
-
manana というやつで、間違って...
-
Excel VBA 転記について
-
データ復旧にかかる時間
-
三好康之さんの参考書、データ...
-
半角ハイフンに似た文字
-
データベースの勉強 公務員を目...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースファイル(.db)を開...
-
ACCESSのSQLで、NULLかNULLでな...
-
CSVファイルでテキストの改行の...
-
エクセルのフィルタ抽出が固まる
-
最新の日付とその金額をクエリ...
-
Accessを開きなおすとテキスト...
-
警察はスマホに保存した動画や...
-
顧客データベースを作る場合、...
-
半角ハイフンに似た文字
-
更新クエリをリンクデータベー...
-
テキストボックスにコントロー...
-
シートが異なるセル同士を、相...
-
Excelフィルタ抽出で「検索して...
-
googleフォームでインストール...
-
Access フォーム上でコンボボッ...
-
Accessフォームからパラメータ...
-
DocuWorksでの印刷
-
構文エラー:演算子がありませ...
-
20万行あるデータを動かしたい
-
Access クエリ上で表示させた割...
おすすめ情報