重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (2件)

半角スペースを確認してみてください。



例えば、以下など

" And" → " And "
Like'* → Like '*
"Where" → " Where "
"ORDER → " ORDER
    • good
    • 0
この回答へのお礼

半角スペースを確認して見ましたところ、抽出できました。
ありがとうございました。

お礼日時:2009/04/24 14:37

机上デバックで気づいた点


01.文法を見ると、SQL文(Select区部分)とstrWhere句の間に半角スペースがありません

>"FROM tm01_Kokyaku" & _
>strWhere & " " & _

この文法方式でいえば以下のように記載しないといけないはずなのですが

"FROM tm01_Kokyaku" & _
" " & strWhere & " " & _

01でだめなら試しにSQL文(Select区部分)とstrWhere句を1つの変数値に代入し
そのSQL文ソースをクエリーで単発実行してみる
それで動作しないなら、SQL文が間違っている事がわかる
それで動作するなら、リストボックスのプロパティーを疑う
    • good
    • 0
この回答へのお礼

>この文法方式でいえば以下のように記載しないといけないはずなのですが
>"FROM tm01_Kokyaku" & _
>" " & strWhere & " " & _

上記の方法と半角スペースの入力ミスでした。
ありがとうございました。

お礼日時:2009/04/24 14:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!