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

Ms access 将字段更改为下拉菜单后,ADO代码不再执行复制/粘贴,ms-access,vba,ado,ms-access-2013,Ms Access,Vba,Ado,Ms Access 2013,我不确定用什么最好的方式来描述这个问题,让你明白。我最近更改了表单上的一个字段,该字段以前是标准字段,但为了方便用户和数据质量控制,现在已成为链接到表的下拉字段,因此在用户输入数据(而不是键入)时提供下拉列表 遇到的问题如下: 此字段在输入值时(在本例中,团队名称(以下列为txtTeam)触发更新后事件,以便使用ADO代码获取团队名称,将其引用到基础团队表,然后将相应的值复制到字段:“txtCity”、“txtCountry”、“txtCAP”、“txtOfficialTeamName”等(见下

我不确定用什么最好的方式来描述这个问题,让你明白。我最近更改了表单上的一个字段,该字段以前是标准字段,但为了方便用户和数据质量控制,现在已成为链接到表的下拉字段,因此在用户输入数据(而不是键入)时提供下拉列表

遇到的问题如下:

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

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

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

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

我希望有人能帮我,因为这个表单对我真的很有用,没有这个代码,它会丢失很多。 谢谢 A


现在您使用的是列表框,您需要正确地引用控件。我假设您不允许多重选择,因此您应该如下引用(假设键为第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

PS-我还尝试将字段名“Team_name”替换为“ID”考虑到代码现在可能将该值视为基础ID号,而不是文本,但这也不起作用。谢谢Wayne..我将把它放在我的库中..顺便说一句-当我去工作时,我从一位同事那里发现了另一种解决此问题的方法,如果rstTEAM!Team_name=Me.txteam.text,那么我的同事很好我还没来得及向我解释为什么会是这种情况……多产的一天!
Dim varItem As Variant
For Each varItem In Me.txtTEam.ItemsSelected
    strSQL = strSQL & Me.txtTEam.Column(0, varItem)
Next varItem