除了 Davg 之外还有其他求平均值的方法吗?

2023-12-11

我在工作中继承了这个访问数据库,我正在寻找一种更快的方法来编写一些代码。目前运行该程序大约需要 1.5 分钟,我需要它更快。

目前我已将其全部设置为 DAvg 和 DCount,但问题是它基本上打开和关闭其使用的每一行的查询。就其本身而言很好,但我需要这样做 36 次。

Private Sub Form_Load()
On Error GoTo errhndlr
    Me.Visible = True
    Dim FY_EngMiss, Prev_EngMiss, LThree_EngMiss, LNine_EngMiss, FY_DraftMiss, Prev_DraftMiss, LThree_DraftMiss, LNine_DraftMiss As Integer
    Dim FY_Eng, Prev_Eng, LThree_Eng, LNine_Eng, FY_Draft, Prev_Draft, LThree_Draft, LNine_Draft As Integer
    Dim FY_Fups, Prev_Fups, LThree_Fups, LNine_Fups, FY_pjs, Prev_Pjs, LThree_Pjs, LNine_Pjs, EngMissed As Integer
    Dim FY_Quote, Prev_Quote, LThree_Quote, LNine_Quote As Double
    Dim FY_Avg, Prev_AVG, LThree_Avg, LNine_Avg As Double
    Dim SummaryDate, FiscalDate, LThreeDate As Date
    Dim rst As DAO.Recordset

    Me.Printer.Orientation = acPRORLandscape
    Me.SummaryDate = Forms!ReportForm.Form.SDate
    Me.FiscalDate = Forms!ReportForm.Form.FiscalStartDate
    SummaryDate = CDate(DateValue(Me.SummaryDate))
    FiscalDate = CDate(DateValue(Me.FiscalDate))
    LThreeDate = CDate(DateValue(DateAdd("m", -1, Me.SummaryDate)))

    'Quality Metrics

    Me.JW_DAYRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JW' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.CD_DAYRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'CD' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.FM_DAYRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'FM' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.JP_DAYRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JP' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.MB_DAYRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'MB' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.BE_DAYRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'BE' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")

    Me.JW_DAYQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JW' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.CD_DAYQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'CD' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.FM_DAYQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'FM' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.JP_DAYQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JP' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.MB_DAYQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'MB' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")
    Me.BE_DAYQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'BE' and Format([CompletedDate], 'm/d/yyyy') = '" & SummaryDate & "'")

    Me.JW_MRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JW' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.CD_MRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'CD' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.FM_MRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'FM' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.JP_MRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JP' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.MB_MRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'MB' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.BE_MRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'BE' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")

    Me.JW_MQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JW' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.CD_MQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'CD' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.FM_MQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'FM' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.JP_MQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JP' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.MB_MQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'MB' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")
    Me.BE_MQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'BE' and [CompletedDate] Between #" & SummaryDate + 1 & "# And #" & LThreeDate & "#")

    Me.JW_YRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JW'")
    Me.CD_YRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'CD'")
    Me.FM_YRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'FM'")
    Me.JP_YRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JP'")
    Me.MB_YRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'MB'")
    Me.BE_YRNK = DAvg("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'BE'")

    Me.JW_YQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JW'")
    Me.CD_YQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'CD'")
    Me.FM_YQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'FM'")
    Me.JP_YQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'JP'")
    Me.MB_YQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'MB'")
    Me.BE_YQTY = DCount("AvgOfProjectRank", "Email_Ranking", "[Approver] = 'BE'")
Exit Sub
errhndlr:
    Call Errhndler.ErrorHandler(Err.Number, Err.Description, Me.Name, "Form_Load")
End Sub

这也是 Email_Ranking 查询的 SQL 文本。

SELECT DISTINCTROW
       archived_email.ProjectID, 
       archived_email.subject, 
       archived_email.approver, 
       archived_email.completeddate, 
       Avg(timestamp.projectrank) AS AvgOfProjectRank 
FROM   fy_current_external, 
       archived_email 
       INNER JOIN [timestamp] 
               ON archived_email.projectid = timestamp.projectid 
GROUP  BY archived_email.projectid, 
          archived_email.subject, 
          archived_email.approver, 
          archived_email.completeddate, 
          fy_current_external.date_value 
