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も見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
FindFirst を複数条件で検索
Visual Basic(VBA)
-
ACCESS DAOでFindFirstの書き方
PowerPoint(パワーポイント)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
-
4
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
5
Access200のFilterとFindの違い
その他(データベース)
-
6
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
7
パラメータが少なすぎます。1を指定して下さい。""
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FindFirst複数条件
-
データベースの変換
-
希望の位置へフィールドを追加...
-
構文エラー:演算子がありませ...
-
DB2のログインについて
-
CSEでDB接続しようとすると...
-
【パフォーマンス】ファイル読...
-
oo4oの読み方・・・・。
-
ODBC経由の処理が遅い
-
データベースの最適化をマクロ...
-
MS-Accessのエクスポートで異常...
-
アプローチからアクセスへデー...
-
クエリをキャンセルしたいので...
-
ODBC接続とDBLINK
-
OpenOfficeでaccessが開けない
-
AndroidからのAccessデータベー...
-
daoのrecordcountで件数が取れ...
-
オラクルのLONG RAW型のテーブ...
-
バッファプールって?
-
Windows7でOffice97は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
希望の位置へフィールドを追加...
-
UNION ALLのように順番がありNU...
-
accessのvbaでの実行時エラーに...
-
FindFirst複数条件
-
列名が無効です
-
whileが上手く回らず困っています
-
Berkeley DB 1.85 -> GNU dbm ...
-
エクセルからアクセスにADO...
-
三枝夕夏って?
-
データベースの変換
-
Access 余分な件数分データ削除...
-
DAOでのコードをADOへ書き直し
-
パススルークエリの使い方について
-
型 varchar から型 numeric へ...
-
データベースの最適化をマクロ...
-
accessの勉強ができるサイトは?
-
構文エラー:演算子がありませ...
-
CDの売上枚数を知りたいのですが
-
クエリをキャンセルしたいので...
-
データベースの選定について 要...
おすすめ情報