组合框值自动更新
Posted
技术标签:
【中文标题】组合框值自动更新【英文标题】:Combo-box values automatically update 【发布时间】:2010-03-30 18:03:11 【问题描述】:希望有人能帮忙
表结构如下:
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
我想一定有一种方法可以在打开记录时设置值?不知道如何。我不认为我可以设置 controlsource cmbComp 或文本字段,或者我可以吗?
任何帮助/指向正确方向的赞赏,一直在寻找一种方法来做到这一点,但无法到达任何地方!
-编辑
我尝试添加以下内容来控制文本字段
=[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
不确定 tod 是做什么的??
【问题讨论】:
【参考方案1】:如果我理解正确,您正在寻找“重新查询”语句。 这将“刷新”组合框或表单中的数据。 你可以放一个
Me.Requery
在相关的事件处理程序中。如果我没记错的话可能是“更新后”。
【讨论】:
不抱歉,它不是 Me.Requery,据我了解它会重新加载整个记录。我想知道的是;当我在控制级联组合框的记录之间移动时,由它更新的相关字段为空。在表单上打开记录时,我不知道如何填充这些字段。那有意义吗??无论如何感谢您的回复 嗨,我使用 form_current() 并在那里设置了值。感谢您通过 Loopo 提供的帮助。 使用 Me.NameOfCombo.Requery 单独重新查询组合。【参考方案2】:试试
组合框中的行源 =
"SELECT DISTINCT table.field FROM table;"
在表中查找所有唯一值,将它们按字母顺序排列,然后将它们制成一个长下拉菜单。
【讨论】:
我不清楚这如何解决实际问题的任何部分。以上是关于组合框值自动更新的主要内容,如果未能解决你的问题,请参考以下文章