> ## Content Index
> Fetch the complete content index at: https://nolongerset.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Access Version Control Add-in Deep Dive with Adam Waller
- URL: https://nolongerset.com/aug-vcs-deep-dive/
- Published: 2026-01-12T15:30:09.000Z
- Updated: 2026-05-08T12:48:04.000Z
- Description: Behind the Scenes of the Add-in That Makes Git Workflows Possible for Access Databases (an Access User Group Talk with Adam Waller)
- Author: Mike Wolfe
- Tags: AUG Video Recap, #Import 2026-05-20 02:59

Ever struggled with multiple developers working on the same Access database without overwriting each other's changes?

In this comprehensive Access Pacific presentation, Adam Waller walks through his nine-year journey developing a robust version control system specifically designed for Microsoft Access. Starting from Brendan Kidwell's 2012 foundation scripts, Adam transformed a basic export utility into a sophisticated add-in that enables true source control for Access applications. The presentation covers the technical evolution of the system, from performance optimizations and file sanitization to ribbon integration and live merge capabilities.

Whether you're tired of emailing database files back and forth or ready to embrace professional development workflows with Git, this deep dive into Access version control will show you exactly how to modernize your Access development process.

## Project Evolution and Background

### Historical Foundation

- Project originated from Brendan Kidwell's 2012 VBA scripts for automating Access's save-as-text functions
- Adam forked the repository in 2015 and began major revamps
- Converted from standalone scripts to a full Access add-in
- Implemented extensive sanitization functions to remove noise from exported files

### Major Version Milestones

- **Version 2 (2020)**: Added user interface instead of debug window output, included installer
- **Version 3 (2020)**: Full build-from-source capability - can rebuild entire database from text files
- **Version 4 (2024)**: Major rewrite with performance improvements, ribbon integration, and merge functionality

### Community Contribution

- Open source project hosted on GitHub with multiple contributors
- Built using the add-in's own version control system
- Collaborative development through pull requests and community feedback

## Core Functionality Demo

### Export Process

- One-click export of all database objects to text-based source files
- Creates organized folder structure with separate directories for forms, reports, queries, modules
- Incremental exports scan for changes in approximately 1 second vs. full exports taking 8+ seconds
- Optional table data export in XML format for configuration tables

### Build from Source

- Complete database reconstruction from exported text files
- Can build new database file when no database is currently open
- Automatic backup creation before any build operation
- Preserves all object properties, relationships, and configurations

### File Organization

- Default `.src` folder created alongside database file
- Separate folders for different object types (tables, forms, queries, modules, reports)
- Table definitions separate from table data
- Version control index file (vcsindex.json) tracks file states for performance optimization

## Technical Highlights

### File Sanitization System

- **Problem**: Raw Access exports contain changing checksums, border colors, and metadata that create false differences
- **Solution**: Sophisticated sanitization engine removes noise while preserving essential information
- **VBA Code Cleaning**: Normalizes tabs/spaces and formatting for consistent output
- **XML Formatting**: XSD transformation creates properly indented, readable XML files
- **Result**: 95% reduction in false-positive changes during file comparisons

### Ribbon Integration with TwinBasic

- **Challenge**: Traditional add-ins require complex COM registration and version-specific compilation
- **Solution**: TwinBasic-based COM add-in providing native ribbon integration
- **Benefits**: Single DLL works across Access 2010 through current versions, both 32-bit and 64-bit
- **Architecture**: Lightweight wrapper passes commands to main VBA add-in for processing
- **Source Code**: Full TwinBasic project and ribbon XML available in GitHub repository

### Live Merge Capability

- **Innovation**: Update individual objects without rebuilding entire database
- **Process**: Compares source files to current database state and merges only changed objects
- **Conflict Resolution**: Built-in diff tool integration (WinMerge, VS Code) for handling conflicts
- **Performance**: Updates single objects in seconds rather than full database rebuilds
- **Use Case**: Critical for large databases with hundreds of objects and thousands of lines of code

### Performance Optimization Framework

