组合框取决于另一个组合框

时间:2019-02-04 20:23:47

标签: access-vba

我有一个带有两个组合框的表格,一个守卫另一个房间号。病房是医疗单位,房间是房间号(如GMU-01)。

我正在尝试根据病房值限制房间名称,即列出特定单元的所有床位。

SELECT DISTINCT [TblWards].[Wards] FROM TblWards ORDER BY [TblWards].[Wards]; 

Wards组合框(第一个框)中的行源

Private Sub Wards_AfterUpdate()
Dim txt As String
txt = "SELECT TblWards.Room FROM TblWards WHERE (TblWards.Wards)= '" & 
Me.Wards.Column(0) & "' ORDER BY TblWards.Room;"
Me.RoomN.RowSource = txt
End Sub

SELECT [TblWards].[Room] FROM TblWards WHERE ((([TblWards].[Wards])=AMU)); 

第二个组合框RoomN中的行源

当我尝试从Wards组合框中选择一个值时出现错误。如果我列出了afterupdate代码,则可以选择一个值。该错误是意外错误,需要关闭访问权限。

然后,如果我尝试从第二个组合框中选择一个值,则会收到错误消息。询问AMU参数。

我继承了此代码,并试图确定如何处理,重写或尝试挽救它。

2 个答案:

答案 0 :(得分:0)

据您所知,您可以尝试以下操作:

私人子cboWard_AfterUpdate()     将strSQL变暗为字符串

strSQL = "SELECT * FROM tblRooms WHERE rWardID = " & Me.cboWard

Me.cboRoom.RowSource = strSQL

结束子

答案 1 :(得分:0)

尝试关注-

  1. 手动清除comboBox'RoomN'的ControlSource和RowSorce属性。
  2. 在“ Wards”组合框的AfterEvent中尝试以下代码

    Private Sub Wards_AfterUpdate()
    Dim txt As String
    txt = "SELECT Room FROM TblWards WHERE [Wards] = '" & Me.Wards.Value & "' ORDER BY Room;"
    Me.RoomN.RowSource = txt
    End Sub