あなたが述べたことに基づいて、正確に何が起こっているかを推測することさえできませんが、あなたが探している結果を得る方法を教えることはできます.
1) 新しいフォームを設定します。それを subfrmPassingYear と呼びます。フォームの RecordSource には、学生情報が含まれるテーブルの名前と同じ値を設定します。ここでは、目的のために、これを tblStudents と呼ぶことにします。
2) このフォームの [既定のビュー] プロパティで、連続フォームまたはデータシートに変更する必要があります。デフォルトでは Single Form になりますが、これはここでは不適切な選択です。
3) 別の新しいフォームを設定します。それを frmPassingYear と呼びます。
4) 新しいサブフォームを frmPassingYear に追加します。これはオブジェクトであり、テキストボックス、ラベル、コンボ、その他すべてのオブジェクトと同じツールボックスにある必要があります。ウィザードが自動的に起動し、[既存のフォーム] を選択して、リストから subfrmPassingYear を選択します。ウィザードが起動しない場合は、サブフォームの Source Object プロパティを subfrmPassingYear に設定してください。
5) 新しいコンボを frmPassingYear に追加します。それを cboPassingYear と呼びます。その RecordSource として、「SELECT DISTINCT [通過年] FROM tblStudents ORDER BY [通過年] ASC」に設定します。
6) cboPassingYear の AfterUpdate イベントに、次のステートメントを入れます。
Dim sSQL as String
sSQL = "SELECT * FROM tblStudents WHERE [Passing Year] = " & Trim(Me!cboPassingYear.Text) & ""
Forms!frmPassingYear.subfrmPassingYear.Form.RecordSource = sSQL
frmPassingYear を実行し、コンボから過ぎ去った年を選択すると、サブフォームにはその年のレコードのみが入力されます。年が INTEGER ではなく TEXT として格納されている場合は、SQL 文字列に一重引用符を追加する必要があります。