Date format with VBA - English VS French difference - ms-access

I have a problem with Access 2010. I'm using the included datepicker with the default textbox.
Where i work, there are computers that are in US date format (mm/dd/yyyy), and others in Canada date format (dd/mm/yyyy)
I cannot change the regional option of those computers.
I have succeded to force the date with format(date,"dd/mm/yyyy")
But when i chose a date with the default datepicker, it goes with the windows regional option, in this case, (mm/dd/yyyy) but in other computer, it will be ok, in (dd/mm/yyyy). I need to overide the dateformat with the datepicker but i don't know how.
This is a screenshot, the dateformat is in US format, and it's not okay.

I'm sure there's a more elegant way to do this, but I guess you could detect the locale-determined date format with something like this:
If CInt(Left(CStr(DateSerial(2012, 1, 2)), 2)) = 2 Then
MsgBox "Canadian locale, date format dd/mm/yyyy."
Else
MsgBox "US locale, date format mm/dd/yyyy."
End If
Then based on this, interpret the date-picker-chosen date and re-display it in your format of choice.

Can you not just set the Format property of the text field to dd/mm/yy or whatever you require?

Related

Coldfusion datepicker dd/mm/yyyy but MySQL stay with format yyyy/mm/dd

Datepicker is an option for user easy to pick the date to fill the form. In coldfusion, there is a fill form that need to use datepicker and after user selected the date and fill the form with format yyyy/mm/dd by default format which is MySql can read. If i change into dd/mm/yyyy and click save into MySql will get error because from what i know default format for MySql is yyyy/mm/dd.
<input type="text" name="Date_joined" size="auto" style="border:0px"required="yes">
This is the function to popup datepicker :
<a href="javascript:showCal('Calendar1')">
This is logo for datepicker :
<img align="right" src="calendar_menu.gif" alt="Select a date" border="0"></a>
Is there any solution for user pick a date and input text will display dateformat dd/mm/yyyy but still can save into MySql without error.
How to make MySQL accept a user input in format DD/MM/YYYY so the data will be recorded
If you want to save a string of numbers and dashes that represents a date in the format you want it displayed on a screen, then just make your database column a CHAR(10) and be done with it.
But, if you want to do calculations against it, aggregate data by it, DO THINGS with it, then save it as a date type. Don't worry about how your database UI represents that date value to you. Maybe it's different from how you want it shown on an HTML page, it doesn't matter. What matters is that as a date object, you can easily use and display that value however you like.
From what I know, MySQL will only accept datatype date with format YYYY/MM/DD.
Not how that works.
https://dev.mysql.com/doc/refman/5.7/en/datetime.html
The DATE type is used for values with a date part but no time part.
MySQL retrieves and displays DATE values in 'YYYY-MM-DD' format. > The supported range is '1000-01-01' to '9999-12-31'.
See that "retrieves and displays" (emphasis mine)? It's just a date object with "00:00:00" as the time portion.
So however your form field accepts the string representation of the date, you need to convert it to a proper date object. Per Dan's suggestion, you can easily use parseDateTime() to accomplish this.
#writeOutput( parseDateTime( now() ) )# will output {ts '2018-03-14 15:29:19'}.
If your form field contains a valid string that represents a date (e.g. 2018-03-14):
#writeOutput( parseDateTime( form.myDateField ) )# will output {ts '2018-03-14 00:00:00'}.
So the value will be saved as a date object, without the time portion. When you read the saved value later, just use dateFormat() to display it in any format you like.
(Moved from comments for greater visibility)
One important addition to Adrian's answer. In this specific case, you MUST use a date mask with parseDateTime(). The mask controls how parseDateTime() interprets the input. Without the correct mask, the results may be wrong for your specific input, namely dd/mm/yyyy.
TryCF Example
Code:
<cfscript>
dateString = "05/08/2018";
writeOutput("<br>Without mask = "& parseDateTime( dateString) );
writeOutput("<br>With mask = "& parseDateTime( dateString, "dd/MM/yyyy") );
</cfscript>
Result:
Without mask = {ts '2018-05-08 00:00:00'} (May 8, 2018)
With mask = {ts '2018-08-05 00:00:00'} (August 5, 2018)

