2012-05-10 7 views
0

フォームのレコードソースとしてクエリを持っています。そのクエリの各行には、その行に一致するn行のリンクテーブルがあります。クエリの各行のリストボックス内のn個の一致する行すべてからの1つのフィールド。クエリの1つのフィールドとリンクされたテーブルの間に一致するフィルタを実装するにはどうすればよいですか?MS Access 2002は、レコードソースクエリの各行のクエリ/テーブルをフォーム

+0

あなたは、単一のフォームまたは連続フォームをデータシートを使用していますか?シングルフォームの場合、これは簡単ですが、データシートや連続フォームでは、おそらく良い考えではありません。 – Fionnuala

+0

シングルフォーム.. – TWei

答えて

0

リストボックスの行ソースをSQL文字列に設定できます。例:

SELECT ID, AText FROM Table1 WHERE ID = Forms!Form1!ID 

データがどのように格納されるかは、バインド列とコントロールソースによって異なります。一致する列(この場合はID)を表示しない場合は、列の幅を設定できます。列数を正しい列数に設定する必要があります。

Column Widths: 0;2.5 
Column Count: 2 

あなたは、現在のイベントで、リストボックスを再クエリする必要があります:

Private Sub Form_Current() 
Me.List1.Requery 
End Sub 
+0

私はそれを理解するのが本当に遅かったでしょう。私が何を必要とするのかという連続的な形で私は何をしますか?現在のフォームをクリックすると、最初にCurrentイベントがトリガされます(最初の行が必要です)。コンボボックスのインスタンスを更新する場合は、イベントで処理する必要はありません。テキストボックスを使用する場合は、Me.txtBoxName = Replace(Me.txtBoxName、...)を使用します。 Access 2003 atleastで。 – TWei

+0

私が最初のコメントで言ったように、これは連続した形では良い考えではありません。連続した形式では、現在のレコードは常にハイライトされたレコードになります。つまり、強調表示されたレコードに適用されるものは、すべての可視レコードに適用され、ユーザーにとって混乱します。 2つのテーブルを結合する適切なクエリを使用してデータを表示し、編集のためにボタンなどを提供することが最善です。 – Fionnuala