In this guide 6 sections
Start gentle and escalate slowly. Try built-in reports saved to a file first, then print to PDF or text and parse the output, then read the database files directly on a copy. If the vendor has gone and the format is proprietary, bring in a specialist who can decode it from sample records and the version number.
Look again at what the program already offers
Open every menu. Many old packages hide an export under Backup, Archive, Utilities or Year End, while report screens carry a Save As or Send To option that nobody clicked. The printer button simply sat closer.
Check the help file. Former staff often remember a trick nobody wrote down, such as an export button that only appears when you hold Shift while opening the report screen. Then look on the install disc.
- Report screens with a save to file option
- Backup and year-end menus
- Label and mail merge exports
- Print dialogs offering a file destination
- An ODBC driver listed in the install folder
Print to file, then read what comes out
Install a PDF or plain text printer driver, print each report across the widest date range the program allows, and split fixed column output with a short script. Text layers yield to pdftotext.
Image-only output is the last resort. OCR misreads zeros, eights and decimal points, so check every extracted figure against the printed totals before it goes anywhere near a new system.
A report shows only what its author chose, so internal codes, free-text notes and audit dates are often missing from the print-out. List the expected fields. Tick each one off against the sample.
Read the database files directly, on a copy
Never open the originals. A running program can lock files or quietly rewrite index headers while you are looking, which is why only the copy should ever be opened. Look in the program and data folders for extensions like .dbf, .mdb, .mdf, .fdb, .btr or .dat, then close the program and copy the whole folder.
Open the copy with a DBF viewer, Microsoft Access or SQL Server Express, then compare record counts and a handful of customers against what the screens show. Any mismatch usually means soft-deleted rows, an archive table or a second data folder hiding on another drive of the server that the old screens never mention.
Index and memo files travel separately. Copy every file that shares the base name, such as the .cdx, .fpt or .idx beside a .dbf, or the main table will not open.
- Stop the program and copy the full folder
- Note the file names and sizes
- Open only the copy
- Match record counts against the screen
- Keep the copy untouched as a master
When the vendor has gone and the format is proprietary
Start with the version number and any data dictionary in the manual, then match a record on screen with its raw bytes in a hex editor. Fixed-length records, readable text and repeating byte patterns give the structure away more often than you would expect, so a day with a hex editor is rarely wasted.
Check your licence terms before decoding anything, so ask a lawyer. This is not legal advice.
Meanwhile, keep the program alive. Run it inside a virtual machine with any USB licence dongle passed through, so the old Windows survives the day its hard disk fails.
Prove the extract is complete before retiring the program
Reconcile counts and totals for customers, open invoices, stock lines and ledger balances by period, and keep the comparison sheet where an auditor can find it. Gaps found now cost an afternoon. Gaps found after shutdown cost weeks.
Keep the old machine for a full financial year, because the first year-end close will raise questions that only the original screens can answer. Copy the data folder twice today. Note the program and Windows versions.
Data extraction route sheet
Four rows on one page, one for each route, cover saved reports, print to file, database files and decoding, in order of risk. Columns record what was tried, the file type produced, the record count, matched totals and a pass or fail box with the initials of whoever ran the test. The header holds the program version.
Open a blank worksheet to printQuestions owners ask
Is it safe to open the database files straight away?
No. Close the program, copy the whole data folder and open only the copy, because opening originals can lock files, alter timestamps or corrupt old indexes. Keep one untouched master.
How do I know the print-to-file data is complete?
Compare the number of rows and the report totals against what the old screens show, then spot-check ten known customers by hand against the raw print-out. Missing columns mean the report skipped fields.
What if the old program only runs on a dead computer?
Make a disk image of that machine, then run the image in a virtual machine with any licence dongle passed through to it. Test it before the old hardware fails. Keep the dongle safe.
When should I hire a specialist to decode the format?
When the files are not a common type like .dbf or .mdb and the reports leave out fields you need, such as audit dates or internal codes. A specialist can read the structure from sample records and rebuild the tables, then check them line by line against your reconciliation sheet before anything is retired.
