надеюсь, кто-нибудь может помочь
Структура таблицы следующая:
tblCompany:
compID
compName
tblOffice:
offID,
compID,
add1, add2, add3 etc...
tblEmployee:
empID
Name, telNo, etc...
offID
У меня есть форма, которая содержит контактную информацию для сотрудников, все работает нормально, используя после обновления.
Каскадное поле со списком, cmbComp, позволяет мне выбрать компанию, а inturn выбрать соответствующий офис, cboOff, и корректно обновляет соответствующее поле tblEmployee.offID. Поля автоматически обновляются и для адреса
cmbComp: RowSource
SELECT DISTINCT tblOffice.compID, tblCompany.compID
FROM tblCompany
INNER JOIN AdjusterCompanyOffice
ON tblCompany.compID=tblOffice.compID
ORDER BY tblCompany.compName;
cboOff: RowSource
SELECT tblCompany.offID, tblCompany.Address1,
tblCompany.Address2, tblCompany.Address3, tblCompany.Address4,
tblCompany.Address5
FROM tblCompany
ORDER BY tblCompany.Address1;
Проблема, с которой я сталкиваюсь, заключается в том, что при загрузке новой записи, как получить данные и автоматически загрузить поля cmbComp и текстовые поля.
Поле со списком cboOff загружается правильно, поскольку источником управления для этого является offID
Я полагаю, должен быть способ установки значения при открытии записи? Не уверен, как, хотя. Я не думаю, что я могу установить контрольный источник cmbComp или текстовые поля, или я могу?
Любая помощь / точка в правильном направлении приветствуется, я искал способ сделать это, но не могу добраться куда-либо!
-edit
Я попытался добавить следующее для управления текстовым полем
=[Forms]![frmAdjPersonalDetails]![cboAdjOff].[Column](2)
Это работает при получении значений, но вызывает ошибку с последующим обновлением, используемым для создания каскадного поля со списком и обновления текстовых полей.
Private Sub cmbComp_AfterUpdate()
Me.cboOff.RowSource = "SELECT ID, Address1, Address2, Address3, Address4, Address5 FROM" & _
" tblOffice WHERE CompID = " & Me.cmbComp & _
" ORDER BY Address1"
Me.cboAdjOff = Me.cboAdjOff.ItemData(0)
Me.txtAdd2 = Me.cboOff.Column(2)
Me.txtAdd3 = Me.cboOff.Column(3)
Me.txtAdd4 = Me.cboOff.Column(4)
Me.txtAdd5 = Me.cboOff.Column(5)
End Sub
Не уверен, что делать?