-3

データベースを作成しましたが、問題に直面しています。

たとえば、以下のような学生のデータがあります。

No.     name  department   Passing year  
 1       X    economics     2002
 2       Y    history       2000 
 3       Z    Math          2002

passing year 2002コンボボックス検索に入力するonly one resultと表示されますが、2002 年を過ぎたすべての結果を表示したいのですが、どうすればよいですか? Microsoft 2007 を使用しています。

アクセスの専門家はあなたの助けを必要としています。

4

1 に答える 1

1

あなたが述べたことに基づいて、正確に何が起こっているかを推測することさえできませんが、あなたが探している結果を得る方法を教えることはできます.

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 文字列に一重引用符を追加する必要があります。

于 2013-10-26T17:38:58.153 に答える