PC Review


Reply
Thread Tools Rate Thread

Concatenate Text Fields to Date Field

 
 
alhotch
Guest
Posts: n/a
 
      19th May 2010
I have three (3) columns in a table which represent the month, day, and year.
The values in these columns are 04 (month) 21 (day) 2010 (year). I want to
insert these thre values into another table where the field in the record is
a Date/Time type. Here's the SQL statement (in part):

INSERT INTO ....... SELECT [tblTable].[fMonth] & "/" & [tblTable].[fDay] &
"/" & [tblTable].[fYear] AS fDate

I get an error about this "append" that complains about "... set 1 fields(s)
to Null due to type conversion failure, and it didn't add 0 record(s) the the
table ..." However, the value gets entered into the destination table.

The field type for fDate is Date/Time. The three fileds for month, day,
year, are text. The concatination works in that the string is together but I
want to correct the "type conversion failure" error.
 
Reply With Quote
 
 
 
 
Dorian
Guest
Posts: n/a
 
      19th May 2010
Try surrounding whole thing with CDate( )
e.g.
INSERT INTO ....... SELECT CDate([tblTable].[fMonth] & "/" &
[tblTable].[fDay] &
"/" & [tblTable].[fYear]) AS fDate

or maybe try...

INSERT INTO ....... SELECT "#" & [tblTable].[fMonth] & "/" &
[tblTable].[fDay] &
"/" & [tblTable].[fYear] & "#" AS fDate

regardless it wont work if your tblTable contains null in any year/month/day
field or if any constructed date is invalid.

-- Dorian
"Give someone a fish and they eat for a day; teach someone to fish and they
eat for a lifetime".


"alhotch" wrote:

> I have three (3) columns in a table which represent the month, day, and year.
> The values in these columns are 04 (month) 21 (day) 2010 (year). I want to
> insert these thre values into another table where the field in the record is
> a Date/Time type. Here's the SQL statement (in part):
>
> INSERT INTO ....... SELECT [tblTable].[fMonth] & "/" & [tblTable].[fDay] &
> "/" & [tblTable].[fYear] AS fDate
>
> I get an error about this "append" that complains about "... set 1 fields(s)
> to Null due to type conversion failure, and it didn't add 0 record(s) the the
> table ..." However, the value gets entered into the destination table.
>
> The field type for fDate is Date/Time. The three fileds for month, day,
> year, are text. The concatination works in that the string is together but I
> want to correct the "type conversion failure" error.

 
Reply With Quote
 
Jerry Whittle
Guest
Posts: n/a
 
      19th May 2010
Good point. I would run something like this first:

SELECT [tblTable].[fMonth], [tblTable].[fDay], [tblTable].[fYear]
FROM tblTable
WHERE IsDate([tblTable].[fMonth] & "/" &
[tblTable].[fDay] & "/" & [tblTable].[fYear]) = False

This will show any problem records.
--
Jerry Whittle, Microsoft Access MVP
Light. Strong. Cheap. Pick two. Keith Bontrager - Bicycle Builder.


"Dorian" wrote:

> Try surrounding whole thing with CDate( )
> e.g.
> INSERT INTO ....... SELECT CDate([tblTable].[fMonth] & "/" &
> [tblTable].[fDay] &
> "/" & [tblTable].[fYear]) AS fDate
>
> or maybe try...
>
> INSERT INTO ....... SELECT "#" & [tblTable].[fMonth] & "/" &
> [tblTable].[fDay] &
> "/" & [tblTable].[fYear] & "#" AS fDate
>
> regardless it wont work if your tblTable contains null in any year/month/day
> field or if any constructed date is invalid.
>
> -- Dorian
> "Give someone a fish and they eat for a day; teach someone to fish and they
> eat for a lifetime".
>
>
> "alhotch" wrote:
>
> > I have three (3) columns in a table which represent the month, day, and year.
> > The values in these columns are 04 (month) 21 (day) 2010 (year). I want to
> > insert these thre values into another table where the field in the record is
> > a Date/Time type. Here's the SQL statement (in part):
> >
> > INSERT INTO ....... SELECT [tblTable].[fMonth] & "/" & [tblTable].[fDay] &
> > "/" & [tblTable].[fYear] AS fDate
> >
> > I get an error about this "append" that complains about "... set 1 fields(s)
> > to Null due to type conversion failure, and it didn't add 0 record(s) the the
> > table ..." However, the value gets entered into the destination table.
> >
> > The field type for fDate is Date/Time. The three fileds for month, day,
> > year, are text. The concatination works in that the string is together but I
> > want to correct the "type conversion failure" error.

 
Reply With Quote
 
alhotch
Guest
Posts: n/a
 
      19th May 2010
Thanks for the prompt reply, Dorian. The CDate statement did not work.
Neither did the "#" parameter. In both cases, the "append" did not work. No
records were "appended". However, when I use my origial SELECT statement, the
records do get updated even though I get the "type violation fialure" message.

"Dorian" wrote:

> Try surrounding whole thing with CDate( )
> e.g.
> INSERT INTO ....... SELECT CDate([tblTable].[fMonth] & "/" &
> [tblTable].[fDay] &
> "/" & [tblTable].[fYear]) AS fDate
>
> or maybe try...
>
> INSERT INTO ....... SELECT "#" & [tblTable].[fMonth] & "/" &
> [tblTable].[fDay] &
> "/" & [tblTable].[fYear] & "#" AS fDate
>
> regardless it wont work if your tblTable contains null in any year/month/day
> field or if any constructed date is invalid.
>
> -- Dorian
> "Give someone a fish and they eat for a day; teach someone to fish and they
> eat for a lifetime".
>
>
> "alhotch" wrote:
>
> > I have three (3) columns in a table which represent the month, day, and year.
> > The values in these columns are 04 (month) 21 (day) 2010 (year). I want to
> > insert these thre values into another table where the field in the record is
> > a Date/Time type. Here's the SQL statement (in part):
> >
> > INSERT INTO ....... SELECT [tblTable].[fMonth] & "/" & [tblTable].[fDay] &
> > "/" & [tblTable].[fYear] AS fDate
> >
> > I get an error about this "append" that complains about "... set 1 fields(s)
> > to Null due to type conversion failure, and it didn't add 0 record(s) the the
> > table ..." However, the value gets entered into the destination table.
> >
> > The field type for fDate is Date/Time. The three fileds for month, day,
> > year, are text. The concatination works in that the string is together but I
> > want to correct the "type conversion failure" error.

 
Reply With Quote
 
Bob Barrows
Guest
Posts: n/a
 
      19th May 2010
alhotch wrote:
> I have three (3) columns in a table which represent the month, day,
> and year. The values in these columns are 04 (month) 21 (day) 2010
> (year). I want to insert these thre values into another table where
> the field in the record is a Date/Time type. Here's the SQL statement
> (in part):
>
> INSERT INTO ....... SELECT [tblTable].[fMonth] & "/" &
> [tblTable].[fDay] & "/" & [tblTable].[fYear] AS fDate
>
> I get an error about this "append" that complains about "... set 1
> fields(s) to Null due to type conversion failure, and it didn't add 0
> record(s) the the table ..." However, the value gets entered into the
> destination table.
>
> The field type for fDate is Date/Time. The three fileds for month,
> day, year, are text. The concatination works in that the string is
> together but I want to correct the "type conversion failure" error.


Try DateSerial instead:

INSERT INTO ....... SELECT
DateSerial([tblTable].[fYear],[tblTable].[fMonth] , [tblTable].[fDay])
AS fDate

Test by running it without the INSERT part to make sure valid dates are
being created. There may be data in one of the rows that makes it
impossible to create a date.

--
HTH,
Bob Barrows


 
Reply With Quote
 
alhotch
Guest
Posts: n/a
 
      19th May 2010
Thanks to all of you for your input. I have found that one of the records
that I am trying to "append" has "zero" values in the fMonth, fDay, and fYear
fields. When I correct the invalid values, my original INSERT INTO query
works. Jerry Whittle's reply would catch these "zero" value entries.

I'm back in business. Thanks for enlightening me on the options to use
CDate, DateSetial, and IsDate functions in my expressions. You ALWAYS learn
something new when working with these forums.

"Bob Barrows" wrote:

> alhotch wrote:
> > I have three (3) columns in a table which represent the month, day,
> > and year. The values in these columns are 04 (month) 21 (day) 2010
> > (year). I want to insert these thre values into another table where
> > the field in the record is a Date/Time type. Here's the SQL statement
> > (in part):
> >
> > INSERT INTO ....... SELECT [tblTable].[fMonth] & "/" &
> > [tblTable].[fDay] & "/" & [tblTable].[fYear] AS fDate
> >
> > I get an error about this "append" that complains about "... set 1
> > fields(s) to Null due to type conversion failure, and it didn't add 0
> > record(s) the the table ..." However, the value gets entered into the
> > destination table.
> >
> > The field type for fDate is Date/Time. The three fileds for month,
> > day, year, are text. The concatination works in that the string is
> > together but I want to correct the "type conversion failure" error.

>
> Try DateSerial instead:
>
> INSERT INTO ....... SELECT
> DateSerial([tblTable].[fYear],[tblTable].[fMonth] , [tblTable].[fDay])
> AS fDate
>
> Test by running it without the INSERT part to make sure valid dates are
> being created. There may be data in one of the rows that makes it
> impossible to create a date.
>
> --
> HTH,
> Bob Barrows
>
>
> .
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
MS Access Concatenate a date and text field Jerry Tack General Software 16 18th Jun 2011 07:07 PM
Concatenate Text field and date field DavisGail Microsoft Access 4 3rd Mar 2009 06:45 PM
Concatenate text fields to make Field Name in table =?Utf-8?B?amJydWVu?= Microsoft Access VBA Modules 3 20th Jul 2006 07:06 PM
Concatenate two fields (text & number) for key field Larry Elfenbein Microsoft Access Forms 2 10th Nov 2005 01:23 PM
combining date and text fields into text field Kennedy Microsoft Access Queries 2 2nd Aug 2004 11:42 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 06:25 AM.