我不确定描述此问题的最佳方式,以便向您明确说明。我最近更改了以前是标准字段的表单上的字段,但为了用户友好性和数据质量控制,现在已成为链接到表的下拉字段,因此在用户访问时提供下拉列表输入数据(而不是输入)。
遇到的问题如下:
此字段在输入值时(在本例中为团队名称(下面列为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
答案 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