Solved

Data Import Script from Excel to Access

Posted on 2011-03-01
13
168 Views
Last Modified: 2012-05-11
Is there a way to build a script in access to import all the pages in a workbook, into separate tables in Access?  For instance, the pages in Excel would be Sales, Inventory, Returns, Demand Forecast.  Then import those pages into their respective tables, tblSales, tblInventory, tblReturns, tblDemand.

How do I do that without running 4 separate import processes?  In actuality, the above example is just a sample of what would have to be completed each week.  We actually have about 25 workbook pages going into Access.

Thank you!  :0)
0
Comment
Question by:pwdells
  • 5
  • 4
  • 4
13 Comments
 
LVL 119

Accepted Solution

by:
Rey Obrero earned 500 total points
Comment Utility
test this codes



Sub ImportAllSheets()
Dim objXL As Object
Dim sTable, sFile As String, xlPath As String, i As Integer
sFile = "Test.xls"
xlPath = "J:\"

Set objXL = CreateObject("Excel.Application")
    objXL.Workbooks.Open xlPath & sFile, , True
    With objXL
        For i = 1 To .workSheets.Count
            DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
             "tbl" & .workSheets(i).Name, xlPath & sFile, True, .workSheets(i).Name & "!"
        Next
    End With
    objXL.Quit
    Set objXL = Nothing

End Sub

Open in new window

0
 
LVL 77

Expert Comment

by:peter57r
Comment Utility
Can't see what the problem is with using multiple import commands, myself.
0
 
LVL 77

Expert Comment

by:peter57r
Comment Utility
And no disrespect to cap1 but the code he's posted is just 4 import commands wrapped up in other code.
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
i know, but if you have 20 woksheets now and 25 worksheets on the next , how are you going to automate this?

going back to your codes and adding or commenting the import line commands?
0
 

Author Comment

by:pwdells
Comment Utility
The end-users are blocked out of those functions for the application.  The function has to be executed using one step.
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
then, try the codes i posted.
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:pwdells
Comment Utility
Often there are functions in a process that may come easy to you or me, but not others.  Historically, serious mistakes have been made due to repetition and confusion.  If this automation process works, we may end up importing 50 tables.  This is the only way the client is able to replicate with its customer's sales database, which is locked down considerably.  The only way to import data is via .xlsx files or PDF.  No ODBC is permitted.
0
 
LVL 77

Expert Comment

by:peter57r
Comment Utility
I don't have any argument over your code cap.  It's what I would do.

I was commenting on the requirement...
"How do I do that without running 4 separate import processes?"

Even in a loop each import process is separate from each other import process.

It now appears that the real issue is about using macro actions to do the same thing.
0
 
LVL 77

Expert Comment

by:peter57r
Comment Utility
or about  NOT using macro actions to do the same thing.
0
 
LVL 119

Expert Comment

by:Rey Obrero
Comment Utility
i really don't like when rules are being changed in the middle of the game.
0
 

Author Comment

by:pwdells
Comment Utility
What do you mean by "rules are being changed in the middle of the game"???  My request is still the same and currently, I am attempting to implement it within my environment.    :*?
0
 

Author Comment

by:pwdells
Comment Utility
It worked!  Thank you sooooo much Cap!
0
 

Author Closing Comment

by:pwdells
Comment Utility
I made a few changes to the variables, but that is always to be expected.  Once I was able to get the script implemented in my environment, it worked without a hitch.  I am so very thankful to Cap for helping me with this task!
0

Featured Post

Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
This article is a continuation or rather an extension from Cascading Combos (http://www.experts-exchange.com/A_5949.html) and builds on examples developed in detail there. It should be understandable alone, but I recommend reading the previous artic…
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …
Graphs within dashboards are meant to be dynamic, representing data from a period of time that will change each time the dashboard is updated with new data. Rather than update each graph to point to a different set within a static set of data, t…

728 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now