每天使用新数据刷新/更新/重新查询访问报告
Posted
技术标签:
【中文标题】每天使用新数据刷新/更新/重新查询访问报告【英文标题】:Refresh/Update/Requery an access Report daily with new data 【发布时间】:2020-11-29 22:53:10 【问题描述】:我正在尝试编写一些 VBA 来使用表格中的最新数据更新报告。该报告收集了该表中的所有数据并以一种像样的方式显示它,但我不希望它获取前几天的数据,例如每天仅从上午 12:00 更新到下午 12:00,然后将其与我的代码合并将此报告导出为 pdf(已经可以使用,但只是不断显示整个表格)。这应该是可能的,因为我的报告有存储为值的日期,我只是不知道如何使用 If 语句等来处理它。这是我连接到每天自动运行的宏的模块的代码。
Function Reportmacro()
On Error GoTo Reportmacro_Err
Dim fpath As String
' Check for year folder and create if needed
If Len(Dir("H:\TEST\" & Year(Date), vbDirectory)) = 0 Then
MkDir "H:\TEST\" & Year(Date)
End If
' Check for month folder and create if needed
If Len(Dir("H:\TEST\" & Year(Date) & "\" & MonthName(Month(Date), False), vbDirectory)) = 0 Then
MkDir "H:\TEST\" & Year(Date) & "\" & MonthName(Month(Date), False)
End If
' Check for day folder and create if needed
fpath = "H:\TEST\" & Year(Date) & "\" & MonthName(Month(Date), False) & "\" & Day(Date)
If Len(Dir(fpath, vbDirectory)) = 0 Then
MkDir fpath
DoCmd.OutputTo acOutputReport, "Changeover Car Report", "PDFFormat(*.pdf)", fpath & "\" & "CCReport" & Day(Date) & "_" & Month(Date) & "_" & Year(Date) & ".pdf", False, "", , acExportQualityPrint
End If
Reportmacro_Exit:
Exit Function
Reportmacro_Err:
MsgBox Error$
Resume Reportmacro_Exit
End Function
更多背景知识:我的表格包括 ChangeoverID、Formdate(完成相应表格然后记录在表格中的日期)、Formtime(与表格日期相同但只是时间)、CardID(卡片扫描仪 ID)、EmployeeID、 CarID 等。我想这里的时间并不重要,因为我的目标是每天报告它,希望不改变原始表格,只是报告代码?
抱歉给您带来了困扰
【问题讨论】:
打开过滤到日期/时间范围的报告,然后输出到打开的报告。 你是说这个VBA过程是由宏调用的吗?自动执行宏? 【参考方案1】:您遇到的问题是因为您的报告本身没有被过滤。尝试将报告本身更改为具有 Formdate = Date -1 的默认过滤器,我认为这是您确定哪些信息算作“昨天”的方式。
另一种选择是使用 WhereCondition 打开报表,然后输出打开的表单,然后将其关闭。所有这些都可以在 VBA 中通过一个函数完成。如果您在编写该函数时需要帮助,请告诉我,我会编辑这篇文章。
【讨论】:
【参考方案2】:抱歉,伙计们,我实际上已经根据你们大多数人所说的找到了解决方案。我最终为我的报告考虑了一个过滤选项(特别是因为我只想在不操纵原始数据本身的情况下获取细节)进入报告布局视图,我找到了通过右键单击该字段并选择一个按日期排序的选项许多选项......“今天”就是其中之一。然后我遇到了在报告启动时没有加载这个过滤器的问题......所以我在属性视图中启用了它,这使得一切都按预期工作!过滤器在启动时加载,每天都会自动生成报告以保存在网络共享中。感谢您的帮助,它确实使我走上了正确的道路。
【讨论】:
以上是关于每天使用新数据刷新/更新/重新查询访问报告的主要内容,如果未能解决你的问题,请参考以下文章