I have an old mdb file used by a old vb6 app running on a client's Windows XP laptop. It appears that a bug in the app has deleted a bunch of data in a table in the mdb file. Any way to roll back stuff in access or programmatically? I'm wondering if there's any information stored in the .ldb file or the .mdb file somewhere. The .mdb file is twice as big as another .mdb file with the same database structure that has more data.
The answer I'm afraid is no. You would have to revert to a backup.
The larger mdb file doesn't contain any extra data - if you run a compact and repair on this larger file it will reduce to the size of the smaller one.
Related
I have compact on close enabled but databases in my local GDrive folder do not complete the compact/repair operation (Office 365 64 bit).
The message is:
The compact and repair operation has been cancelled. You might not have adequate permissions to the folder that the database is located in. You need full permissions to the directory the database is located to compact and repair. Contact your system administrator for more information.
I notice that when this is displayed, Access has created a temporary database for the operation: Database.mdb.
When I look at the properties of this file, there is a security message:
This file came from another computer and could be blocked to protect this computer.
There is the usual "Unblock" checkbox.
I have this folder and subfolders added to the trust centre settings, but can't work out why this is happening. On my other PC, accessing the same files synchronised using the google drive app, I don't have the same problem.
The file is only ever opened by one person in one location at a time. It doesn't seem to be an ownership or machine-specific problem. If I create a new database in this folder, and enable compact on close, I get the same result.
I can copy the file(s) to another folder and compact/repair works fine. So, it's not a huge deal, but I'd like to know what's going on.
All help much appreciated.
I am suddenly receiving the below error message when attempting to compact and repair my access databases. Clicking ok on the error message results in original .accdb file being deleted and an .mdb being saved out. When entering the database I'm not in read only so I'm confused on what is happening.
Microsoft Access can't delete accdb file path after compacting it. The compacted database has been named new mdb file path
When I have a database corruption that is not easily solved, I generally create a new, blank database, then import everything from the faulty db.
It's reasonably fast, and you can actually see and take note of which object fails to import. You can then import the problematic object(s) from your last backup.
Also: do all that stuff on a LOCAL drive, not a network drive. Network drives often are the culprit.
I have a database in mdb format that will not open. When I try to open the file I get an error:
"The Microsoft Access database engine stopped the process because you and another user are attempting to change data at the same time"
I was the only user accessing the database and this occurred after a compact/repair.
Any ideas on how to get the db working again?
open the .ldb file with Notepad, its name is the same as your .mdb file and its located on the same folder, you'l see info about the person 'locking' this database.
TO bypass it all, just copy the .MDB and paste it in the same folder, the lockings are not copied with it, so you can continue working on the copy of the mdb regardless.
So we got an old program, from about 2006-2007.
that program uses a very large database.
the database is separated into 3 files:
(file extensions were renamed.)
1 of 1,061,758,976 bytes
1 of 1,062,225,920 bytes
and 1 of 423,604,224 bytes
(total about 2.4 GB).
what we want to do is get rid of that program and write our own, using the same database.
the only problem is that we don't know anything about those files. Rumors says that those files are access files - but we don't know how to confirm that.
also, the goal is to put this whole database into a mySQL database - which is another challenge.
Summarizing:
Determine database type
Converting to mySQL.
Any help will be much appreciated.
EDIT: File header:
Determine database type
The screenshot cited in the comments to the question indicate that the file is an Access .mdb database file. Access database files contain the following 15-character strings starting at byte offset 4:
Standard Jet DB ...for an .mdb file
Standard ACE DB ...for an .accdb file
Converting to mySQL.
The most straightforward way would be to install the MySQL ODBC driver, create an ODBC DSN to the target MySQL server, then open the .mdb file in Access and export the tables to MySQL via ODBC.
Exporting Access Data to MySQL
edit re: "You do not have the necessary permissions..." error
It appears that the database file was encrypted using the "User-Level Security" feature that Access offered for older .mdb files. If so, then to open the file you will need:
The associated Workgroup Security file (often called "Security.mdw", but may have a different name)
Login credentials (username and password) for a user that was created in that Workgroup file.
If you have both of those prerequisites then you should be able to open the file using something like the following from the command-line:
MSACCESS.EXE "C:\Users\Public\uls\db1.mdb" /WRKGRP "C:\Users\Public\uls\Security.mdw"
Search around to see if you can find the associated .mdw file (possibly renamed). Note that if if you find a file named System.mdw under %SystemRoot% or %APPDATA% it may not be the one you need. (Access creates a default Workgroup file for normal unprotected databases.) The file you are looking for should have a similar 15-character string starting at byte offset 4:
Jet System DB ...for an .mdw file (note that there are two trailing spaces to make 15 characters)
I have created an .mdb file programatically from another .mdb file using VBScript. It creates a table in the second .mdb file and populates data. Everything works fine and data is populated correctly. This is done using JET 4.0 driver.
The issue is that when I try to open the .mdb file using Access 2007, it tries to repair the file first. I do not know why that is happening. If I try to open it in Access 2003, it opens without the repair. I need to fix this. Has anyone run into this before or any ideas as to why it is happening?
Are you sure it's the mdb that needs to be repaired? Or is it the windows installer loading up and trying to repair MS Access?
MSAccess has some issues running multiple versions on one machine, look for "Windows Installer messages in Access" on this page. The repair process is controlled by various registry entries you may be able to create a process to reset these and prevent the repair process running.