我有一个名为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
我甚至在代码中尝试了很多调整,但还没有任何进展。
代码应该读取函数:
=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)