ms-access-vcs
SKILL.md
Microsoft Access VCS Project Guide
Rules and gotchas for programmatically editing Access objects exported by VCS 4.x. Violations cause silent corruption or Error 2128 on import via LoadComponentFromText.
Reference Files
Read the relevant reference file before working on a specific object type:
| When working on... | Read this reference |
|---|---|
Form .bas layout or form controls |
references/forms.md |
Report .bas layout, sections, or sorting/grouping |
references/reports.md |
| Conditional formatting (forms or reports) | references/conditional-formatting.md |
Queries (.bas + .sql) |
references/queries.md |
| Tables, relationships, or ODBC connections | references/tables-and-relationships.md |
VBA modules (.bas) or code-behind (.cls) |
references/vba.md |
| Project config files (vcs-options, vcs-index, etc.) | references/project-config.md |
| Macros, shared images, or import/export specs | references/other-objects.md |
Project Overview
A VCS-exported Access project lives in <DatabaseName>.accdb.src/. The directory name must match the .accdb filename with .src appended.
File Pairing Rules
| Object Type | Files | Notes |
|---|---|---|
| Form | .bas + optional .cls + optional .json |
.bas = layout, .cls = VBA code-behind (omitted if no code), .json = print settings |
| Report | .bas + optional .cls + optional .json |
Same binary text format as forms, .cls = VBA code-behind (uncommon but valid), .json = print settings |
| Query | .bas + .sql |
.bas = metadata/designer state, .sql = SQL text. Always paired |
| Module | .bas |
Standard VBA module |
| Relationship | .json |
Foreign key definition, join type, referential integrity |
| Linked Table | .json |
Connection string, source table, attributes |
| Local Table | .xml |
XSD schema defining columns, data types, indexes. For tables stored inside the .accdb |
| Macro | .bas |
Access macro actions (not VBA). Simpler binary text format |
| Shared Image | .json + image file |
.json = metadata (name, extension, hash), paired with actual image file (.png, .jpg, etc.) |
| Import/Export Spec | .json |
Column definitions, delimiters, data types |
| Theme | .thmx |
Office theme (binary OOXML archive — do not edit) |
When deleting an object, delete ALL its associated files plus its entry in vcs-index.json.
Encoding
All JSON configuration files and .sql files use UTF-8 with BOM (byte order mark EF BB BF). The BOM must be preserved when editing. Binary text .bas files (forms, reports, macros) also use UTF-8 with BOM.
Safe Deletion Checklist
Before deleting any Access object:
- Search for references in all
.cls,.bas,.sqlfiles. Objects may be referenced by:- VBA code (
DoCmd.OpenForm,DoCmd.OpenReport,DoCmd.OutputTo) - Query SQL (
FROM tableName, subreportSourceObject) - Form RecordSource properties
- DLookup expressions
- VBA code (
- Check for name collisions. Objects with similar names may serve completely different purposes (e.g.,
rInvoice_EXTERNALSYSTEM= active invoice report vsEXTERNALSYSTEM_Accounts= dead integration table). - Delete all paired files (.bas + .sql, .bas + .cls + .json, etc.)
- Remove from config files: vcs-index.json, db-connection.json, hidden-attributes.json
- Renumber TabIndex values in any form/report section where a control was removed
- Test import in Access after changes
Common Pitfalls
- Commented-out code referencing kept objects: Leave commented VBA lines alone if they reference objects you're keeping.
- db-connection.json: Must contain only one connection entry matching the canonical ODBC connection string used by all linked tables and pass-through queries. Never introduce plaintext passwords or user-specific credentials.
Weekly Installs
6
Repository
paramountsoftwa…ai-skillGitHub Stars
2
First Seen
Feb 10, 2026
Security Audits
Installed on
gemini-cli6
opencode5
github-copilot5
codex5
kimi-cli5
amp5