如何根据特定客户的信息运行查询?

时间:2013-06-20 18:29:42

标签: vba ms-access access-vba

我有一个表格形式,显示主表中的所有信息。我希望能够双击记录(如果可能的话,记录选择器),然后根据该唯一客户的特定值运行查询。

目前,我可以点击记录选择器并运行通用查询。但是,我希望能够根据点击的用户使查询不同。这是我在双击记录选择器时运行查询的代码。

    Private Sub Form_DblClick(Cancel As Integer)
      DoCmd.OpenQuery "contribution"
    End Sub

例如,如果产品编号为01,并且Customer1的检查日期为06/18/13,我希望将此信息用于查询中的条件。

我真的不确定您是否可以根据记录选择器中的信息运行查询。如果没有,我还能怎么做呢?我刚刚开始学习VBA,所以我是一名新手,但我有其他编码经验,所以我学得很快。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

我建议使用查询作为表单的记录源,而不是仅打开查询本身。这为您提供了更大的灵活性和外观。内容。

要打开表单,请尝试DoCmd.OpenForm。这允许您包含Where条件和过滤器以获取所需的特定记录。该链接包含示例(如果这还不够,只需谷歌更多或在此处询问)。

修改

以您的案例为例,让我们调用您的主要表单FrmA和您的查询结果FrmB。在您的两个记录源(可以是表或查询)中,您的产品编号称为ProdNum,检查日期为CheckDate(在两个来源中不必将它们称为相同的内容,但我想保持简单)

在FrmA中,在“详细信息”部分添加一个命令按钮。此命令按钮将具有Click事件。试试这段代码:

  DoCmd.OpenForm "FrmB",,,
      "[ProdNum]=" & Me.ProdNum & 
      " and [CheckDate]=#" & Me.CheckDate & "#"

在这段代码中,我添加了换行符以便于阅读(你应该把它们拿出来)。另外,我假设ProdNum字段是一个数字类型而CheckDate字段的类型是Date,这就是为什么我在#符号中包围它。 Me.ProdNum指的是FrmA中的字段值,并将该值作为Where条件传递给FrmB。