Vba 是否减少Access 2000中的追加查询数?

Vba 是否减少Access 2000中的追加查询数?,vba,ms-access,Vba,Ms Access,我得写一份168行的报告。其中大多数是顺序数据,但也有求和行,我需要为它们构建辅助表 因此,我需要构建45-50个查询,其中大多数是附加查询 有没有一种方法可以最大限度地减少查询数量并开发一个包含168行的大型报告 我应该使用代码吗?您可以将SQL移动到VBA或宏,或者如果它们都附加到一个表,则创建一个大型联合子查询。所有人都将实现这一目标。对于可用性,我经常选择宏,因为它是点击运行的。只需先设置警告,然后链接运行SQL语句 如果适用,联合查询也是一种优雅的解决方案。您可以将SQL移动到VBA或

我得写一份168行的报告。其中大多数是顺序数据,但也有求和行,我需要为它们构建辅助表

因此,我需要构建45-50个查询,其中大多数是附加查询

有没有一种方法可以最大限度地减少查询数量并开发一个包含168行的大型报告


我应该使用代码吗?

您可以将SQL移动到VBA或宏,或者如果它们都附加到一个表,则创建一个大型联合子查询。所有人都将实现这一目标。对于可用性,我经常选择宏,因为它是点击运行的。只需先设置警告,然后链接运行SQL语句


如果适用,联合查询也是一种优雅的解决方案。

您可以将SQL移动到VBA或宏,或者如果它们都附加到一个表,则创建一个大型联合子查询。所有人都将实现这一目标。对于可用性,我经常选择宏,因为它是点击运行的。只需先设置警告,然后链接运行SQL语句


如果适用,联合查询也是一个优雅的解决方案。

就在去年,我创建了一个复杂、多部分、多页的报告,其中包含图形、汇总、运行平均值、趋势、“数据透视表”等。我没有计算有多少“行”数据,但我做了一些事情来管理许多查询:

  • 最重要的经验教训是:经过多次优化并尝试整合和重用查询和临时表后,仍然没有一组“神奇的少数”查询可以返回所需的数据。即使您将SQL查询的数量从45个减少到35个(在许多情况下这将是令人印象深刻的),仍然有许多查询需要以智能的方式进行管理。关键是更担心编写可管理的查询和良好的基础设施,而不是将重点放在减少数量上。(如果您的流程与此类似,那么以后您将不可避免地添加更多查询和更多详细信息。)
    • 联合查询确实有其位置,有时是必要的,但简单地组合查询以“减少数量”可能会产生负面后果。1) 无法使用设计视图生成或可视化联合查询。我认为自己是一个“真正的程序员”,但我仍然很感激当我能够使用UI组件时的能力。设计视图提供了各种有用的语法和数据类型检查。2) 在调试和优化中,能够单独运行查询通常很有用。3) 联合不会提高效率,而且在不需要删除重复项和排序时,联合实际上可能会减慢查询速度。4) 我曾经遇到过某些完全正确的查询,这些查询在联合中组合时会导致错误。我还没有学会如何预测这种行为,所以几乎不值得一提。。。除了不要被愚弄到认为个别查询存在某种缺陷。(通常有变通办法。)
  • 在单独的Access数据库中创建所有相关的报表查询和临时表,并链接到主数据库。换句话说,如果可能,创建一个单独的报告前端。这不仅可以保持源数据库更干净,还可以使其更高效(高度依赖于用户数量和用户共享数据库的方式)
  • 使用一致模式的名称查询。我尝试使用编号查询,但取得了一些成功。我个人发现描述性的名字比简短、晦涩的名字更有用。然而,大量的剪切和粘贴是必要的
  • VBA代码或宏可能比单个保存的查询更好。
    • 我很少使用复杂的宏,所以这些技巧大多与VBA代码有关,但我不会反对宏,因为它们至少提供了一些类似的好处。创建一个有用的“仪表板”窗体,使VBA代码可以像宏一样单击运行,而无需做很多工作
    • 注释可以包含在SQL语句旁边。这在概述丑陋的SQL时是非常宝贵的。例如,它可以解释为什么你选择一个左节点,而不是一个内部连接,特别是为了防止“有帮助”的同事(或你自己)重写一个查询,只是发现他们没有考虑到所有的原始上下文。
    • 查询文本和执行的整个序列都可以实时跟踪和调试。如果错误处理编码正确,则可以创建自定义日志和专门的错误处理。可以编辑和重新运行SQL文本,而无需停止整个过程
    • 查询参数可以传递给查询,而无需笨拙的UI提示。参数可用于使用用户输入编写适当的查询代码(即避免SQL注入),并可减少具有不同输入或条件但在其他方面相同的类似查询的数量
    • 多个查询可以包装在一个事务中,并一起提交或回滚不确定宏是否支持此功能

就在去年,我创建了一份复杂、多部分、多页的报告,其中包括图表、汇总、运行平均值、趋势、“数据透视表”等。我没有计算数据的“行”数,但我做了一些事情来管理许多查询:

  • 最重要的经验教训是:经过多次优化并尝试整合和重用查询和临时表后,仍然没有一组“神奇的少数”查询可以返回所需的数据。即使您将SQL查询的数量从45个减少到35个(在许多情况下这将是令人印象深刻的),仍然有许多查询需要以智能的方式进行管理。关键是更担心编写可管理的查询和良好的基础设施,而不是将重点放在减少数量上。(如果您的流程与此类似,那么以后您将不可避免地添加更多查询和更多详细信息。)
    • 工会的质疑确实存在