HAVING ( ( ( archived_email.approver ) = "mb" 
            OR ( archived_email.approver ) = "fm" 
            OR ( archived_email.approver ) = "jw" 
            OR ( archived_email.approver ) = "be" 
            OR ( archived_email.approver ) = "cd" 
            OR ( archived_email.approver ) = "jp" ) 
         AND ( ( archived_email.completeddate ) >= [date_value] ) 
         AND ( ( LEFT([archived_email]![projectid], 2) ) = "e-" 
                OR ( LEFT([archived_email]![projectid], 2) ) = "pl" ) ) 
ORDER  BY archived_email.completeddate DESC; 

它正在搜索的查询包含 6,000 多个项目。 运行此代码的平均时间为 88 秒。此代码位于多个位置。我想将这个时间至少减少一半,最好减少到 10 秒或更短。


做这样的事情:

Dim SummaryDate As String
Dim FiscalDate As String
Dim LThreeDate As String
Dim Sql As String
Dim rst As DAO.Recordset

Me.Printer.Orientation = acPRORLandscape
Me.SummaryDate = Forms!ReportForm.Form.SDate
Me.FiscalDate = Forms!ReportForm.Form.FiscalStartDate
SummaryDate = Format(Me.SummaryDate.Value, "yyyy\/mm\/dd")
FiscalDate = Format(Me.FiscalDate, "yyyy\/mm\/dd")
LThreeDate = Format(DateAdd("m", -1, Me.SummaryDate.Value), "yyyy\/mm\/dd")

Sql = "Select Approver, Avg(AvgOfProjectRank) As PrjRnk, Count(*) As PrjQty " & _
      "From [Email_Ranking] " & _
      "Where DateValue([CompletedDate]) = #" & SummaryDate & "# " & _
      "Group By Approver"

Set rst = CurrentDb.OpenRecordset(Sql)

' Loop the approvers and their controls.
While Not rst.EOF
    Me(rst!Approver.Value & "_DAYRNK").Value = rst!PrjRnk.Value
    Me(rst!Approver.Value & "_DAYQTY").Value = rst!PrjQty.Value
    rst.MoveNext
Wend
rst.Close
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

