- ベストアンサー
access VBAで検索および抽出が出来ません・・・
VBA初心者なのですが、あるサンプルデータを参考に顧客管理のフォームを作成しています。 検索条件が未入力なら全リストを、条件入力すれば検索・抽出したいのです。 未入力の場合は全リストが表示されていますが、条件入力すると真っ白になります・・・ リストボックスで表示するようにしています。 なぜ出来ないのか、どなたか詳しく教えてください。宜しくお願いします。 ______________________________________ Private Sub subSetFiler() Dim strWhere As String '変数の初期設定 strWhere = "" 'フリガナを部分一致で検索 If IsNull(Me![txtFurigana]) <> True Then If strWhere <> "" Then strWhere = strWhere & " And" End If strWhere = strWhere & "tm01_Kokyaku.tm01_Furigana Like'*" & Me![txtFurigana] & "*'" End If '物件を部分一致で検索 If IsNull(Me![txtBukken]) <> True Then If strWhere <> "" Then strWhere = strWhere & " And" End If strWhere = strWhere & "tm01_Kokyaku.tm01_Bukken Like '*" & Me![txtBukken] & "*'" End If 'Where文字列の加工 If strWhere <> "" Then strWhere = "Where" & strWhere End If 'リストボックスノ値集合ソース更新 Me![1stKokyakuCode] = Null Me![1stKokyakuCode].RowSource = "SELECT [tm01_Kokyaku].[tm01_Code] AS コード, [tm01_Kokyaku].[tm01_KokyakuName] AS 顧客名, [tm01_Kokyaku].[tm01_Bukken] AS 物件名, [tm01_Kokyaku].[tm01_Gouchi] AS 号地, [tm01_Kokyaku].[tm01_Address1] AS 住所, [tm01_Kokyaku].[tm01_Tel] AS 電話番号 " & _ "FROM tm01_Kokyaku" & _ strWhere & " " & _ "ORDER BY [tm01_Kokyaku].[tm01_Bukken], [tm01_Kokyaku].[tm01_Gouchi]" Me![1stKokyakuCode].Requery
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
半角スペースを確認してみてください。 例えば、以下など " And" → " And " Like'* → Like '* "Where" → " Where " "ORDER → " ORDER
その他の回答 (1)
- Anzu4699
- ベストアンサー率59% (26/44)
机上デバックで気づいた点 01.文法を見ると、SQL文(Select区部分)とstrWhere句の間に半角スペースがありません >"FROM tm01_Kokyaku" & _ >strWhere & " " & _ この文法方式でいえば以下のように記載しないといけないはずなのですが "FROM tm01_Kokyaku" & _ " " & strWhere & " " & _ 01でだめなら試しにSQL文(Select区部分)とstrWhere句を1つの変数値に代入し そのSQL文ソースをクエリーで単発実行してみる それで動作しないなら、SQL文が間違っている事がわかる それで動作するなら、リストボックスのプロパティーを疑う
お礼
>この文法方式でいえば以下のように記載しないといけないはずなのですが >"FROM tm01_Kokyaku" & _ >" " & strWhere & " " & _ 上記の方法と半角スペースの入力ミスでした。 ありがとうございました。
お礼
半角スペースを確認して見ましたところ、抽出できました。 ありがとうございました。