MS Access表单自动插入值

时间:2015-01-16 13:48:14

标签: ms-access-2010

在MS Access表单上填写2个条目,从显示2个表的值开始,我想要进行浮动: 前两个条目具有从组合框中检索到的值,我希望在第三个条目中,使用先前的信息自动插入值,也可以按下与宏相关联的按钮(或其他方式)

TABLE CITIES   
-----------------------------
Town        |   Abbreviation   
------------+---------------- 
New York    |   NY    
Los Angeles |   LA


TABLE COUNTRIES    
-----------------------------   
Country |   Abbreviation   
--------+--------------------   
France  |      FR
Italy   |      IT

示例:

第一次进入 - >镇:纽约

第二次进入 - >国家:意大利

第三次进入 - > NY-IT

如何实现这一目标?如何设置与查询关联的按钮,而不是组合框(在最佳方式的情况下)

2 个答案:

答案 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)。您必须确保具有正确的列数和列宽。