除了 Davg 之外还有其他求平均值的方法吗? 的相关文章

  • 根据单元格值返回图像(100 张图像和可变单元格)

    我正在尝试为我制作一个 TFT 云顶之弈 表 并想让它看起来更好 为此 我想添加游戏中冠军的图像 当我输入名称时 图像应该出现在下面 我找到了一种将所有图像插入 Excel 工作表 100 的方法 并且还成功制作了一个动态图像 插入 IND
  • VBA - 如何从网站下载.xls并将数据放入Excel文件

    我设法使用 VBA 达到准备从网络下载 Excel 文件的程度 但我无法弄清楚如何实际下载该文件并将其内容放入我正在使用的 Excel 文件中 有什么建议么 谢谢 这是到目前为止的代码 Sub GetData Dim IE As Inter
  • 从 Excel 数据为列中的每个不同值创建 CSV 文件?

    我有一个 Excel 其供应商代码 数字 作为其中一列 VENDORITEM DESCRIPTION PRICE PRICEGROUP VENDOR NUMBER PRODUCT CATEGORY HNM36789 30ML FLUID C
  • 粘贴数据后取消选择列

    这可能很简单 但我无法解决它 我可以使用以下命令释放复制数据的列Application CutCopyMode False但粘贴数据的列仍然保持选中状态 我尝试过ActiveSheet EnableSelection xlNone正如论坛之
  • 将工作表保存为 CSV,且 Excel 公式完好无损

    我完全使用 VBA for Excel 工作 我的解决方案必须完全是程序化的 而不是用户驱动的 该解决方案的要求是用户启动一个宏来获取工作簿并将 8 个工作表保存到单独的 CSV 文件中 保留公式并丢弃公式分辨率 我有一系列工作表 sht
  • 如何从 Access 数据库中读取“是/否”值作为布尔值?

    帮我找回YES NO来自 MS Access 的布尔格式数据类型 我尝试解析它 但它总是返回 false 更新 实际上不是问题抱歉 它确实接受 YES NO 作为布尔值 OleDbconnection dbConnect new OleDb
  • 使用 VBA 将数据从 Excel 导出到现有 PowerPoint 幻灯片

    我正在编写一个小型 excel 插件来进行一些简单的数据分析 但不幸的是我不是 VBA 程序员 到目前为止我已经做了什么 从巨大的 Excel 工作簿中获取数据并执行计算 将结果写入预先格式化的 Excel 骨架 文件 我接下来想要做什么
  • 在 Access VBA 中获取 Combobox.Value

    我有这个代码 If Me Combobox Value My Text Then 然而 由于我想测试 我的文本 是否是唯一选择的值 因此跳过了条件 我也尝试过 Me Combobox Column 1 and Me Combobox Tex
  • vba Excel 中的多个查找请求(在查找中查找)

    我正在尝试执行一种嵌套查找请求 用例是我需要在一个工作表上查找组 如果找到 则从找到的行中的单独列中获取用户 ID 值 然后在另一张纸 然后它应该执行一系列操作 然后在第一张表中找到下一个出现的组 我的代码是 LookupGroup Spl
  • 两个表中两个字段的总和

    我的数据库中有四个表 如下所示 表格发票 invcid customerid invoicedate tblInvc详细信息 ID invcid item itemprice itemquantity tblPay payid invcid
  • MS Office SaveAs 类型 FileDialog 在 vb 中带有过滤器

    我想创建一个带有过滤器的 另存为 文件对话框 但这似乎无法使用 FileDialog 类 Microsoft Office 12 0 对象库 实现 文档实际上提到了这一点here http msdn microsoft com en us
  • 如果单元格包含 1 个或多个关键字,则更改不同单元格的值

    我有一个列 其中包含一些字符串描述 例如 Bob davids mowing the lawn tipping cows 此外 我将在不同的工作表或列上列出关键字列表 例如工作关键字列表1 davids work 播放关键字列表 mowin
  • 连续工作表切换循环

    我有一个 Excel 电子表格来显示 SQL 数据图表 这些图表将显示在我们机加工车间的显示器上 该电子表格有 45 个选项卡 我需要在选项卡之间切换 每个选项卡间隔 10 秒 然后返回到第一个选项卡并重复循环 I found 如何使用 V
  • 用于更新 Word 文档中所有字段的宏

    多年来 我构建了一个 vba 宏 该宏应该更新 Word 文档中的所有字段 我在发布文档进行审查之前调用此宏 以确保所有页眉和页脚等均正确 目前 它看起来像这样 Sub UpdateAllFields UpdateAllFields Mac
  • 将 Mdb 转换为 Sql Server

    如何使用 C 或其他语言将 mdb 访问文件转换为 sql server 我找到了一个article http channel9 msdn com forums TechOff 234266 Convert MS Access DB to
  • 您可以调整用户窗体的这些代码吗:使其小而高效

    当 userfrom 按以下顺序激活时 我想在运行时添加动态用户表单控件 例如 标签 文本框 我想要类似以下的东西 当用户表单激活时 它需要询问用户字段的数量 他 她想要插入 如果用户回答7 则需要按以下顺序添加字段 3 列顺序 标签1 文
  • 如何从另一个 Excel 实例引用工作簿

    我相信我的问题相当简单 我有一个工作簿 我正在使用它从另一个软件 SAP 获取一些数据 当我从软件导出数据时 它会自动打开一个 xlsx 文件 然后我需要做的是从该文件复制一些数据 粘贴到我的原始工作簿上 然后关闭该文件 我的代码中给我带来
  • 使用 VBA 在 Access 表中记录计数

    我正在尝试获取表的记录数 如果计数大于 17 则创建一个新表 Dim rst As DAO Recordset strSQL Select from SKUS Set rst db OpenRecordset strSQL If rst R
  • 关闭工作簿时删除范围,xls vba

    我想要范围 Range A2 G z 关闭工作簿时删除 有人可以帮我处理代码吗 谢谢 凯 这就是我尝试过的 Option Explicit Sub Makro1 insert clipboard Workbooks Pfl SchutzSt
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的

