Solved

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

Posted on 2006-11-01
3
371 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

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.

Question has a verified solution.

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

Introduction The Visual Basic for Applications (VBA) language is at the heart of every application that you write. It is your key to taking Access beyond the world of wizards into a world where anything is possible. This article introduces you to…
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
In Microsoft Access, learn the trick to repeating sub-report headings at the top of each page. The problem with sub-reports and headings: Add a dummy group to the sub report using the expression =1: Set the “Repeat Section” property of the dummy…
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 …

810 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