将字段更改为下拉菜单后,ADO代码不再执行复制/粘贴

时间:2014-04-16 03:28:16

标签: access-vba ado ms-access-2013

我不确定描述此问题的最佳方式,以便向您明确说明。我最近更改了以前是标准字段的表单上的字段,但为了用户友好性和数据质量控制,现在已成为链接到表的下拉字段,因此在用户访问时提供下拉列表输入数据(而不是输入)。

遇到的问题如下:

此字段在输入值时(在本例中为团队名称(下面列为txtTeam))会触发更新后事件,以便使用ADO代码获取团队名称,将其引用到基础团队表,然后复制相应的值到字段:“txtCity”,“txtCountry”,“txtCAP”,“txtOfficialTeamName”,等(见下文)

不幸的是,一旦我将团队字段更改为链接到表的列表字段,我在下面标记的If语句( * 这里是我的问题 - ...)不再有效不幸的是,ADO复制/粘贴代码不再有效。

**注意:当进入VBA编辑器并将鼠标悬停在“Team_name”和“txtTEam”上时,会出现以下结果,表明该问题与我已将此字段转换为下拉列表的事实直接相关字段。

Team_name =卓越运营(所选团队的实际名称) txtTEam = '71'(基础表格中“卓越运营”团队的ID号

我希望有人可以帮助我,因为这个表格对我来说非常有用,如果没有这个代码,它会失去很多。 谢谢, 甲

   Dim rstTEAM As New ADODB.Recordset

    rstTEAM.Open "tblTeams", CurrentProject.Connection, _
                adOpenForwardOnly



    Do Until rstTEAM.EOF
        If rstTEAM!Team_name = txtTEam Then  (*** HERE IS MY PROBLEM- this statement is no longer TRUE)
            txtCity = rstTEAM!City
            txtCountry = rstTEAM!Country
            txtCAP = rstTEAM!CAP
            txtOfficialTeamName = rstTEAM!Official_Team_Name
            txtStreet = rstTEAM!Street
            txtDivision = rstTEAM!Division
            txtNumerotel.SetFocus
            blnAggiunto = True
            Exit Sub
        Else
            rstTEAM.MoveNext
        End If
    Loop

    rstTEAM.Close
    Set rstTEAM = Nothing

1 个答案:

答案 0 :(得分:1)

现在您正在使用列表框,您需要正确引用控件。我假设你不允许多选,所以你应该如下引用(假设键是Col 0,否则使用1或2 ......:

If rstTEAM!Team_name = Me.txtTEam.Column(0) Then 

如果允许多选,您可以使用以下内容:

Dim varItem As Variant
For Each varItem In Me.txtTEam.ItemsSelected
    strSQL = strSQL & Me.txtTEam.Column(0, varItem)
Next varItem