Temp Table中的MS Access查找值中的VBA

时间:2013-06-14 06:44:51

标签: vba ms-access

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

我遇到有关如何在临时表上查找值的问题。我希望能够查看我的临时表,搜索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

因为我做了任何编程,试图回到马鞍上已经有一段时间了。提前谢谢。

1 个答案:

答案 0 :(得分:1)

域函数 DLookUp()DCount()等通常是在Access中进行简单查找的最直接方式。例如,要查看[ProductID]编号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知识库文章here

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

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