Page 401 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼リストボックスで検索 あや 03/10/2(木) 15:55 ┗Re:リストボックスで検索 イケガミ 03/10/2(木) 19:31 ┗Re:リストボックスで検索 あや 03/10/3(金) 8:28 ┗Re:リストボックスで検索 あや 03/10/7(火) 16:38 ┗Re:リストボックスで検索 イケガミ 03/10/7(火) 22:25 ┗Re:リストボックスで検索 あや 03/10/8(水) 11:42 ┗Re:リストボックスで検索 イケガミ 03/10/8(水) 17:04 ┗Re:リストボックスで検索 あや 03/10/9(木) 9:12 ┗Re:リストボックスで検索 イケガミ 03/10/9(木) 13:19 ┗解決しました! あや 03/10/9(木) 19:07 ─────────────────────────────────────── ■題名 : リストボックスで検索 ■名前 : あや ■日付 : 03/10/2(木) 15:55 -------------------------------------------------------------------------
検索で探しましたが見つかりませんでしたので質問させて頂きます。 リストボックスで選択し検索しています。 ただ、何も選択せずに検索のボタンを押すとエラーになってしまいます。 それを回避するために、「選択していません」のようなメッセージを出して エラーを回避したいのですが、どうしたらよいのでしょうか? 宜しくお願いいたします。 |
>ただ、何も選択せずに検索のボタンを押すとエラーになってしまいます。 If IsNull(Me!リストボックス名) Then MsgBox "選択してください!" Exit Sub End If のようにしてみてください。 |
ありがとうございました。 出先でこの質問箱を確認していますので、 戻り次第試してみて、 結果をお知らせします。 取り急ぎお礼まで |
試してみたのですが、教えていただいたVBAを入れる箇所が悪いらしく クエリーが消えてしまいます。 ↓のどこに入れたら良いのでしょうか? お手数をおかけしますが宜しくお願いします。 Private Sub コマンド2_Click() Dim db As Database Dim QQQ As QueryDef Set db = CurrentDb Dim ctl As Control Dim AAA As String Dim sql As String DoCmd.DeleteObject acQuery, "Q_検索" Set ctl = Me!リスト0 For Each varItm In ctl.ItemsSelected AAA = AAA & ",'" & ctl.ItemData(varItm) & "'" Next varItm AAA = Mid(AAA, 2) sql = " SELECT Q_data.削除, Q_data.名前, Q_data.郵便番号, Q_data.住所1, Q_data.住所2, Q_data.電話, Q_data.東京, Q_data.大阪, Q_data.北海道, FROM Q_data WHERE (((Q_data.住所1) In (" & AAA & ")));" Set QQQ = db.CreateQueryDef("Q_検索", sql) db.Close DoCmd.OpenForm "f_ラベル" End Sub |
>Set ctl = Me!リスト0 > For Each varItm In ctl.ItemsSelected > AAA = AAA & ",'" & ctl.ItemData(varItm) & "'" > Next varItm 複数選択を使ってるんですね。。。 AAA の長さを見ればいいのでは? If Len(AAA) = 0 Then MsgBox "ないよ。" みたいに。 #複数選択プロパティを使っている場合、Value プロパティには Null が帰ってきたと思いますので。。 |
イケガミさん、ありがとうございました。 解決しました! すみません、やっていて思ったのですが、 選択しなかった場合、全データを表示する ということもできるのでしょうか? 私はvba初心者なので、本を片手に 例を見ながらやっているので 壁にぶつかりまくっています。 お手数をおかけしますが、宜しくお願いします。 |
>選択しなかった場合、全データを表示する >ということもできるのでしょうか? えっと。。 リストボックスの値集合ソースはどうなっているのでしょうか? それによって、方法もかわってくると思います。 |
イケガミさん ありがとうございます。 >えっと。。 >リストボックスの値集合ソースはどうなっているのでしょうか? SELECT DISTINCT t_data.住所1 FROM t_data; です。 宜しくお願いします。 |
難しく考える必要はなかったですね。。 sql = " SELECT Q_data.削除, Q_data.名前, Q_data.郵便番号, " _ & "Q_data.住所1, Q_data.住所2, Q_data.電話, Q_data.東京, " _ & "Q_data.大阪, Q_data.北海道, FROM Q_data " If Len(AAA) > 0 Then sql = sql & "WHERE (((Q_data.住所1) In (" & AAA & ")));" End If では? |
イケガミさん 思っていたように動作しました。凄く嬉しいです! この度は、ご親切に教えて下さりありがとうございます。 今後とも宜しくお願いいたします。 |