1

我正在创建一个销售配置数据库。我正在使用表单来引导销售人员完成配置过程。某些产品将决定配置路径。当销售人员点击表单时,我有一个临时表 (tblConfigTemp) 填充了他们的选择。该表在配置结束时或用户按下“主页”按钮时被清除。

我在使用 VBA 时遇到了关于如何在我的临时表上查找值的问题。我希望能够查看我的临时表,搜索 ProductID,然后根据之前的条目插入一个额外的 ProductID。以下是到目前为止的内容:

Private Sub btnRTKGO_Click()

    Dim locProductID As Integer

    locProductID = [Tables]![ConfigTemp]![ProductID]

    If locProductID = 1 Then
        sSQL = "INSERT INTO ConfigTemp( [ProductID] ) SELECT  '10' "
    ElseIf locProductID = 2 Then
        sSQL = "INSERT INTO ConfigTemp( [ProductID] ) SELECT  '11' "
    ElseIf locProductID = 3 Then
        sSQL = "INSERT INTO ConfigTemp( [ProductID] ) SELECT  '12' "
    ElseIf locProductID = 4 Then
        sSQL = "INSERT INTO ConfigTemp( [ProductID] ) SELECT  '13' "
    Else
        Call MsgBox("This is a pop-up message", 0, "A Message")
    End If

End Sub

自从我做任何编程以来已经有一段时间了,试图回到马鞍上。提前致谢。

4

1 回答 1

1

域函数 DLookUp()DCount()等通常是在 Access 中进行简单查找的最直接的方法。例如,要查看 [ProductID] number 1 是否存在,您可以执行类似的操作

Dim n As Integer
n = DCount("*", "ConfigTemp", "ProductID=1")
If n = 0 Then
    MsgBox "ProductID number 1 was not found."
Else
    MsgBox "ProductID number 1 was found."
End If

有关其他信息,请参阅此处的 Microsoft 知识库文章。

要向表中添加另一行,您可以使用与示例代码中的语法类似的内容...

Dim cdb As DAO.Database
Set cdb = CurrentDb
cdb.Execute "INSERT INTO ConfigTemp (ProductID) VALUES (10)", dbFailOnError

...或者您可以使用 Recordset 对象

Dim cdb As DAO.Database, rst As DAO.Recordset
Set cdb = CurrentDb
Set rst = cdb.OpenRecordset("ConfigTemp", dbOpenTable)
rst.AddNew
rst!ProductID = 10
rst.Update
rst.Close
于 2013-06-14T09:06:07.597 回答