随机推荐

  • Laravel reCaptcha 集成

    我想在我的 Laravel 项目中实现 reCaptchawithout使用 Laravel 包 我尝试过使用经典的 reCaptcha V2 它可以工作 但我想改为实现不可见的 reCaptcha 所以我做的是这样的
  • Python Numpy One 热销区域

    制作这个 One Hot 编码矩阵的最佳方法是什么 array 1 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 as array 0 0 1 2 1 0 换句话说 如何解码 One Hot 数组 Use np arg
  • Android-显示自定义对话框

    在我的 Android 应用程序中 我使用自定义对话框 当我尝试显示对话框时 它会导致错误 我不知道自己做错了什么 我真的很困惑 这是我的代码 protected Dialog onCreateDialog int id Dialog di
  • python threading.timer 设置程序运行超时的时间限制

    我有一些与在 Python 中设置函数的最大运行时间相关的问题 事实上 我想用pdfminer来转换 pdf文件到 txt 问题是 很多时候 某些文件无法解码并且需要很长时间 所以我想设置threading Timer 将每个文件的转换时间
  • TCL 在字符串中设置特殊字符

    我想在 TCL 中将以下错误消息设置为变量 并与来自网络交换机的错误消息进行比较 绕过特殊字符 使用 插槽 端口 或 端口名称 或 插槽 或 我尝试用这种方式 set x Use slot port or portname or slot
  • 在日历应用程序中对重复事件进行建模的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在构建一个需要支持重复事件的组日历应用程序 但我想出的用于处理这些事件的所有解决方案似乎都是黑客 我可以限制一个人可以看到的距离 然后立即生成所有事件 或者 我可以将事件存储为重复事件
  • 如何禁用“调试”在 package.json 中显示

    如何禁止在上面的 package json 中显示概述的 调试 提示scripts部分 设置为 debug javascript codelens npmScripts never 由于它显示为scripts我搜索的 package jso
  • 将项目标记为特定类别

    我想根据项目中的文本将项目标记为特定类别 我有以下代码 Sub ProcessRSS Read RSS items and process the usful ones Dim objList As Object Dim objItem A
  • Coldfusion 9 使用哪个版本的 iText?

    ColdFusion 9 使用哪个版本的 iText 并不明显 有任何想法吗 ColdFusion 9 0 1 附带 iText 2 1 0 由 lowagie com 提供 您可以在此处找到 ColdFusion 脚本来确定版本 http
  • 如何计算VBA中一个字符串出现在另一个字符串中的次数?

    如何计算 Access VBA 中一个字符串出现在另一个字符串中的次数 例如 我如何计算 The Quick Brown Fox Jumps Over the Lazy Dog 中 The 出现了多少次 因为您对子字符串 区分大小写没问题
  • 从 forEach 推送对象后数组保持为空

    需要帮助 我遇到数组保持空的问题从 forEach 推送对象后 我是否错过了什么 这是代码 const allStatus result forEach async element gt const count await BpCandid
  • 使用 Mac App Store 中 Safari 组件的应用程序的导出合规性

    我正在向 Mac App Store 提交一个应用程序 该应用程序使用 Safari 组件来显示网页 我被问到这个问题 您的应用程序是否设计为使用加密技术 或者是否包含或合并加密技术 即使您的应用程序仅使用 iOS 或 OS X 中提供的加
  • Swift - 整数转换为小时/分钟/秒

    我有一个 有点 关于时间转换的基本问题Swift 我有一个整数 我想将其转换为小时 分钟 秒 Example Int 27005会给我 7 Hours 30 Minutes 5 Seconds 我知道如何在 PHP 中执行此操作 但可惜 S
  • 打开抽屉菜单时重建脚手架主体

    我有一个有状态的小部件 它构建了一个脚手架 我在脚手架中使用一个抽屉作为侧面菜单 此外 Scaffold 的主体是一个 FutureBuilder 它从 firestore 数据库获取数据并将信息显示在主体的卡片中 打开抽屉时似乎出现问题
  • SQL 中“AS”是什么意思?

    下面是概要SELECT来自 PostgreSQL文档 在我看来 有时我们会写
  • DateTime 和 ASP.NET MVC 3 模型绑定的全球化问题

    我的应用程序在 ro RO 区域性设置下运行 在 web config 全球化部分中配置 如果我发出像这样的 POST 请求 POST myapp index date 03 12 2010 value something 模型绑定将此映射
  • IE8 在 JavaScript 弹出窗口上奇怪地崩溃

    创建弹出窗口后我遇到一个奇怪的问题onclick 弹出窗口打开 但在 IE8 上立即挂起 在包括 IE6 在内的所有其他浏览器上工作正常 但在添加alert如 JavaScript 代码中所示 弹出窗口工作正常 我在用 https 并不是
  • 如何在 TypeScript 中定义 Singleton

    在 TypeScript 中为类实现单例模式的最佳和最方便的方法是什么 有或没有延迟初始化 从 TS 2 0 开始 我们有能力定义构造函数的可见性修饰符 所以现在我们可以在 TypeScript 中执行单例 就像我们习惯在其他语言中一样 给
  • 非空约束上的 Hibernate JoinColumn 错误

    这是我的课程列表 MappedSuperclass public abstract class JpaModel Id Column name ID columnDefinition serial GeneratedValue strate
  • 除了 Davg 之外还有其他求平均值的方法吗?

    我在工作中继承了这个访问数据库 我正在寻找一种更快的方法来编写一些代码 目前运行该程序大约需要 1 5 分钟 我需要它更快 目前我已将其全部设置为 DAvg 和 DCount 但问题是它基本上打开和关闭其使用的每一行的查询 就其本身而言很好