Open a Microsoft Access database (.mdb, .accdb) without Access
Inherited an old .mdb from a business, a school or a program that is long gone, and have no Access? Drop it here to see every table with its row count, browse, sort and search the rows, and save any table, or all of them, as CSV for Excel, Google Sheets or LibreOffice.
The database is read on your device. It is never uploaded.
What it shows
- Every table you or the program created, with its row count. Access's own system tables (the ones named
MSys…) are left out. - The rows in a grid you can scroll on a phone, sort by any column (click its name) and search: the search box keeps the rows where any cell contains what you type. Each column shows its Access type: Short Text with its length, Long Text, Number (Byte, Integer, Long Integer, Single, Double, Decimal), AutoNumber, Currency, Date/Time, Yes/No, OLE Object, Attachment.
- CSV files. Save the open table, only the rows that match your search, or every table at once as a .zip with one CSV per table. They are UTF-8 with a byte-order mark, so Excel shows accents and non-Latin text correctly, and fields with commas, quotes or line breaks are quoted the standard (RFC 4180) way.
- Dates and money as Access shows them. A Date/Time is written
2024-03-15, or2024-03-15 14:30:00when it has a time, with no time-zone shift: Access stores the wall-clock value with no zone. Currency keeps its four stored decimals exactly (1995.5000becomes1995.50,0.1234stays), with no rounding through floating point. - Attachments and OLE objects. An Attachment cell lists its files by name; tap it to save each one. An OLE Object cell shows binary, N bytes; tap it to save the bytes. When a PDF, JPEG, PNG, GIF, Office or ZIP file sits inside Access's OLE wrapper, the page finds where it starts and offers that file on its own too.
- Saved queries, listed by name with their kind (select, update, append, crosstab…) and the tables they read. Also counted: linked tables, forms, reports, macros and VBA modules, so you know what else the file holds.
- The file's age: Access version (97, 2000–2003, 2007 or later) and, for Access 2000 and later, the date the database was created.
Encrypted and password-protected databases
The two kinds behave very differently, and the page tells you which one you have.
- Access 97–2003 (.mdb) with a database password. The password is only a check Access makes before it opens the file. The tables themselves are not encrypted, so they open here without it, and the page can show you the password that was set, so you can open the file in Access again.
- Access 2007 and later (.accdb) with "Encrypt with Password". Every page is encrypted with a key made from the password. This page does not decrypt, and says so in plain words: this database is encrypted; viewhack cannot open it. Open it in Access with the password, choose File › Info › Decrypt Database, save, and drop the copy here.
What it cannot do
- Edit. Nothing can be changed or saved back into the database. Your file is only read.
- Forms, reports, macros and VBA code. These are Access's own program parts, stored in a binary layout no open-source reader decodes. They are counted, not shown. The data they display is in the tables.
- The SQL of saved queries. Access does not store a query as SQL text but as pieces in its hidden
MSysQueriestable, and rebuilds the SQL when you open it. The page lists each query and the tables it reads, not its full SQL, and it does not run queries. - Linked tables. A linked table is only a pointer to a table in another .mdb, an Excel sheet or a SQL Server. Its rows are not in this file, so it is named and not opened. Open the file it points to instead.
- Multi-value lookup fields (an Access 2007 field that holds several choices in one cell) are left out of the table, with a note naming the column. The other columns still open.
- Access 97 files in non-Western code pages. Access 97 stores text in the PC's code page; this page reads it as Western European (Windows-1252), so Greek, Cyrillic or Asian text in a Jet 3 file comes out garbled. Access 2000 and later store Unicode and are not affected.
- Very large files. The whole database is read into the tab's memory. Access caps a database at 2 GB; files of a few hundred MB open on a desktop, but a phone may give up well before that.
- Microsoft Money files (.mny) use a variant of the same engine and are encrypted; they are not opened here.
Useful to know about Access files
- .mdb vs .accdb. .mdb is the format of Access 97 (the Jet 3 engine) and Access 2000–2003 (Jet 4). .accdb arrived with Access 2007 (the ACE engine) and adds attachments, multi-value fields and stronger encryption. The first 20 bytes tell them apart: every file starts
00 01 00 00thenStandard Jet DBorStandard ACE DB, and byte 20 is the version (0 = Access 97, 1 = 2000–2003, 2 and up = 2007 and later). viewhack reads those bytes, not the extension, so a renamed file still opens. - .mde and .accde are compiled copies in which the VBA source code has been removed. Their tables are ordinary tables and open here like any other.
- The .ldb or .laccdb file next to a database is only a lock file that says who has it open. It holds no data; you can ignore it.
- Other ways to open one. On Windows, Excel can import Access tables (Data › Get Data › From Database › From Microsoft Access Database), and Microsoft's free Access Database Engine lets other programs read them. On a Mac or Linux, the open-source
mdbtoolscommand-line programs export tables (mdb-export file.mdb Table1), and LibreOffice Base opens .mdb files. This page needs no install and works on a phone.
How it works
The file is read in this tab by mdb-reader 3.2.0, an open-source (MIT) JavaScript reader for the Jet and ACE file formats, served from this site. It walks the database's pages the way Access does: the system catalogue MSysObjects names the tables and queries, each table's definition page lists its columns, and the data pages hold the rows. Nothing is sent anywhere, and nothing is kept once you close the tab.