请和我在一起。我仍然是访问VBA的新手。
我在这里有第二个文本框(txtlos),该文本值应在第一个文本框(txtTicket)的毕竟期间获得字段的正确值(los),只要第一个文本框值(txttticket)与预期字段的ID匹配(los)(los)(los )来自表TBL_2025。
表名为TBL_2025
los值是字符串,例如“ Ruby”,“ Diamond”,“ Emerald”等。
TBL_2025[ID]是一个自动摄
这是我的第一个文本框值(txttticket):

我在下面使用此代码:

Private Sub txtTicket_AfterUpdate()
Dim tryLOS As Variant
tryLOS = Nz(DLookup("[LOS]", "[TBL_2025]", "[ID] = " & [txtTicket]))
txtLOS.ControlSource = tryLOS
End Sub
更新后,它应该为LOS提供“ Ruby”。
,但是,它在下面为我提供了这个结果:
我也尝试了:
txtLOS.ControlSource = DLookup("[LOS]", "[TBL_2025]", "[ID] = '" & [txtTicket] & "'")
它给了我这个结果:
我尝试删除撇号:
txtLOS.ControlSource = DLookup("[LOS]", "[TBL_2025]", "[ID] = " & [txtTicket] & "")
txtLOS.ControlSource = IIf(IsNull([txtTicket]), "", DLookup("[LOS]", "[TBL_2025]", "[ID]=" & [txtTicket] & ""))
再次显示了这一点:
我在下面尝试了这些:
txtLOS.ControlSource = DLookup("[LOS]", "[TBL_2025]", ID = "[txtTicket]")
txtLOS.ControlSource = DLookup("[LOS]", "[TBL_2025]", [ID] = "[txtTicket]")
txtLOS.ControlSource = DLookup("[LOS]", "[TBL_2025]", "[ID]" = "[txtTicket]")
返回了我:
上面的线条有什么问题。
非常感谢您的帮助。
不使用
ControlSource
属性,而是使用
Value
txtLOS.Value = tryLOS