2017-06-13 34 views
1

私はアクセスデータベースのメインテーブルにバインドされたフォームを持っています。メインデータベースに格納されているIDの説明を示す5つのコンボボックスがあります。DoCmd.ApplyFilterの代替案または提案?

TruckModelIDは、tblTruckListに格納され、tblTruckModelのTruckModelIDに関連付けられます。 TruckModelNameはtblTruckModelに格納されます。 私はIDを入力できる簡単な検索機能を作れますが、ユーザーは特定のモデルのIDを知らないでしょう。 txtFindTruck(私の検索フィールド)の値を見て名前と比較し、正しいIDを選んで正しいIDでTruckListからレコードを返すことのできる何らかの検索を行うにはどうすればよいですか?

これはtblMainの値を見たときに、私が使用しているものです:

DoCmd.ApplyFilter "", "[TruckID] Like ""*"" & Forms![Ändra Truck]!txtFindTruck & ""*""" 

これは私が欲しいものは基本的である:

DoCmd.ApplyFilter "", "[cmbTruckModelName] Like ""*"" & Forms![Ändra Truck]!txtFindTruck & ""*""" 

フォームが使用する実際の値はTruckModelIDであるしかし、 TruckModelNameではない

私は、理解するのが難しい記述で何かを逃してしまったと確信しています。私に何か質問することを躊躇しないでください:Dまた、どんな助けも高く評価されます。

答えて

1

あなたはこのように、別のクエリでフィルタするSQL IN句を使用することができます。

DoCmd.ApplyFilter "", "[TruckID] IN(" & _ 
"SELECT TruckID From MyTable WHERE TruckModelName LIKE ""*"" & Forms![Ändra Truck]!txtFindTruck & ""*"")" 

があなたのテーブル名などの空白を埋め、それが動作するはずです。

ただし、これは問題の最適な解決策ではない可能性があります。コンボボックスを使用している場合は、非表示のID列を使用して検索を行い、実際のモデル名をコンボボックスに含めることができます。

列を非表示にする方法については、How to hide columns in a ComboBox dropdown?を参照してください。

+0

ありがとう、エリック!あなたは大きな助けになっています!本当にありがとう! – Merpz

関連する問題