我有一个名为frm_Reports的表单,通过该表单我可以使用不同的组合框打开不同类型的报告。在报告的末尾,我有一个文本框,用于汇总报告中的记录并显示类似这样的语句
从2019年3月1日(星期五)至2019年3月21日(星期四),来自上述部门的325名患者进入实验室进行测试
我有以下表达式来显示此语句
=Sum([CountOfPatientID]) & " patients entered from above grouped departments for lab tests from " & Format([GetSDV],"dddd"", ""dd mmmm yyyy") & " to " & Format([GetEDV],"dddd dd mmmm yyyy")
GetSDV和GetEDV是公共功能。
我正在尝试从打开报告的表格的文本框中输入日期中的日期。
我知道我必须在变量中使用全局变量和包装函数,以便在语句中输入日期值。但是,当我尝试打开报表时,日期值没有被获取,它要求我输入函数的参数值。
这是我正在尝试使用
完成的代码Option Compare Database
Global SDV As Date
Global EDV As Date
Public Function GetSDV()
GetSDV = SDV
End Function
Public Function GetEDV()
GetEDV = EDV
End Function
Private Sub Form_Open(Cancel As Integer)
GetSDV
GetEDV
End Sub
Public Sub btn_PatientCount_Click()
CheckForSDNulls
CheckForEDNulls
SDV = Me.txt_StartDate
EDV = Me.txt_EndDate
If IsNull(Me.cbo_PatientCount) Then
MsgBox "Please select a report from the dropdown menu.", vbInformation, "No Report Selected"
Exit Sub
Else: DoCmd.OpenReport cbo_PatientCount.Column(1), acViewPreview, "", , acWindowNormal
End If
End Sub
我什至尝试了代码中的许多调整,但仍无济于事。
答案 0 :(得分:0)
代码应读取以下功能:
=Sum([CountOfPatientID]) & " patients entered from above grouped departments for lab tests from " & Format(GetSDV(),"dddd"", ""dd mmmm yyyy") & " to " & Format(GetEDV(),"dddd dd mmmm yyyy")
这可以进行优化:
Public Function GetSDV() As Date
GetSDV = SDV
End Function
Public Function GetEDV() As Date
GetEDV = EDV
End Function
什么都不做。
Private Sub Form_Open(Cancel As Integer)
GetSDV
GetEDV
End Sub
,并将日期格式应用于文本框的 Format 属性-或转换为日期:
SDV = CDate(Me!txt_StartDate.Value)
EDV = CDate(Me!txt_EndDate.Value)