Solved

Access - Truncating a Field

Posted on 2009-04-03
8
199 Views
Last Modified: 2012-05-06
In the following example:

366540 - Doe, John

I would like to separate this on field into three fields:

1. ID (366540)
2. Last Name (Doe)
3. First Name (John)

The Dash always separates the ID from the last and first names, and the comma always separates last name from first name

Thanks
Thanks
0
Comment
Question by:tahirih
  • 4
  • 4
8 Comments
 
LVL 28

Expert Comment

by:TextReport
ID: 24064550
The code below will do it for you
Cheers, Andrew
SELECT Table4.Field1
     , Trim(Left([Field1],InStr([Field1],"-")-1)) AS F1
     , Trim(Mid([Field1],InStr([Field1],"-")+1,Len([Field1])-Len([F1])-Len([F3])-2)) AS F2
     , Trim(Right([Field1],Len([Field1])-InStrRev([Field1],","))) AS F3
FROM Table4;

Open in new window

0
 

Author Comment

by:tahirih
ID: 24064643
This worked wonderfully. I do want to SELECT all fields, and insert into a new Table C:

I was not able to get the following to work:

SELECT * FROM A INTO C
     , Trim(Left([Provider],InStr([Provider],"-")-1)) AS F1
     , Trim(Mid([Provider],InStr([Provider],"-")+1,Len([Provider])-Len([F1])-Len([F3])-2)) AS F2
     , Trim(Right([Provider],Len([Provider])-InStrRev([Provider],","))) AS F3;

Thanks
0
 

Author Comment

by:tahirih
ID: 24064665
Also, the comma remains in F2, the Last Name field. Can we please recode to remove this?

Thank you.
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 28

Expert Comment

by:TextReport
ID: 24064836
Slight increase in the number to take off the extra characters in F2, had to changeteh -2 to -4 to compensate for the spaces that dont go into F1 and F3
Cheers, Andrew


SELECT Table4.Field1
     , Trim(Left([Field1],InStr([Field1]," - ")-1)) AS F1
     , Trim(Mid([Field1],InStr([Field1],"-")+1,Len([Field1])-Len([F1])-Len([F3])-4)) AS F2
     , Trim(Right([Field1],Len([Field1])-InStrRev([Field1],", "))) AS F3
FROM Table4

Open in new window

0
 

Author Comment

by:tahirih
ID: 24064847
I would also like to create a new table C based on this SQL query. This offers a Query view, not a new table.

Thank you
0
 
LVL 28

Accepted Solution

by:
TextReport earned 500 total points
ID: 24064922
OK
SELECT Table4.Field1
     , Trim(Left([Field1],InStr([Field1]," - ")-1)) AS F1
     , Trim(Mid([Field1],InStr([Field1],"-")+1,Len([Field1])-Len([F1])-Len([F3])-4)) AS F2
     , Trim(Right([Field1],Len([Field1])-InStrRev([Field1],", "))) AS F3
INTO [Table C]
FROM Table4

Open in new window

0
 

Author Comment

by:tahirih
ID: 24064935
I was placing the INTO in the improper location. Thanks
0
 
LVL 28

Expert Comment

by:TextReport
ID: 24064943
No problem and best wishes, Andrew
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you find yourself in this situation “I have used SELECT DISTINCT but I’m getting duplicates” then I'm sorry to say you are using the wrong SQL technique as it only does one thing which is: produces whole rows that are unique. If the results you a…
If you have heard of RFC822 date formats, they can be quite a challenge in SQL Server. RFC822 is an Internet standard format for email message headers, including all dates within those headers. The RFC822 protocols are available in detail at:   ht…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question