1

複数のテーブルをまとめてバインドし、Form2 という名前のフォームでコンボボックス (ID 名 = CbproductName) の選択に基づいてサブフォームにデータを表示しようとしています。Msオフィスアクセスを使用しています。

これがクエリです

SELECT Employee.EmpName, Employee.EmpCode, Employee.CompanyID, Employee.DeptID,
       Employee.ComputerID, Software.ProductName 
  FROM Software
       INNER JOIN (
             (
              Computer INNER JOIN Employee ON Computer.CompID = Employee.ComputerID) 
              INNER JOIN Application ON Computer.ComputerName=Application.[A-ComputerID]
             )
       ON Software.ID = Application.SoftwareID 
 WHERE Application.SoftwareID = Form2.CbProductName;

ただし、フォームを実行するとパラメーター値を入力するように求められ続け、入力した値の結果が表示されません。また、コンボボックスの選択によっても変化しません。誰かがそれを成し遂げるための方向性を教えてもらえますか?

4

1 に答える 1

2

Formsクエリでは、フォームをコレクションのメンバーとしてその名前で参照します。次に、コントロール名を使用して、そのフォームのコントロールの値を参照します。次のパターンのようになります。

Forms!FormName!ControlName

クエリで、Where句を次のように変更します。

WHERE Application.SoftwareID = Forms!Form2!CbProductName;

次に、 の更新イベントの後、そのクエリを必ず更新してCbProductNameください。クエリがサブフォームのレコード ソースとして使用されることを示したので、サブフォーム コントロールがコンボ ボックスと同じフォーム上にあると仮定して、更新後の手順としてこれを試してください。

Private Sub CbProductName_AfterUpdate()
    Me!SubformControlName.Form.Requery
End Sub

サブフォーム コントロールの名前は、含まれるフォームの名前と同じではない場合があることに注意してください。コントロールの名前を必ず使用してください。

于 2012-12-05T08:31:17.640 に答える