私は1年以上VBAを使用してきましたが、私は完全に独学で遠くから進んでいます。 StackOverflowを使用して問題を無限に解決しましたが、これは私の最初の質問ですので、何か問題を許してください。VBAクエリ基準の関数引数を変数として渡す
私は、クエリの基準として使用したいテキストボックスを持つフォームを持っています。テキストボックスに1つの値しか含まれていない場合は、検索を実行できますが、複数の値を検索する場合は問題が発生します。
は、私は私の知る限りは、私の計画は、機能に基準のような なものを使用して文字列などの基準を渡すことのいずれかであった Using Variables in VBA to Filter Access 2007 Queries持っているように取得するには、このプロセスをたどっ:GetCritが文字列としてパブリック関数であるGetCrit()
別のモジュールで、文字列を返す In("Value1",Value2")
私の考えは、単に関数GetCrit()
で定義された変数として引数を設定することでした。つまり、クエリの条件はIn(GetCrit())
になります。
現在のところ、クエリは文字列として定義されているため、文字列"In(GetCrit())"
を満たす値を検索していると考えているため、これらのオプションのいずれも動作しません。
私は、テキストボックスをすべての可能な値を含むコンボまたはリストボックスに変更し、次に選択をIn( "Value1"、 "Value2")と同様に読み取れる文字列に変えることを計画していましたが私はこれを実現するためのよりよい方法の提案を受けています。 Module1の中
Private Sub btnGen_Click()
SetQueryCriteria
End Sub
Public Sub SetQueryCriteria()
Dim MatrixCriteria As String
Dim holder As String
holder = [Forms]![frm_Name]![TXTBox].Value
SetCrit holder
End Sub
:以下に示す
は、フォーム内の私の適用コード
ある
Private strCrit As String
Public Sub SetCrit(Value As String)
strCrit = Value
End Sub
Public Function getcrit() As String
getcrit = strCrit
End Function
そして、私のクエリのための基準は、現在
In(GetCrit())
よりもks!
編集:私は研究を続けている 、私はおそらくマルチ選択リストボックスは、私がここに
マルチ選択リストボックスを使用して同じフィールドから複数の検索パラメータを選択することは有効なアプローチです。 http://allenbrowne.com/ser-50.htmlを確認してください。 – June7