我目前正在开发一个由前一名员工开发的Access数据库,并已根据需要介绍维护/调整系统。系统存储员工完成的任务的信息,并具有可以创建的各种报告以查看指标。为了使那些阅读它们的人能够更清楚地了解这些报告,我想添加"查看日期"报告标题。
为了打开报告,经理点击加载相应报告的“发件人”按钮(今天,昨天或特定日)。对于这两个"今天"和"昨天",我能够将日期设置为使用= Date()和= Date() - 1。但是,我在为特定日期做类似事情时遇到了麻烦。
到目前为止,我的解决方案是通过表单上的按钮按下,InputBox从管理器获取日,月和年,以在WHERE语句中生成当天的报告。我想在报告中使用这些值(dt,mo,yr),但我不确定要在报告中放入什么来从vba代码中提取这些值。对此的想法,或者采用不同的方法,我们将不胜感激!
目前的vba代码如下。根据我的阅读,有一些技术可以创建临时查询/表格/表格来存储信息,然后将其拉回报告中。或者有办法制作这些变量" Public"并且从各个地方被拉出来,但这种方法目前在我的头上。
Private Sub SpecificSummary_Click()
Dim stDocName As String
Dim yr As Integer
Dim mo As Integer
Dim dt As Integer
mo = InputBox("Enter Month:")
dt = InputBox("Enter Day:")
yr = InputBox("Enter Year:")
stDocName = "SpecificSummary"
DoCmd.OpenReport stDocName, acViewPreview, , "((Year([TimeStamp])) = " & yr & ") And ((Month([TimeStamp])) = " & mo & ") And ((Day([TimeStamp])) = " & dt & ")"
End Sub
RE中的更多信息:HansUp
对于今天和昨天的报告,在使用文本框的报告标题中,我使用= Date()表示今天,而= Date() - 1表示昨天。
更新:根据要求,以下是今日报告的当前代码/方法。
Private Sub TodaySummary_Click()
Dim today As Date
Dim stDocName As String
Dim yr As Integer
Dim mo As Integer
Dim dt As Integer
today = Date
yr = Year(today)
mo = Month(today)
dt = Day(today)
stDocName = "DailySummary"
DoCmd.OpenReport stDocName, acViewPreview, , "((Year([TimeStamp])) = " & yr & ") And ((Month([TimeStamp])) = " & mo & ") And ((Day([TimeStamp])) = " & dt & ")"
End Sub
在报告(TodaySummary)中,我使用了......
=Date()
打印出日期
我觉得我比这更难实现,并且盲目地错过了使用日期而不是将其分解为年/月/日并使用WHERE条件的明显方法。
答案 0 :(得分:0)
我现在得到了 - 我以为你对所有查询都使用相同的报告 - 这当然是可能的。
但是如果您想要做的就是动态更改报表头中的文本字段 - 您当然可以这样做。
在您的报告中,编辑使用REPORT_LOAD活动
打开Report_Load事件
然后编辑事件看起来像:
Private Sub Report_Load()
Dim strTextDate As String
strTextDate = Nz(Me.Report.OpenArgs, "")
' Replace "Text5" with your control
Text5.Value = strTextDate
End Sub
将您的代码更改为:
Dim stDocName As String
Dim yr As Integer
Dim mo As Integer
Dim dt As Integer
Dim strTextDate As String
mo = InputBox("Enter Month:")
dt = InputBox("Enter Day:")
yr = InputBox("Enter Year:")
' Change this to match your date format
strTextDate = "" & yr & "-" & mo & "-" & dt
stDocName = "SpecificSummary"
' Add date to last OpenArgs parameter of OpenReport
DoCmd.OpenReport stDocName, acViewPreview, , , acWindowNormal, strTextDate
确保在运行代码之前关闭并保存报表设计