G
Guest
XP SP2/ MSO 2003 Pro
I have an Access database that reads info from Excel worksheets that may get
revised over time. The Excel worksheets are all kept in folders on a network
drive segregated by year. I have run the Access update routine both from my
local PC and from the network share with no appreciable improvement.
Since the content of the Excel Workbooks may change over time (even the
workbook name could change), they are assigned a unique 7-9 character control
number that forms the 1st 7-9 characters of the File name.
Within the Access database I have 3 tables. The first is the file list that
contains file name and date last modified, the second has some common data
that appears in all Excel workbooks (customer name, equipment type, etc.) and
the 3rd has data that only occurs in specific types of excel files
distinguished by the name of the 1st worksheet. All linked, of course, by the
assigned control number.
My current "update" routine is like this:
Set up file locations using FSO:
For each file in the Excel Directory (for each fil in FilDir)
Verifiy that it has a 7-9 charcter control number in proper format at
beginning of file name-> if not goto error report
Extract the control number and seek in file list table
if found check for matching last modified date
if matching dates go for next fil (I've got current data already)
if not matching dates "Edit" Access File list table, common data
table and, if appropriate, the specific data table
If I did not find that control number in the file list table "Addnew"
record to the 2 or 3 tables as appropriate
go get next fil in FilDIr
The system works fine except that it takes like 3 days shy of forever to
complete, and as of now I only have 478 Excel Workbooks and 5-10 are being
added almost daily. The last run took 18 minutes.
How do I speed this up?
The fields I need out of the Excel workbooks are all "named" so the read is
to the field name. Would it be quicker to read the specific cell (e.g.
datatbl![Customer Name].Value = .cells(1,2).Value as opposed to current
datatbl![Customer Name].Value = .Range("Customer").Value?
ANY suggestions would be truly appreciated!
TIA
BAC
I have an Access database that reads info from Excel worksheets that may get
revised over time. The Excel worksheets are all kept in folders on a network
drive segregated by year. I have run the Access update routine both from my
local PC and from the network share with no appreciable improvement.
Since the content of the Excel Workbooks may change over time (even the
workbook name could change), they are assigned a unique 7-9 character control
number that forms the 1st 7-9 characters of the File name.
Within the Access database I have 3 tables. The first is the file list that
contains file name and date last modified, the second has some common data
that appears in all Excel workbooks (customer name, equipment type, etc.) and
the 3rd has data that only occurs in specific types of excel files
distinguished by the name of the 1st worksheet. All linked, of course, by the
assigned control number.
My current "update" routine is like this:
Set up file locations using FSO:
For each file in the Excel Directory (for each fil in FilDir)
Verifiy that it has a 7-9 charcter control number in proper format at
beginning of file name-> if not goto error report
Extract the control number and seek in file list table
if found check for matching last modified date
if matching dates go for next fil (I've got current data already)
if not matching dates "Edit" Access File list table, common data
table and, if appropriate, the specific data table
If I did not find that control number in the file list table "Addnew"
record to the 2 or 3 tables as appropriate
go get next fil in FilDIr
The system works fine except that it takes like 3 days shy of forever to
complete, and as of now I only have 478 Excel Workbooks and 5-10 are being
added almost daily. The last run took 18 minutes.
How do I speed this up?
The fields I need out of the Excel workbooks are all "named" so the read is
to the field name. Would it be quicker to read the specific cell (e.g.
datatbl![Customer Name].Value = .cells(1,2).Value as opposed to current
datatbl![Customer Name].Value = .Range("Customer").Value?
ANY suggestions would be truly appreciated!
TIA
BAC