- **Measurement**: High-precision timing using kernel-level APIs
- **Reporting**: Detailed performance logs showing time spent by category and operation
- **Bottleneck Identification**: Pinpoints slow operations for targeted optimization
- **Reusable Classes**: Standalone performance monitoring classes for any VBA project
- **Results**: Dramatic improvements in export/import speeds through targeted optimizations

## Advanced Features

### Build Order Management

- **Issue**: Forms and queries with VBA functions fail if modules aren't loaded first
- **Solution**: Configurable object processing order in `Mod_VCS_Utility.GetContainers` function
- **Customization**: Easily modified to prioritize modules before queries and forms
- **Impact**: Prevents Access IDE issues with auto-generated object properties

### Supported Objects

- All Access object types including tables, queries, forms, reports, macros
- Extended properties, hidden attributes, relationships
- Saved import/export specifications, navigation pane groups
- Application icons, print settings, embedded Office themes
- Command bars (in development)
- ADP project compatibility

### Git Integration Hooks

- GitHub Desktop compatibility for user-friendly Git operations
- Built-in Git command integration for repository status checks
- Automation hooks for extending workflow beyond basic export/import
- Foundation for future enhanced Git integration tools

## Development Best Practices

### Version Compatibility

- **Minimum**: Access 2010
- **Maximum**: Current Access 365 versions
- **Architecture**: Works with both 32-bit and 64-bit installations
- **File Format**: Compatible with .accdb, .mdb, and .adp formats

### Team Collaboration

- **Workflow**: Standard Git branching and merging strategies
- **Conflict Resolution**: Visual diff tools for resolving merge conflicts
- **Backup Safety**: Automatic backup creation before any destructive operations
- **Incremental Updates**: Fast change detection for efficient team synchronization

### Database Structure Considerations

- **Front-end Focus**: Primarily designed for front-end database objects
- **Linked Tables**: Exports table definitions but not back-end data by default
- **Configuration Data**: Option to include front-end table data for settings and configurations
- **Split Databases**: Works seamlessly with traditional Access front-end/back-end architecture

## Future Development and Microsoft Integration

### Microsoft's Plans

- Microsoft announced intentions to restore built-in source control functionality
- Timeline estimates suggest approximately one year for concrete implementation
- Potential API exposure for third-party tools to work more efficiently
- Official support for currently undocumented functions

### Community Tool Advantages

- **Responsiveness**: Community-driven development addresses real-world needs quickly
- **Customization**: Open source allows for specific workflow adaptations
- **Purpose-Built**: Developer-focused features not necessarily in Microsoft's scope
- **Proven Track Record**: Nine years of refinement and real-world testing

### Planned Enhancements

- User interface localization for international developer communities
- Enhanced Git integration with push/pull operations directly in Access
- Additional object type support as Access evolves
- Performance improvements based on community feedback

## Conclusion

Adam Waller's Access version control add-in represents nearly a decade of community-driven innovation addressing a critical gap in Access development tooling. The presentation showcased not just the current capabilities, but the thoughtful engineering approach that makes professional Access development workflows possible. With features like intelligent file sanitization, live merge capabilities, and comprehensive Git integration, the tool transforms Access from a single-developer platform into a truly collaborative development environment.

## Recording

The full recording is available on [YouTube](https://www.youtube.com/watch?v=Zz9tJfxgsVs):

## Join Live!

Want to get even more out of these presentations? Join the live Access User Group events! The next upcoming events are listed on the [AUG Event Calendar](https://accessusergroups.org/calendar/?ref=nolongerset.com).

Attending live gives you the opportunity to:

- Interact directly with presenters during Q&A sessions
- Network with other Access developers
- Share your own experiences and challenges
- Get immediate answers to your specific questions
- Participate in group discussions

With multiple user groups across different time zones (and languages!), you're sure to find a meeting time that works for your schedule.

### Acknowledgements

- *Base cover image generated by FLUX-schnell*
- *Initial draft generated by Claude-Sonnet-4*