如何使用Access'OpenRecordset使用其数字键字段获取记录?

时间:2013-04-07 01:44:10

标签: vba ms-access database-design access-vba

我在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,我不知道其他,但这种方法。请帮帮我。

2 个答案:

答案 0 :(得分:1)

很高兴看到你弄明白了。 问题是ProductID是数字,您的代码专门测试文本字段

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

在参数的每一侧放置一个引号使Access将参数解析为字符串。

如果ID为123,则会显示

    rs.FindFirst "ProductID='123'" 

你得到一个类型错误

答案 1 :(得分:0)

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

    rs.FindFirst "ProductoID=" & ID