Поле со списком зависит от другого поля со списком - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть форма с двумя полями со списком, один из которых защищает номер комнаты.Палаты являются медицинскими единицами, а комнаты - номерами комнат (например, 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.Если я укажу код последующего обновления, я могу выбрать значение.Ошибка является неожиданной ошибкой, доступ должен быть закрыт.

Затем я получаю сообщение об ошибке, если пытаюсь выбрать значение из второго списка.запрашивая параметр AMU.

Я унаследовал этот код и пытался определить, как его выполнить, переписать или попытаться его сохранить.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Попробуйте следующее-

  1. Очистите свойство ControlSource и RowSorce comboBox 'RoomN' вручную.
  2. Попробуйте следующий код в AfterEvent comboBox 'Wards'

    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
    
0 голосов
/ 05 февраля 2019

из того, что я понимаю из вашего сообщения, вы можете попробовать это:

Private Sub cboWard_AfterUpdate () Dim strSQL As String

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

Me.cboRoom.RowSource = strSQL

End Sub

...