【发布时间】: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过程是由宏调用的吗?自动执行宏?
标签: vba ms-access report refresh updates