我在Access 2010 VBA中遇到问题,尝试从表中读取记录以将其写入TextBoxes。
我的桌子是"产品"及其ProductID字段是数字。我之前使用过此方法,但它只适用于文本字段,而不适用于数字字段(ProductID是自动编号)。
Private Sub GetProduct(ID As TextBox, Name As TextBox, Price As TextBox)
If ID <> "" Then
Set db = CurrentDb
Set rs = db.OpenRecordset("Productos", dbOpenDynaset)
'PROBLEM IS HERE
rs.FindFirst "ProductID=" & "'" & ID & "'"
If rs.NoMatch Then
MsgBox "The producto doesn't exist."
Price = ""
Name = ""
Else
Name = rs!ProductName
Price = rs!Price
End If
rs.Close
Set rs = Nothing
Set db = Nothing
End If
End Sub
请帮帮我。这是一个最终的Proyect,我不知道其他,但这种方法。请帮帮我。
答案 0 :(得分:1)
很高兴看到你弄明白了。 问题是ProductID是数字,您的代码专门测试文本字段
rs.FindFirst "ProductID=" & "'" & ID & "'"
在参数的每一侧放置一个引号使Access将参数解析为字符串。
如果ID为123,则会显示
rs.FindFirst "ProductID='123'"
你得到一个类型错误
答案 1 :(得分:0)
我找到了一个简单的解决方案!
rs.FindFirst "ProductoID=" & ID