This sort of thing usually happens when Access literally crashes and can not clean up properly. One of the clean up procedures is to delete the yourDatabaseName.ldb file which is created within the home folder for your database (for .mdb databases anyways). This file is used for sharing and locking in multiuser situations and is a buddy to the Jet Database Engine.
You may need to delete this file and restart your application but be sure to first open your DB while holding the keyboard SHIFT key then open a module and Compile. Then Compact and Repair. The Compile may point out a obvious error in code. Something not so obvious is a flaw within a SQL string which the Jet Database Engine just does not like and doesn't know how to deal with it especially in Locked situations (in my opinion). OH....and close the hidden instance of MSAccess.exe within Processes of the your Windows Task Manager.
This is from Microsoft KB Article regard the .LDB file:
For every database opened for shared use, an .ldb file is created to store computer and security names and to place extended byte range locks. The .ldb file always has the same name as the opened database (.mdb) and is located in the same folder as the opened database. For example, if you open (for shared use) the Northwind.mdb sample database in the C:\Program Files\Microsoft Office\Office\Samples folder, then a file called Northwind.ldb is automatically created in the same folder.
Whenever the last user closes a shared database, the .ldb file is deleted. The only exceptions are when a user does not have delete rights or when the database is marked as corrupted; then, the .ldb file is not deleted because it contains information about who was using the database at the time the database was marked as corrupted.
CYBERLYNX I have tried your suggestion before but will do again.
I also tried Creating a new database, importing all of the objects from the original and re-doing all of the references. Strangely the reference to Microsoft Activex 2.61 (ADO) was already set. This is strange because I haven't ever set this in any database and I don't think this is standard.I think the problem is either with the code which used to work or with the install and un-install of DbPix
I have heard a lot of good things about DbPix and will check out their support.
If you are referentially accessing the images i.e. not blobs try creating a very simple database to reference your images. Create the fields with a unique Identifier (that corresponds with your image file) and ImageFlag (True/False).
Create a query with those fields and an Expression of the full path and extension of the Image.
Then Create a Form with the these fields and a dbpix Image Controlan on current try:
Dim FullPath As String
FullPath = .[Image File]
If Dir([FullPath]) <> Empty Then
.[YourImageControl].Visible = True
.[ImageFlag] = -1
.[YourImageControl].Visible = False
.[ImageFlag] = 0
This should tick the records that have an image.
The clear and Visible false ensure that the images are not reiterated if no images are not available.