[AccessD] New thrd: dates

Bill Benson bensonforums at gmail.com
Thu Aug 21 18:06:02 CDT 2014


Love - and am deeply grateful for, Stuart, the simplicity in your answer.
Loved even more "I always use" w/o problems, that means field tested. Any
reason you use DateValue rather than CDate?



-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Stuart McLachlan
Sent: Thursday, August 21, 2014 5:50 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] New thrd: dates

OK, here goes as asked for (an Access FE/BE):

Answers in line.

On 21 Aug 2014 at 15:46, Bill Benson wrote:

> I am really sorry I asked this one now! My question "what is meant by 
> a GUI date just needed a yes or no to my illustration, to wit, " Is 
> this a bound textbox reading a date from the back end?"; [or if not 
> that, something else - and if so, what?].
> 

Yes.   It's the formatted date as displayed in a control on a form or
report.

> Jim further said the effect would depend on
> <<1) the format the data is put into by the BE I already posted:
> <<my backend had Aug 4th 2014 stored as 08/04/2014

No, your date is NOT stored iin an Access BE as 08.04/02014.  It is stored
as
the number 41855.0   which is the number of days since 30 Dec 1899.

> I had written (*emphasis* added):
> > When *I take that value* to enter it into the database (remember 
> > backend is US) would I write
> >
> > Sql = "Insert into myTable (name, address, effective_dt) values ('"
> > & txtname & "','" & txtaddress & "', #" & txteffectivedate & "#)"
> 
> > Or
> > Sql = "Insert into myTable (name, address, effective_dt) values ('"
> > & txtname & "','" & txtaddress & "', #" & cdate(txteffectivedate) & 
> > "#)"

It doesn't matter whether the BE is US or UK, the date is stored as the same
number.  

The problem is that the SQL engine in the Access FE requires a date
surrounded by "#"s to be in a specific format, which may not be the format
in which txtEffectiveDate is being displayed. (In a European FE, the
txtEffectiveDate could be 08/04/2014, 04/08/2014,"04 Aug 
2014","Aug 4 2014" , "Auot 4 2014", or many other language specific
formats.)       

There are two common solutions:

 Sql = "Insert into myTable (name, address, effective_dt) values ('"
 & txtname & "','" & txtaddress & _
"', #" & format(txteffectivedate,"mm/dd/yyyy") & "#)"

or

 Sql = "Insert into myTable (name, address, effective_dt) values ('"
 & txtname & "','" & txtaddress & _
"',Datevalue('" & txteffectivedate & "'))"

FWIW, I always use the second version and have never had a problem with it.


--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list