Hi Eric,
Is it true that placing the database on the other machine would normally be sufficient?
Yes, usually this is so. However, I have encountered problems before with missing references by
simply moving a .mdb file from one PC to another. I'm not familiar with sneakernet. What does
"transported via sneakernet" mean?
The first two references you listed:
Visual Basic for Applications
Microsoft Access 10.0 Object Library
are required for all Access databases, although the version number for the Access Object Library
will change with different versions of Access. You are not allowed to uncheck these references,
or to change their priority.
The third reference you listed, Microsoft DAO 3.6 Object Library, is for Microsoft Data Access
Objects ("DAO Code"). New Access 2000 and 2002 databases do not include a reference to this
library by default, and this has caused a lot of problems with older DAO code that was written in
Access 97 or earlier, when people import objects from an earlier version database into a new
Access 2000/2002 database. Microsoft finally listened to the screams of their customers, and
made DAO a default checked reference for new Access 2003 databases. I still use DAO exclusively
when I am accessing data stored in a .mdb file. I find DAO to be a lot more stable than the
newer ADO (ActiveX Data Objects) data Access method, which can be used to access data from a
variety of sources (.mdb files, SQL Server, Exchange, etc.). It also has a much smaller memory
footprint vs. ADO, since it is designed to access data from only Jet (.mdb) databases.
The fourth reference, OLE Automation, is also a default reference for new databases. You can
usually uncheck this reference and your code will still compile fine. To be honest, I'm not sure
when this reference is really required.
The last reference, Microsoft Visual Basic for Applications Extensibility 5.3, is needed only for
older DAO code. Again, you can usually uncheck this reference and your code will compile fine. If
you do hit a compile error after unchecking this reference, it's usually fairly easy to change
the code to reflect standards in use today.
I recommend unchecking reference one-at-a-time, close the references dialog, and then attempt to
compile the code (Debug > CompileDatabase name). If the code compiles okay without the reference,
then you don't need it. I always remove any unneeded references whenever I find them. Loading
unneeded references only increases the chances of someone hitting a MISSING reference error. It
also uses RAM memory, making less available to your system. As Allen's and Doug's papers both
mention, a MISSING reference can cause unrelated code to fail.
By the way, which queries, forms or reports do you see the # NAME and #ERROR errors on?
Total Hours: #NAME?
Hourly Billings: #NAME?
Total Expenses: #NAME?
Total Billing: #ERROR
Amount Due: #ERROR
Tom
_______________________________________
The 2003 machine is at home. I'll check tonight. I copied the database from the 2002 machine to a
CD and transported via sneakernet. Is it true that placing the database on the other machine
would normally be sufficient? The 2002 machine has the following references checked:
Visual Basic for Applications
Microsoft Access 10.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft Visual Basic for Applications Extensibility 5.3
By the way, much thanks for your help.
Eric
_______________________________________
Hi Eric,
Have you verified that you do not have any references marked as MISSING?
You didn't mention whether or not you had checked for missing references in your reply. Use the
links I provided earlier if you're not sure how to check for missing references.
Also, when you stated "It works with 2002 but not 2003", are you testing the same .mdb file? Or,
are you testing two different copies of the Time & Billing database, where one copy is on a PC
with Access 2002 installed and another copy is on a PC with Access 2003 installed? It could be
that some data, such as Billing Rate, is missing in the copy that you are testing with Access
2003. Just a wild guess....
Tom
_______________________________________
There were no questions about running code. The errors are as follows:
Total Hours: #NAME?
Hourly Billings: #NAME?
Total Expenses: #NAME?
Total Billing: #ERROR
Amount Due: #ERROR
It looks like a reference to a variable that doesn't exist, but I can't figure out what or why.
____________________________________________
Hi Eric,
Verify that you do not have any missing references. Also, when you first open the database in
Access 2003, make sure that you are providing the correct answers (if prompted) regarding running
code. I'm still using Access 2002, so I'm not sure exactly what the messages say.
Solving Problems with Library References (Allen Browne)
http://members.iinet.net.au/~allenbrowne/ser-38.html
and
Access Reference Problems (Doug Steele)
http://members.rogers.com/douglas.j.steele/AccessReferenceErrors.html
Tom
____________________________________________
I tried the Time and Billing template that comes with Access 2003 and I get errors on the total
fields when trying to generate an invoice. I also tried the template that you can download from
Microsoft's website. It works with 2002 but not 2003. Anyone how any ideas how to deal with this
problem?
Thanks,
Eric