# VWP.mdb Schema Analysis **Source:** VWP.mdb (938MB, last written 2026-04-24, Jet 3.x / Access 97 format) **Method:** Binary scan (Jet 3.x format cannot be opened by modern ACE/DAO drivers) --- ## Table Inventory by Domain ### Projects & Jobs | Table | Purpose | |---|---| | tblPROJECT | Builders / general contractors | | tblLOTINFO | Individual job sites / lots | | tblPLANS | House plans / blueprints | | tblOPTION | Plan options / upgrades | | tblELEVATION | Architectural elevations | | tblFINISH | Finish types | | tblCONINFO | Contractor / contact info | | tblProjDate | Project scheduling dates | | tblCHANGE | Change orders | | tblLotChange | Lot-level change orders | | tblSZONE | Schedule zones | | tblWORKTYPE | Work type codes | ### Work Orders & Estimating | Table | Purpose | |---|---| | tblORDERS | Work orders | | tblORDMatrl | Work order materials | | tblTAKE | Material takeoffs (quantity estimates) | | tblTOMATRL | Takeoff materials | | tblLOTMATRL | Lot materials | | tblOPTMATRL | Option materials | | tblPLANMAT | Plan bill of materials | | tblPOMATRL | Purchase order materials | | tblPOPTION | Plan options (billing side) | | tblPOptBill | Plan option billing rates | | tblPlanBill | Plan billing rates | | tblMEASURE | Measurement records | ### Inventory & Purchasing | Table | Purpose | |---|---| | tblINVPRICE / tblINVPRC | Material price list | | tblINVTRY | Inventory on hand | | tblSUPPLIER | Vendor / supplier master | | tblPOrder / tblPURCHORDR | Purchase orders | | tblPOrdMat | PO line items | | tblYardOrder / tblYardMemo | Yard material orders | | tblJCVENDOR | Job cost vendor assignments | ### Crew & Payroll | Table | Purpose | |---|---| | tblCREW | Employee master | | tblCREWLIST | Crew-to-job assignments | | tblCREWRATE | Pay rate history | | tblHRDAILY | Daily hours entries | | tblTIME | Time records | | tblHOURLIST | Hour list by period | | tblPAYHEADER | Payroll run header | | tblPAYCREW | Per-employee payroll detail | | tblPAYSHEET | Pay sheets | | tblPAYROLL | Payroll summary | | tblTOLABOR | Labor cost totals | | tblINCODES | Earnings / deduction codes | | tblCERTIFIED | **Certified payroll** (govt contracts) | | tblSC_Crew | Scaffold crew assignments | | tblScaffold | Scaffold tracking | | tblRCREW | ? (repair crew?) | ### Accounts Receivable | Table | Purpose | |---|---| | tblARMASTER | Customer master | | tblARINVOICE | AR invoices | | tblARTRANS | AR transactions / payments | | ARN_InvHistoryHeader | Invoice history | | tblCBOSalesCode | Sales / billing codes | | tblCBOWorkType | Work type codes for billing | | tblBPTYPE | Billing / payment type | | tblSWARTRANS | AR variant (Southwest?) | ### Accounts Payable | Table | Purpose | |---|---| | tblAPMASTER | Vendor master | | tblAPTRANS | AP transactions | | APH_JobDistDetail | Job cost distribution detail | | tblJCLIST | Job cost list | | tblJCTRANS | Job cost transactions | | tblJOBCOST | Job cost summary | | tblCHECKREC | Check reconciliation | ### Bank / Positive Pay | Table | Purpose | |---|---| | tblPosPayVWP | Positive pay — VWP bank | | tblPosPayCRD | Positive pay — second bank | | tblPosPaySWI | Positive pay — third bank | ### Repair / Service | Table | Purpose | |---|---| | tblREPAIR / tblREPAIRS | Repair work orders | | tblRepList | Repair list / punch list | ### System / Config | Table | Purpose | |---|---| | tblSECURITY / tblUsers | User accounts / permissions | | tblSYSInfo | System configuration | | tblGLAcct | General ledger chart of accounts | | tblTCINFO | ? (TrueCommerce? Tax?) | | tblPRGINFO | Program / config info | --- ## Key Findings ### This is a full construction ERP Not a simple order tracker. Covers the entire plastering operation end-to-end: - Estimating → Work Orders → Crew Scheduling → Materials → Payroll → Invoicing → Collections ### Certified Payroll (`tblCERTIFIED`) Indicates government / prevailing wage work. Certified payroll is a legally mandated report format (federal / state). Any replacement system must preserve this or have a certified payroll module. ### Positive Pay (3 bank accounts) Bank fraud-prevention integration — the app generates positive pay files for three different bank accounts. This is a hard integration dependency. ### Relationship names visible in binary Entries like `tblLOTINFOtblPROJECT`, `tblPAYCREWtblCREW` etc. are Access relationship / query names — confirms foreign key structure exists in the data model. ### Scratch / temp tables (can be ignored for migration) `tblLOTINFO000`, `tblLOTINFOCCCCCCCCCCC`, `tblPROJECT_ExportErrors`, `tblLOTINF3`, etc. — developer working copies, not production objects. --- ## Modernization Complexity: HIGH | Factor | Impact | |---|---| | ~130 real tables | Large but manageable data model | | 791 Crystal Reports | Biggest migration effort — must map each report | | Certified payroll | Legal compliance — cannot be dropped | | Positive pay (3 banks) | Hard file-format integration | | Full AR/AP/Payroll | Financial accuracy requirements | | Jet 3.x format | No modern driver can open natively — must be converted first | | No VFP source (pending) | Business logic must be reverse-engineered | --- ## Next Steps 1. **Find VFP source** (Mike searching server) — determines if logic can be read or must be RE'd 2. **Convert MDB to readable format** — need Access 97 / older ODBC path to extract full schema with field types 3. **Sample top tables** — row counts, date ranges, key field values 4. **Audit Crystal Reports** — identify which .rpt files are active vs dead weight 5. **Interview VWP** — what are the daily workflows? What's broken or painful beyond file size?