2016-12-16 1 views
0

私は、クエリを生成するために使用しているフォームを持っています。私は以下のコードスニペットを与えました。ユーザがレポートを絞り込むために情報を入力するための複数のフィールドがあります。私は以下のコードを見つけました。ユーザがカテゴリごとに1つの選択、すなわち "ステータス" = Cを選択したい場合にはうまくいきます。私の問題は、ユーザが一度に複数のステータスを探している場合があるということです。今すぐフォームにCまたはSを入力すると、クエリーにはCまたはSが入力され、結果は「C」または「S」またはまたはSであるため、結果は得られません。誰も私は複数の値を入力し、クエリに正しく読み込むことができるようにこのコードを変換することができますか?さて、あなたの主な質問は=を使用しており、コードスニペットはLikeを使用しているという事実を無視して1つのフィールドに複数のパラメータを使用したフォームによるクエリへのアクセス

Function SearchCriteria() 

Dim strSQL As String 
Dim tblname, strqry As String 
Dim qdf As QueryDef 
Set dbs = CurrentDb 

Dim allexists As QueryDef 

strqry = "All Selected" 

tblname = "SelectionWeeklyAuto1000" 

On Error GoTo err_handler 

Set allexists = dbs.QueryDefs("All Selected") 

err_handler: 
    Select Case Err.Number 
    Case 3265 

    strSQL = "SELECT " & tblname & ".* From " & tblname & " WHERE (1=1)" 

    Set qdf = dbs.CreateQueryDef(strqry) 
    qdf.SQL = strSQL 
    DoCmd.Save 

End Select 

DoCmd.DeleteObject acQuery, strqry 


Set qdf = dbs.CreateQueryDef(strqry) 

strSQL = "SELECT " & tblname & ".* From " & tblname & " WHERE (1=1)" 

If Not IsNull([Forms]![Report Tool]![Text1]) Then 
    strSQL = strSQL & " And ([Screen] Like ""*" & [Forms]![Report Tool]![Text1] & "*"")" 

End If 

If Not IsNull([Forms]![Report Tool]![Text2]) Then 
    strSQL = strSQL & " And ([Status] Like ""*" & [Forms]![Report Tool]![Text2] & "*"")" 

End If 

答えて

0

、私は

strSQL = strSQL & " And ([Status] Like ""*" & Replace([Forms]![Report Tool]![Text2], " or ", "*"" Or [Status] Like ""*") & "*"")" 
+0

としてコードスニペットを延長するヘルプ@Skippyいただきありがとうございます。それは私が望んでいたのとまったく同じです。うまくいけば、私が学ぶように、私は質問を提示することでより良くなるでしょう。 – MattM52

関連する問題