【问题标题】:Implementing access form with dynamic recordset使用动态记录集实现访问表单
【发布时间】:2018-08-08 08:30:53
【问题描述】:

我刚刚在我们的联系人管理应用程序(访问)中实现了一个消息中心。这包括文本和电子邮件模板管理,以及通过 sql 查询维护在表中的动态电子邮件/txt 组。这一切都很好,我可以选择一个消息模板和一个存储在表中的 SQL 查询,它将文本或电子邮件消息发送给我的联系人。完美。

现在,在我管理要在发送消息时从组合框中选择的 SQL 查询的表单上...我被要求进行一项或两项增强功能。一、在表单中输入sql语句后...能够统计查询将返回的记录数。以及两个在查询中提取客户列表的能力。

我相信我从一个按钮打开一个新表单并将查询记录的 ID 传递给一个新表单。执行简单的 dlookup 并从表中检索 sql 语句。然后我假设我可以将我的记录集指向保存 sql 语句值的字段变量?

我的困惑是我不确定完成此操作所需的 vba,或者甚至需要将其放置在哪个 vba 中。此外... sql 查询中定义的字段是否会显示在“添加现有字段”到表单中?或者它如何知道我可以在表单上放置哪些字段?

【问题讨论】:

  • 为什么用户选择查询?应在“搜索”表单上显示报告列表和/或选择过滤条件,VBA 构建过滤条件。评论allenbrowne.com/ser-62.html
  • 不,我有一个表单,管理员(我)可以在一个长文本字段中构建一个 sql 语句。像圣地亚哥的客户一样,我可以为特定的列表需求动态编写 sql...按客户...按销售量,但错过了上次访问城市的连接等...我可以保存我的所有 sql 语句每个查询的邮件列表/文本爆炸/电子邮件爆炸 - 这可以根据邮寄的需要而改变。在表单上构建它们比在后端一直编辑 sql 更容易。

标签: vba ms-access recordset


【解决方案1】:

你只需要计算结果的数量是:

SELECT COUNT(*) FROM ( [My Query SQL] )

另一部分取决于您的查询的一致性。如果它们都具有相同的字段,例如 [CustomerName],请使用类似:

SELECT [CustomerName] FROM ( [My Query SQL] ) ORDER BY [CustomerName]

至于如何显示结果取决于你为什么需要它们它们可以添加到简单的MsgBox(你需要一些VBA来将上述查询结果转换为字符串)或弹出表单或子表单。

要将结果导入 VBA:

How do I get the data from an SQL query in microsoft Access VBA?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    相关资源
    最近更新 更多