1

我有以下 VBA 代码在 Access 2010 中以未绑定的形式填充未绑定的字段:

Private Sub Combo0_AfterUpdate()

Dim D As Database
Dim rsExp As Recordset
Dim Criteria As String

Set D = CurrentDb
Set rsExp = D.OpenRecordset("ExpAsset", DB_OPEN_DYNASET)

Criteria = "[serial_number]=" & [Combo0]

rsExp.FindFirst Criteria

Me!Name = rsExp("User")
Me!Type = rsExp("Type")
Me!MODEL = rsExp("Model")
Me!Notes = rsExp("Notes")
Me!Department = rsExp("Department")
Me!Status = rsExp("Status")

rsExp.Close

End Sub

我在此行 rsExp.FindFirst Criteria 运行时错误 3077 表达式中的语法错误(缺少运算符)出现错误。

我已将代码更改为 Criteria = "[serial_number]=" & Str([Combo0]) 但随后出现运行时错误 13 类型不匹配。

4

1 回答 1

1

给自己一个机会来检查您要求.FindFirst使用的标准。这可能不是你所期望的。

Dim strCriteria As String
'strCriteria = "[serial_number]=" & Me.Combo0
' since serial_number is text, enclose the Combo0 value in quotes
' when you build strCriteria
strCriteria = "[serial_number]='" & Me.Combo0 & "'"
Debug.Print strCriteria
' or MsgBox strCriteria if you prefer

Debug.Print您可以在“立即”窗口中看到输出。去那里Ctrl+g

如果[serial_number]是文本数据类型,并且Debug.Print为您提供了其中任何一种,那么您就有问题了。

[serial_number]=A0123
[serial_number]=

如果这不能引导您找到解决方案,请告诉我们您遇到错误时的数据类型[serial_number]和值。Me.Combo0

于 2013-04-04T23:58:23.853 回答