ACC: "Object Invalid or No Longer Set" Error Using CurrentDb (167173)
The information in this article applies to:
- Microsoft Access for Windows 95 7.0
- Microsoft Access 97
This article was previously published under Q167173
Moderate: Requires basic macro, coding, and interoperability skills.
SYMPTOMS
When you refer to properties and methods belonging to objects created with
the CurrentDb function, you may receive the following error message:
Object invalid or no longer set.
This article assumes that you are familiar with Visual Basic for
Applications and with creating Microsoft Access applications using the
programming tools provided with Microsoft Access. For more information
about Visual Basic for Applications, please refer to your version of the
"Building Applications with Microsoft Access" manual.
CAUSE
When you set an object variable, such as a TableDef object, which requires
a reference to a database object, your code refers directly to the
CurrentDb function instead of referring to a database object variable that
you set with the CurrentDb function.
RESOLUTION
Create a database object variable in your code that refers to the CurrentDb
function, rather than using the CurrentDb function directly in Set
statements to create other objects, as in the following example:
- Start Microsoft Access and open the sample database Northwind.mdb.
- Create a module and type the following procedure:
Sub CurrentDbSuccess()
Dim db As Database
Dim td As TableDef
Set db = CurrentDb()
Set td = db.TableDefs("Customers")
MsgBox td.Name
End Sub
- To test this procedure, type the following line in the Debug window,
and then press ENTER:
Note that you receive the message "Customers" indicating the name of the
Customers table.
Modification Type: | Minor | Last Reviewed: | 10/11/2006 |
---|
Keywords: | kbprb kbProgramming KB167173 |
---|
|