Introduction.
We already have some frequently used Report Footer formatting simple functions, like Report Page Number formatting function =PageNo([page],[pages]), output: Page: 1/20 –> Page: 20/20, Report Period Function =Period([StartDate], [EndDate]), output : Period: 15/09/2007 To 30/09/2007 and =Dated() Function, output: Dated: 15/09/2007 on Report Footer. Even though they are simple Report Header/Footer formatting functions, it saves report design time. Check the following Links, if you have not yet come across those Functions earlier:
Continued on Page 2/- an indicator Label on Report Page Footer, on multi-page reports.
Our new Function formats the Date Value in the following sample Text form:
Sunday, 27th October 2019.
The Date2Text() Function Code.
Public Function Date2Text(ByVal dt As Date) As String Dim txt As String, num As Integer num = Day(dt) Select Case num Case 1, 21, 31 txt = "st " Case 2, 22 txt = "nd " Case 3, 23 txt = "rd " Case 4 To 20, 24 To 30 txt = "th " End Select Date2Text = WeekdayName(Weekday(dt)) & "," & Day(dt) & txt & MonthName(Month(dt)) & " " & Year(dt) End Function
Copy and paste the above Code into the Standard VBA Module, save the Code and compile it.
Let us try out the Code directly from Debug Window. Press Ctrl+G to display the Debug Window if it is not already visible on the VBA editing Window.
Sample Test Runs.
D = #27-10-2019# ? Date2Text(D) Result: Sunday, 27th October 2019 D=Cdate("22/10/2019") ? Date2Text(D) Result: Tuesday, 22nd October 2019 D=DateValue("11/10/2019") ? Date2Text(D) Result: Friday, 11th October 2019 ? Date2Text(Date) Result: Thursday, 31st October 2019
Weekday 1 to 7 is Sunday to Saturday. This depends on your Computer's Regional Settings. If it is not correct in your case, then change it in the Regional settings on your Computer.
Scope of this Function.
The Date2Text() Function can be placed in TextBox on Report Header, use on Date-Field Query Column, or on the Main Form (Main Switchboard or Control Screen, etc.) as general info.
The Text2Date() Function.
The Date2Text() Function’s complementary Function Text2Date() VBA Code is given below.
Public Function Text2Date(ByVal txtDate As String) As Date Dim S, dt As String S = Split(txtDate, " ") dt = Str(Val(S(1))) & "-" & S(2) & "-" & S(3) Text2Date = DateValue(dt) End Function
The Date converted into Text form can be changed back into a valid date format with the Text2Date() Function. There is no validation check performed on the input value for errors and expected to pass the parameter value in the correct input format, the same as the Date2Text() Function output.
Example:
? Text2Date("Thursday, 31st October 2019") Result: 31-10-2019
Caution: If the parameter value is entered manually, then there should not be more than one space between each segment of the date text.
No comments:
Post a Comment
Comments subject to moderation before publishing.