0

我在 Access 2010 VBA 中尝试从表中读取记录以将其写入文本框时遇到问题。

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

请帮我。这是针对最终项目的,我不知道其他方法,但是这种方法。请帮我。

4

2 回答 2

2

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

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

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

如果 ID 为 123,则显示为

    rs.FindFirst "ProductID='123'" 

你得到一个类型错误

于 2013-04-07T19:43:59.930 回答
0

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

    rs.FindFirst "ProductoID=" & ID
于 2013-04-07T03:16:54.793 回答