microsoftのadoのfilterに関する解説には
'--------
AND と OR の間に優先順位はありません。 句はかっこでグループにまとめることができます。 ただし、次のコード スニペットのように 、OR で結合された句をグループ化し 、AND を使用してグループを別の句に結合することはできません。
(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'
この場合は、フィルターを次のように構成します。
(LastName = 'Smith' AND FirstName = 'John') OR (LastName = 'Jones' AND FirstName = 'John')
'--------
と記載がありますが、現実にデータベースから絞り込みを行いたい場合そんな簡単なケースは多くなく、
あるフィールドから複数要素、別のフィールドから複数要素で絞り込みたいケースが多いです。
excel vba でいうところのrange.filterであればfilterの2段構えで先にLastNameをフィルタリングしてからFirstNameのフィルタリングが可能で、accessを立ち上げてGUI上で行なうと簡単にできるのですが、これをvbaでrecordsetを操作してやろうとしても後者のfilterが優先されてしまい、うまくいきません。
上述のmicrosoftの解説の通りの式にしようとすると分配展開が多くなりすぎてformulastringの上限を軽く超えてしまいます。
excel vbaのrange.filterでは絞り込み要素にarray指定ができるので、それと似たような方法がないかと探していますがたどり着きません。
どなたかレクチャーいただけますでしょうか。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/23 10:28
2021/06/06 03:05 編集