2013-04-07 44 views
0

我在Access 2010 VBA中尝试从表中读取记录以将其写入文本框中时出现问题。如何使用Access的OpenRecordset使用其数字键字段获取记录?

我的表是“产品”,其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 

请帮助我。这是一个Final Proyect,我不知道其他,但这种方法。请帮帮我。

回答

1

很高兴看到你想通了。 问题是产品ID是数字和代码专门为测试文本字段

rs.FindFirst "ProductID=" & "'" & ID & "'" 

把一个单引号,参数的每一侧,使访问分析参数为字符串。

如果ID是123,这将读取

rs.FindFirst "ProductID='123'" 

,你会得到一个类型错误

+0

是的,但无论如何谢谢! – Josell 2013-04-07 23:24:40

0

我找到了一个简单的解决方案!

rs.FindFirst "ProductoID=" & ID 
相关问题