2010-03-30 92 views
0

希望有人可以帮助组合框的值自动更新

表结构如下:

tblCompany: 
compID 
compName 

tblOffice: 
offID, 
compID, 
add1, add2, add3 etc... 

tblEmployee: 
empID 
Name, telNo, etc... 
offID 

我有一个包含员工联系信息的表单,所有更新后使用的作品确定。 级联组合框cmbComp允许我选择一家公司,然后选择合适的办公室cboOff,并正确更新相应的tblEmployee.offID字段。字段会自动更新的地址也

cmbComp:行来源

SELECT DISTINCT tblOffice.compID, tblCompany.compID 
FROM tblCompany 
INNER JOIN AdjusterCompanyOffice 
ON tblCompany.compID=tblOffice.compID 
ORDER BY tblCompany.compName; 

cboOff:行来源

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 

不知道该怎么办?

回答

0

如果我理解正确,您正在寻找“Requery”语句。 这将“刷新”组合框或表单中的数据。 你可以把一个

Me.Requery 

在相关的事件处理程序。如果我没有记错的话,可能是“AfterUpdate”。

+0

没有抱歉,它不是Me.Requery,据我所知重新载入整个记录。 我想知道的是;当我在记录之间移动控制级联组合框时,以及由它更新的相关字段为空。 我不知道如何在窗体上打开记录时填充这些字段。 这是否合理?感谢您的回复无论如何 – noelmcg 2010-03-30 18:44:37

+0

嗨,我得到这个工作使用form_current()并在那里设置值。感谢您的帮助,虽然Loopo。 – noelmcg 2010-04-04 12:42:55

+0

使用Me.NameOfCombo.Requery来单独重新查询组合。 – Fionnuala 2010-04-14 07:54:53

0

尝试在组合框中

行源=

“SELECT DISTINCT table.field FROM表;”

查找表中的所有唯一值,alphebetizes,然后使其成为一个长下拉菜单。

+0

我不清楚这是如何解决实际问题的任何部分。 – 2010-04-14 01:09:02