在MS Access表单上填写2个条目,从显示2个表的值开始,我想要进行浮动: 前两个条目具有从组合框中检索到的值,我希望在第三个条目中,使用先前的信息自动插入值,也可以按下与宏相关联的按钮(或其他方式)
TABLE CITIES
-----------------------------
Town | Abbreviation
------------+----------------
New York | NY
Los Angeles | LA
TABLE COUNTRIES
-----------------------------
Country | Abbreviation
--------+--------------------
France | FR
Italy | IT
示例:
第一次进入 - >镇:纽约
第二次进入 - >国家:意大利
第三次进入 - > NY-IT
如何实现这一目标?如何设置与查询关联的按钮,而不是组合框(在最佳方式的情况下)
答案 0 :(得分:1)
扩展@Fionnuala提到的内容。我会把它放在验证中,因为你不想要NY-
或-IT
这样的值,所以只有当两个组合框都被填充时,代码才会有NY-IT
Private Sub firstCombo_AfterUpdate()
updateCombo
End If
Private Sub secondCombo_AfterUpdate()
updateCombo
End If
Private Sub updateCombo()
If Me.firstcombo.ListIndex = -1 Or Me.secondCombo.ListIndex = -1 Then
Me.thirdcombo = vbNullString
Else
Me.thirdCombo = Me.firstcombo.Column(2) & "-" & Me.secondCombo.Column(2)
End If
End sub
我很确定纽约不在意大利,所以可能需要进行适当的验证。另外为什么第三个需要成为ComboBox?它不是一个简单的TextBox吗?
除此之外,您可能希望研究Cascading CombobBoxes,在这种情况下处理这种情况会更加顺畅。
答案 1 :(得分:-1)
使用组合框的列属性。例如:
1st Combo
SELECT Id, Town, Abbreviation
第二次组合
SELECT Id, Country, Abbreviation
现在,每个组合都需要一个AfterUpdate事件,比如说
Me.3rdText = Me.1stCombo.Column(2) & "-" & Me.2ndCombo.Column(2)
列从零开始计数,但是,ColumnCount属性在两种情况下都是3(即0,1,2 = 3)。您必须确保具有正确的列数和列宽。