Solved

Import excel CSV into Access at Row 2 and only columns A:L

Posted on 2016-08-17
11
20 Views
Last Modified: 2016-10-03
I am sure there is an easy way to do this.  I have an excel spreadsheet that gets dropped each Monday.  

I need to automate this file to import into access and dump into our SQL tables.  Right now we have to manually delete the first 2 rows (Header and a blank line).  The file names are at row 3 and we only need columns A:L.   What code can I write that is the easiest way to do this?  

I have a screen shot of the actual file after I opened it in excel.
MDD-Image.PNG
0
Comment
Question by:gracie1972
11 Comments
 
LVL 35

Accepted Solution

by:
PatHartman earned 500 total points
ID: 41759969
You can link to the table as is.  Create a query that selects the columns you want - they won't be named correctly but that doesn't matter.  Change the query to an append query.  Then, since the column names don't match, you will have to manually map each column.  So F1 will append to KeyYearRDD (I hope you are not actually using column names with special characters and embedded spaces in your SQL Server database).

Then add criteria that selects only rows where column F1 is numeric.  That will pick up only the rows with a valid year and ignore the others.
0
 

Author Comment

by:gracie1972
ID: 41760010
My next question is that the data is a common delimited file and there is also numbers with commas separated by commas, is there any way to get around this barrier?
0
 
LVL 35

Assisted Solution

by:PatHartman
PatHartman earned 500 total points
ID: 41760031
Numbers containing comas are text rather than numeric.  In the standard csv format, text fields are enclosed in double quotes.  So -
"RecID", "FirstName", "LastName", "Phone", "Fee", "PaidDT"
34567,"Pat","Hartman","2035511212",45.16, 8/17/2016

Another alternative is to use tabs as the delimiter rather than comas but that is not standard so you will have to create an import spec to import the file.
0
Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

 
LVL 45

Expert Comment

by:aikimark
ID: 41760419
Please post a representative sample data set
0
 
LVL 49

Expert Comment

by:Gustav Brock
ID: 41762069
There are no commas on your sample picture. Integers only.

However, if you have comma as the decimal separator, you can simply use CCur to convert:

    NetSales: CCur([F8])

/gustav
0
 
LVL 35

Assisted Solution

by:PatHartman
PatHartman earned 500 total points
ID: 41762567
You can't convert the commas after the fact since they end up causing additional columns when the file is imported so there are no commas actually in the data.  Clearly, the person who created the file didn't understand how csv works and that the commas would cause bogus fields when the file was imported by a program that assumed conforming format.

If you can't get the originator to produce a valid format csv using either of the two formats I suggested or by eliminating the embedded commas, you will have to import the file using the VBA file I/O method and parse the record yourself.

You could use the split function and then count the resulting items in the array.  If the count = the number of expected columns, the data did not include a comma and you can just take each item and place it directly in field.  If the item count exceeds the number of columns, then it depends on how many columns could contain a comma.  If multiple columns could contain a comma and the fields surrounding the bad data are numeric, I'm not sure how you will sort this out.
Is
1,234,888,
"1,234", 888
OR
1, "234,888"
?
0
 
LVL 45

Expert Comment

by:aikimark
ID: 41762666
@gracie1972

Where's the sample data file?
0
 
LVL 35

Expert Comment

by:PatHartman
ID: 41762689
@aikimark, Why do you need a sample data file?

@Gracie, Next time please start a new question so you can allocate points fairly.
0
 
LVL 45

Expert Comment

by:aikimark
ID: 41762797
Why do you need a sample data file?
@Pat,
There might be a solution that the other experts haven't offered.
0

Featured Post

Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

Question has a verified solution.

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

A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
This Micro Tutorial demonstrates how to create Excel charts: column, area, line, bar, and scatter charts. Formatting tips are provided as well.
This Micro Tutorial will demonstrate the scrolling table in Microsoft Excel using the INDEX function.

777 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