Solved

Automating Excel Text File Import from VBA

Posted on 2014-10-21
4
1,005 Views
Last Modified: 2014-10-22
I have been getting a bunch of data files in .csv format and using Excel to eliminate bad rows and scrub bad cells prior to import. Now I am getting them as .txt files and when I use Excel to open them I lose leading zeroes that I need.

I'm trying to adapt this code from an Excel macro into VBA in Access, but I'm using late binding and Access is blowing up on the code.

Any suggestions on how to "import" in Excel using VBA code would be appreciated.

Thanks.
0
Comment
Question by:Buck_Beasom
4 Comments
 
LVL 36

Accepted Solution

by:
PatHartman earned 250 total points
ID: 40394887
Why would you be using Excel at all at this point?  Why not import the text file directly into Access?  We can help you with converting the code to Access VBA but you'll need to post it and tell us where it fails and what error message you are getting.
0
 
LVL 40

Expert Comment

by:als315
ID: 40394896
In Access you can link csv file and create queries for correct import. You will need very small VBA part:
1. Rename (copy) file according to your linked file name (constant)
2. Run import queries
3.  Delete imported csv file
0
 
LVL 120

Assisted Solution

by:Rey Obrero (Capricorn1)
Rey Obrero (Capricorn1) earned 250 total points
ID: 40395054
have you tried using Import Specification?

you need to create import specification first.

 To create the Import Specification
  1) Click on external data> text file which then opens another window called "Get external data - Text file"
  2) Use radio button to select "Import the source data into a new table in the current database"
  3) specify the source of the file using the browse procedure then click OK
  4) Choose radio button to select delimited format and then click next
  5) this window allows you to choose delimiter and text qualifier and if first row contains names - click next
  6) This window allows you to type the name of the field in the Field Name column, choose data type, and if you want field indexed - also can choose to skip field - then click next
  7) This window allows you to add primary key or designate field as such - click next
  8) Click on ADVANCED button
  9. in the import specification window
  type the name of the field in the Field Name column
  (here you can use the field names of the destination table, specify data type,
  check the box Skip if you do not want to import the column)
  10 click save as, give the specification a name <-- this is the specification name that you will use in the command line below


DoCmd.TransferText acImportDelim, "ImportSpecificationName", "TableName", "C:\folderName\myText.csv" , True
0
 

Author Closing Comment

by:Buck_Beasom
ID: 40396792
The 2 suggestions combined to provide a good solution.

Thank you.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
control to hold a single value in a report. (access 2002) 7 39
Formatting Excel from Access with VBA... 5 57
Access syntax 1 33
MS Access Error Handling 6 27
You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…

685 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