.findfirst vba access2010未绑定表单运行时错误

时间:2013-04-04 23:50:01

标签: forms access-vba ms-access-2010

我有以下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类型不匹配。

1 个答案:

答案 0 :(得分: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的值。