Date2Text and Text2Date Functions.
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, they save time on report design. Check the following Links, if you have not yet come across those Functions earlier:
Continued on Page 2/- an indicator Label on the 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 Code above into the Standard VBA Module, save the code, and compile it.
Let us try out the Code directly from the 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 a TextBox on the Report Header, used on a 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 to Text form can be changed back to a valid date format with the Text2Date() Function. There is no validation check performed, and it expects the parameter value to be in the correct input format, similar to the Date2Text() Function.
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.