2016-07-02 17 views
2

VBAを初めて使いましたが、複数のフィールドを持つ分割フォーム用の検索ボックスを作成したいと考えていました。私はマクロを使い始め、VBAに変換してしまったので、実際にはコードにエラーがあるかもしれません。検索ボックスのメッセージボックスに結果が返されない場合、Access 2010

はとにかく、私は適用filterコマンドを使用し、私は結果がないときにポップアップするメッセージボックスをしたいと思いますが、このコードは動作しません。

Private Sub cmdSearch_Click() 
     On Error GoTo cmdSearch_Click_Err 
     DoCmd.ApplyFilter "", "[IDTag] Like 
    ""*"" & [Forms]![Main Menu]![txtSearch] & 
    ""*"" Or [Title] Like ""*"" 
    & [Forms]![Main Menu]![txtSearch] & ""*""","" 

cmdSearch_Click_Exit: 
Exit Sub 

cmdSearch_Click_Err: 
MsgBox Error$ 
Resume cmdSearch_Click_Exit 

End Sub 
+0

[docmd.applyfilterの結果を処理しない](http://stackoverflow.com/questions/1730293/handling-no-results-for-docmd-applyfilter) –

答えて

2

あなたは構文によって伝えることができますあなたの文字列の構築がうまくいかないことをあなたの質問で着色してください。一重引用符を使用する方がはるかに簡単です'。そしていくつかの変数。

Private Sub cmdSearch_Click() 

    On Error GoTo cmdSearch_Click_Err 
    Dim sSearch As String, sFilter As String 

    sSearch = "'*" & [Forms]![Main Menu]![txtSearch] & "*'" 
    sFilter = "[IDTag] Like " & sSearch & " Or [Title] Like " & sSearch 
    Debug.Print sFilter ' Use Ctrl+G to see Debug output 

    DoCmd.ApplyFilter "", sFilter 

結果がないときにMsgBoxを表示するには、リンクされた複製を参照してください。

+0

ありがとうAndre!完璧に動作します。私は空白のフォームに指示を避けるために、メッセージボックスの後にすべてのレコードcmdを表示するように追加しました! –

関連する問題