Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 基于另一个组合框填充字段_Vba_Ms Access - Fatal编程技术网

Vba 基于另一个组合框填充字段

Vba 基于另一个组合框填充字段,vba,ms-access,Vba,Ms Access,我有一个表单(MS Access 2003),它有三个组合框。第一(类别)、第二(CatDetail)、第三(NBR值)。我可以用1号的更新后事件填充2号。我的问题出现在我尝试为第二个运行类似的更新事件以更新第三个时。这是我的密码 表1(类别) 第一个组合框(类别)SQL 更新第一个组合框(类别)的VBA后 表2(详细信息) 第二个组合框SQL(CatDetail) 更新第二个组合框(CatDetail)的VBA后 这部分效果很好。我迷失在下一集中,无法更新第三个组合框 表3(价值) 第三个组合

我有一个表单(MS Access 2003),它有三个组合框。第一(类别)、第二(CatDetail)、第三(NBR值)。我可以用1号的更新后事件填充2号。我的问题出现在我尝试为第二个运行类似的更新事件以更新第三个时。这是我的密码

表1(类别)

第一个组合框(类别)SQL

更新第一个组合框(类别)的VBA后

表2(详细信息)

第二个组合框SQL(CatDetail)

更新第二个组合框(CatDetail)的VBA后

这部分效果很好。我迷失在下一集中,无法更新第三个组合框

表3(价值)

第三个组合框(NBR值)SQL


总之,我可以选择我的第一个组合框值。选择之后,第二个组合框将更新为所有相应的值。问题在于第二个组合框上的更新后事件,因为我的第三个组合框返回为空。

我一直在这样做。在AfterUpdate()中,设置依赖组合框的行源

Sub Combo1_AfterUpdate()

 comboBox2.RowSource = "SELECT .... WHERE FIELD = " & Combo1.Value

 comboBox3.RowSource = ""  ' Reset the third combo until after the 2nd is set.

End Sub
Sub Combo2_AfterUpdate()

 comboBox3.RowSource = "SELECT .... WHERE FIELD = " & Combo2.Value

End Sub

如果查询确实返回了某些内容,这将起作用。

第三个组合框的SQL是什么?对不起。。。第三个组合框SQL…>选择Value.ValueID、Value.Value、Value。[CatDetail Name]>FROM[Value]>WHERE(((Value.[CatDetail Name])=[Forms]![Combo Form]![CatDetail Name]);在更新第二个组合框后,是否使用SQL查询第三个组合框的结果?在即时窗口中(设置CatDetail的值后)键入
?[Forms]![组合形式]![CatDetail]
我已经观看了即时windoe,没有任何事件显示。
SELECT Category.CategoryID, Category.[Category Name]
FROM Category
ORDER BY Category.[Category Name];
Option Compare Database
Private Sub Category_AfterUpdate()
Me.CatDetail = Null
Me.CatDetail.Requery
Me.CatDetail = Me.CatDetail.ItemData(0)
End Sub
CatDetail ID    CatDetail         Category
1               Vac Day Used      Vacation
2               Partial Vac Day   Vacation
3               DH Gain           DH
4               DH Used           DH
SELECT CatDetail.[CatDetail ID], CatDetail.[CatDetail Name], CatDetail.CategoryID
FROM CatDetail
WHERE (((CatDetail.CategoryID)=[Forms]![Combo Form]![Category]));
Private Sub CatDetail_AfterUpdate()
Me.NbrValue = Null
Me.NbrValue.Requery
Me.NbrValue = Me.NbrValue.ItemData(0)
End Sub
ValueID     Value    CatDetail Name
1           -1       Vac Day Used
2           -0.5     Partial Vac Day
3           1        DH Gain
4           -1       DH Used
SELECT Value.ValueID, Value.Value, Value.[CatDetail Name]
FROM [Value]
WHERE (((Value.[CatDetail Name])=[Forms]![Combo Form]![CatDetail]));
Sub Combo1_AfterUpdate()

 comboBox2.RowSource = "SELECT .... WHERE FIELD = " & Combo1.Value

 comboBox3.RowSource = ""  ' Reset the third combo until after the 2nd is set.

End Sub
Sub Combo2_AfterUpdate()

 comboBox3.RowSource = "SELECT .... WHERE FIELD = " & Combo2.Value

End Sub