クエリ内のパラメータへの入力である文字列入力(ここにSQL注入ジョークを挿入)のフォームがあります。とそのクエリの結果を表示するサブフォームです。サブフォームでの更新クエリ
現在のパラメータは、本質的にsomeVar Like "*" & forms!myForm!input & "*"
ですが、ユーザー以来、私が本当に欲しいものを、複数の文字列(すなわち文)を入力することができます私はプログラム的にクエリを生成するために必要なパラメータの数が変化するので、someVar Like "*firstWord*" or someVar Like "*secondWord*"... etc
です。入力中の単語をループして、動的にどこ文を生成するVBAにはあまりにも難しいことではありません。しかし、
dim sc as variant
sc=split(myInput)
dim where as string
where=""
for c=0 to UBound(sc)
where = where & "like '*" & sc(c) & "*' or "
next
where = left(where, len(where) - 3)
dim qd as querydef
set qd=currentDb.querydefs("myQuery")
qd.sql="select var where " & where
[my subform].requery
、私は、クエリ、私はそれを教えてくれていても更新されません。そのデータを表示するサブフォームを更新するとき再クエリー。私がフォームを離れて再入力すると、正しいデータが得られます。私のアプローチは間違っているようです。これにアプローチするには何が良い方法でしょうか?
通常、生成されたSELECT SQL文字列を(クエリではなく)サブフォームのレコードソースとして直接割り当てることができます。 – Andre