?
Solved

Daily Reports in Access - auto import data and prompt for date range

Posted on 2006-11-01
3
Medium Priority
?
376 Views
Last Modified: 2008-03-10
Every morning I need to download data from a website. The data comes in the form of an Excel spreadsheet and shows the previous day's orders.

I created an Excel macro that I run each time I open these "raw" Excel files. The macro formats some columns and does general clean-up.

Next, I import the spreadsheet into Access, but here's the part that is rather tedious (and i'm sure there's a better way to do it)

I wrote a report that is based on a QUERY, and the query is based on a specific TABLE.
The table is named "AM".
Since the query is based on the table named, specifically, "AM", I have to make sure that the Excel file is ALWAYS imported into a new table called "AM"

I take the previous day's "MA" table and rename it "MA_2006_10_14" for example, and then import the new Excel file into a new table called "AM"
I do this day after day.

Here's what I'd like to do instead:

1. Assuming the daily Excel file ALWAYS has the same file name, and is ALWAYS saved in the same directory, I'd like to have a button in Access that will automatically import whatever is in that Excel file and APPEND it to the current "AM" table. (no more renaming yesterday's table and then creating a new one over and over ... I'd like to keep appending each day's data to yesterday's table.)

2. Next, when I run the report, I want to be promted "Enter Start Date" and then "Enter End Date". Since the table will keep getting appended (i.e. keep growing) I can control what data shows on the report by specifying a date range. (The table might have 30 days of orders but I only want to see the orders placed on October 14th, for example)

Any help would be much appreciated!!
0
Comment
Question by:ecarbone
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 9

Assisted Solution

by:mpmccarthy
mpmccarthy earned 1000 total points
ID: 17853955
The TransferSpreadsheet command in the macro will do this for you or using code

Put this in the command button on click event:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel3, "AM", "Full path to file", True


For the run report event.  Go to the query that is the recordsource of the report and in the criteria line under the date field put

BETWEEN [Enter Start Date:] AND [Enter End Date:]
0
 
LVL 2

Accepted Solution

by:
Deb8stud earned 1000 total points
ID: 17853992
Make sure you have a table called 'Temp' with the exact same structure as AM and your spreadsheet except for the aditional field called 'Date'.  Use this code to append your records:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Temp", YourFileNameHere, True
DoCmd.RunSQL "INSERT INTO AM ( [DateFieldName] ) SELECT Temp.*, Date() as Expr1 FROM Temp;"

Then, use the following code in the Report_Open event:

Dim BegDate As Date
Dim EndDate As Date

BegDate = CDate(InputBox("Beginning Date:", "Report Parameters", Date))
EndDate = CDate(InputBox("Ending Date:", "Report Parameters", Date))

Me.FilterOn = True
Me.Filter = "Date Between #" & BegDate & "# and #" & EndDate & "#"


Let me know if this works.
0

Featured Post

Free Backup Tool for VMware and Hyper-V

Restore full virtual machine or individual guest files from 19 common file systems directly from the backup file. Schedule VM backups with PowerShell scripts. Set desired time, lean back and let the script to notify you via email upon completion.  

Question has a verified solution.

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

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…
Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
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…
In Microsoft Access, learn different ways of passing a string value within a string argument. Also learn what a “Type Mis-match” error is about.
Suggested Courses

764 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