1

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

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

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

例如,如果产品编号是 01,而 Customer1 的检查日期是 06/18/13,我想将此信息用于查询中的条件。

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

4

1 回答 1

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。

于 2013-06-20T18:44:27.787 回答