2017-05-17 4 views
0

私のMS Accessフォームでは、入力したキーワードでリストを検索またはフィルタリングするためのボタン付きのテキストボックスを作成しました。MS Access - [SQL]検索リスト経由のフィルタリストLIKEステートメント

私が試した最初のものは、このでした:

Private Sub search_Click() 

Dim mssql as String 
Dim keyword as String 

Me.searchbar.SetFocus 
keyword = Me.searchbar.Text 

mssql = " SELECT ID, LastName, GivenName FROM tNames WHERE LastName = " & Chr(34) & keyword & Chr(34) & ";" 
Me.list_1.RowSource = mssql 
Me.list_1.Requery 


End Sub 

検索機能がうまく働いたが、私はより柔軟なものを望んでいました。だから私はLIKEステートメントを実装しようとしました。

残念ながら、LIKE変数を自分のコードに正しく実装する方法を理解できませんでした。

私は成功せず、このような何かをしようとするだろう:

mssql = " SELECT ID, LastName, GivenName FROM tNames WHERE LastName LIKE "% & keyword & %";" 

それは私には本当に混乱です:/

答えて

1

*ワイルドカードとアポストロフィ区切り文字を試してみてください。

"SELECT ID, LastName, GivenName FROM tNames WHERE LastName LIKE '*" & keyword & "*';"

しかし、ただでコンボボックスのデザインでのRowSourceプロパティに直接SQL文を入れることができます:そして、コードが唯一のコンボボックスを再クエリする必要が

SELECT ID, LastName, GivenName FROM tNames WHERE LastName LIKE "*" & [searchbar] & "*";

+0

うん、残念ながら何も起こらない – edorius

+0

編集された回答を参照してください。両方のテクニックが私のために働く。 – June7

+0

異なるボタンをクリックしてトリガーできる行ソースがいくつかあります。このコードを直接rowsourceプロパティに追加することは私の選択肢ではありません。しかし、とにかくありがとう – edorius

関連する問題