Solved

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

Posted on 2006-11-01
3
369 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
3 Comments
 
LVL 9

Assisted Solution

by:mpmccarthy
mpmccarthy earned 250 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 250 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

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Pass Form Control to VBA Function 2 27
Language DLL error in Access 2010 2 12
Access checkbox 2 13
Filtered index 5 4
Most if not all databases provide tools to filter data; even simple mail-merge programs might offer basic filtering capabilities. This is so important that, although Access has many built-in features to help the user in this task, developers often n…
I originally created this report in Crystal Reports 2008 where there is an option to underlay sections. I initially came across the problem in Access Reports where I was unable to run my border lines down through the entire page as I was using the P…
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 use Dlookup and other domain aggregate functions and one method of specifying a string value within a string. Specify the first argument, which is the expression to be returned: Specify the second argument, which …

744 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

12 Experts available now in Live!

Get 1:1 Help Now