3 つのコンボ ボックスを持つフォーム (MS-Access 2003) があります。1 番目 (カテゴリ)、2 番目 (CatDetail)、3 番目 (NbrValue)。1st からの更新後のイベントで 2nd に問題はありません。2番目の同様の更新イベントを実行して3番目を更新しようとすると、問題が発生します。これが私のコードです。
表 1 (カテゴリ)
CategoryID Category Name
1 Vacation
2 DH
1 番目のコンボ ボックス (カテゴリ) SQL
SELECT Category.CategoryID, Category.[Category Name]
FROM Category
ORDER BY Category.[Category Name];
最初のコンボ ボックス (カテゴリ) の VBA を更新した後
Option Compare Database
Private Sub Category_AfterUpdate()
Me.CatDetail = Null
Me.CatDetail.Requery
Me.CatDetail = Me.CatDetail.ItemData(0)
End Sub
表 2 (CatDetail)
CatDetail ID CatDetail Category
1 Vac Day Used Vacation
2 Partial Vac Day Vacation
3 DH Gain DH
4 DH Used DH
2 番目のコンボ ボックス SQL (CatDetail)
SELECT CatDetail.[CatDetail ID], CatDetail.[CatDetail Name], CatDetail.CategoryID
FROM CatDetail
WHERE (((CatDetail.CategoryID)=[Forms]![Combo Form]![Category]));
2 番目のコンボ ボックス (CatDetail) の VBA を更新した後
Private Sub CatDetail_AfterUpdate()
Me.NbrValue = Null
Me.NbrValue.Requery
Me.NbrValue = Me.NbrValue.ItemData(0)
End Sub
この部分はうまく機能します。次のセットで 3 番目のコンボ ボックスを更新するのに迷っています。
表 3 (値)
ValueID Value CatDetail Name
1 -1 Vac Day Used
2 -0.5 Partial Vac Day
3 1 DH Gain
4 -1 DH Used
3 番目のコンボ ボックス (NbrValue) SQL
SELECT Value.ValueID, Value.Value, Value.[CatDetail Name]
FROM [Value]
WHERE (((Value.[CatDetail Name])=[Forms]![Combo Form]![CatDetail]));
要約すると、最初のコンボ ボックスの値を選択できます。その選択の後、2 番目のコンボ ボックスがすべての対応する値で更新されます。問題は、2 番目のコンボ ボックスの after update イベントで、3 番目のコンボ ボックスが空白に戻ることです。