表结构如下:
tblCompany:
compID
compName
tblOffice:
offID,
compID,
add1, add2, add3 etc...
tblEmployee:
empID
Name, telNo, etc...
offID
我有一个包含员工联系方式的表单,所有工作都可以在更新后使用。 级联组合框cmbComp允许我选择公司,并选择适当的办公室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
我想必须有一种方法来设置打开记录的价值?不知道怎么样。我不认为我可以设置controlsource 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
不确定是做什么的?
答案 0 :(得分:0)
如果我理解正确,您正在寻找“Requery”声明。 这将“刷新”组合框或表单中的数据。 你可以放一个
Me.Requery
在相关的事件处理程序中。如果我没记错的话,可能是“AfterUpdate”。
答案 1 :(得分:0)
试
组合框中的行源=
“SELECT DISTINCT table.field FROM table;”
找到表格中的所有唯一值,然后对它们进行修改,然后将它们放入长下拉菜单中。