Changing the date format in Access 2010

I want to show the Purchase_Date in dd/mm/yy format . I already set the Format in form properties as dd/mm/yy
When i select a cell in database view it shows the date in dd/mm/yy but it still shows the date in mm/dd/yy otherwise
I need 05/02/14 to show as 02/05/14 at all times
This is by design. When the control gets focus, it will revert to the default format as to the settings in Windows.
A workaround can be to use three concatenated textboxes, but it requires some code to operate nicely.
You have to go to the Region and Language in the Control Panel and choose "English (Autralia)" as the format in the formats tab. Then change the short date format from the option below as you require. The format you want is available there.
Edit:
A better way to do it is to apply your own format. In the Format property of the properties of the Date/Time field, you can type in the format you want using placeholders and separators.
Hope this solves your problem.

Now() function is only showing date not time

So I'm making a report in Access, I call
=Now() and it only shows the date and not the time. How do I fix this?
I'm using access 2013.
Assuming your report contains a text box where you want to display the current date and time, leave its Control Source property as simply =Now() and use the text box's Format property to display the date and time as you wish.
If none of the available selections offers the exact format you want, you can enter a custom format as in this example:
And this is the same report in Report View:
I have also noticed reports do this. I just change the field to be something like
=Date() & " at " & Time()
It depends on system date setting. Use Format(now(),"general date") in place of now(). Alternatively, you can use format(now(),"dd/mm/yyyy hh:mm ampm") to show date with time in AM/PM form. You can omit "ampm" to show time in 24 hour format.

dd/mm/yyyy date format in SSRS

i'm trying to specify dd/mm/yyyy dateformat for date/time parameter in SSRS 2008 R2.
My computers datetime format is mm-dd-yyyy.
My requirement is, i want to show date format at dd/mm/yyyy irrespective of the system/server date format.
I've already tried CDate(Format(Today,"dd/mm/yyyy")) which didn't work. one very strange thing i observed is, it shows dd/mm/yyyy format only for dates on or before 12-MM-yyyy, and 13 onwards it gives error: Conversion from string '25-04-2014' to type Date is not valid. (Possibly it is trying to map 25(daypart) with MM-dd-yyyy (month part)) which is out of range of total months i.e. 12)
my research on internet says it is a bug in BIDS 2008.
What do i do to display date as dd/mm/yyyy ??
I don't have enough reputation to comment, but I did notice that you failed to put "()" after "Today". If I'm not mistaken you must put Today() for that function to work. Also, you might want to try putting CDate Around the Today() function. You shouldn't need it, but it's worth a shot. Also, for some odd reason, in my experience, you must capitalize MM for format to work correctly.
Like #Aditaya said, it should be =format(Today(),"dd/MM/yyyy")
The expression I usually use is:
=FormatDateTime(Fields!Date.Value, DateFormat.ShortDate)
However, this may be region specific.
Rather than writing an expression to do the formatting, you can also use the Textbox Format Property. But first you need to make sure that the data is in a date format. So use the CDate function on your column like this:
=CDate(Fields!Date.Value)
Then in the textbox properties go to the Number tab. Select Date for the category. Then you can select whichever format you want or use a Custom format. This will change how the column displays when you run the report.

Data Type Error when added Input Mask on Date Time Field

i have a date/time field called MyDate. Originally, its format is mm/dd/yyyy and there is no input mask. The Date Picker is also set. I then added input mask using Short date , changed the default input maks to (99-99-0000;;_) and change the format to mm-dd-yyyy. However, when i switch to DataSheet view , all my dates are changed from mm/dd/yyyy to mm-dd-yyyy (which is the correct behaviour right? ) and when I tried to enter a new date or modify existing date, it says "The value you entered does not match Date/Time data type in this column". Plus, the DatePicker is missing. How can I resolve this. thank you
The date time picker is not available if an input mask is applied to a field: http://office.microsoft.com/en-us/access-help/add-and-customize-date-and-time-formats-HA010078108.aspx#_Toc272229486
Regarding the error, have you considered using your regional settings in the control panel, which sets the defaukt date display for all (most?) applications?
Dates in Access are stored as numbers, so you can format them however you like, but I suspect the input mask may need to match the regional settings, although I am not certain.