0

Access 2010 VBA で、テーブルからレコードを読み取って TextBox に書き込もうとしているときに問題が発生しました。

私のテーブルは "Products" で、その ProductID フィールドは数値です。以前にこの方法を使用しましたが、数値フィールドではなく、テキスト フィールドでのみ機能します(ProductID は autonumber です)。

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 に答える