main 387f8ad1deb2 cached
248 files
2.9 MB
777.3k tokens
12 symbols
1 requests
Download .txt
Showing preview only (3,109K chars total). Download the full file or copy to clipboard to get everything.
Repository: joyfullservice/msaccess-vcs-addin
Branch: main
Commit: 387f8ad1deb2
Files: 248
Total size: 2.9 MB

Directory structure:
gitextract_2zutbv_x/

├── .gitattributes
├── .gitattributes.default
├── .github/
│   └── workflows/
│       └── update-wiki.yml
├── .gitignore
├── .gitignore.default
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Hook/
│   └── README.txt
├── LICENSE.txt
├── README.md
├── Ribbon/
│   ├── MSAccessVCS_Ribbon.code-workspace
│   ├── MSAccessVCS_Ribbon.twinproj
│   ├── Ribbon.xml
│   └── Source/
│       ├── Resources/
│       │   └── MANIFEST/
│       │       └── #1.xml
│       ├── Settings
│       └── Sources/
│           ├── AddInRibbon.twin
│           ├── DllRegistration.twin
│           └── JsonConverter.twin
├── Testing/
│   ├── Linked.csv
│   ├── Testing.accdb.src/
│   │   ├── dbs-properties.json
│   │   ├── documents.json
│   │   ├── forms/
│   │   │   ├── Form1.bas
│   │   │   ├── frmColors.bas
│   │   │   ├── frmColors.cls
│   │   │   ├── frmExtendedChars.bas
│   │   │   ├── frmExtendedChars.cls
│   │   │   ├── frmMain.bas
│   │   │   ├── frmMain.cls
│   │   │   ├── frmTestMenu.bas
│   │   │   └── frmTestMenu.cls
│   │   ├── hidden-attributes.json
│   │   ├── images/
│   │   │   ├── 1370126936_button_ok.json
│   │   │   ├── Colors.json
│   │   │   ├── button_error.json
│   │   │   └── button_ok.json
│   │   ├── imexspecs/
│   │   │   ├── Linked Link Specification.json
│   │   │   └── Test 2.json
│   │   ├── macros/
│   │   │   └── AutoExec.bas
│   │   ├── menus/
│   │   │   ├── Demo Popup.json
│   │   │   └── Special %5C%5C..%2F%2F Popup.json
│   │   ├── modules/
│   │   │   ├── Module1.bas
│   │   │   ├── basExtendedChars.bas
│   │   │   ├── basUtility.bas
│   │   │   ├── clsPerson.cls
│   │   │   ├── clsPopupMenu.cls
│   │   │   └── clsPublic.cls
│   │   ├── nav-pane-groups.json
│   │   ├── proj-properties.json
│   │   ├── project.json
│   │   ├── queries/
│   │   │   ├── qryFormControl.bas
│   │   │   ├── qryFormControl.sql
│   │   │   ├── qryNavigationPaneGroups.bas
│   │   │   ├── qryNavigationPaneGroups.sql
│   │   │   ├── qryTestSqlFormat.bas
│   │   │   ├── qryTestSqlFormat.sql
│   │   │   ├── qryVBAFunction.bas
│   │   │   └── qryVBAFunction.sql
│   │   ├── relations/
│   │   │   └── tblInternaltblSaveXML.json
│   │   ├── reports/
│   │   │   ├── rptDefaultPrinter.bas
│   │   │   ├── rptDefaultPrinter.cls
│   │   │   ├── rptNavigationPaneGroups.bas
│   │   │   ├── rptNavigationPaneGroups.cls
│   │   │   ├── rptNavigationPaneGroups.json
│   │   │   ├── rptNonDefaultPaperSize.bas
│   │   │   ├── rptNonDefaultPaperSize.cls
│   │   │   └── rptNonDefaultPaperSize.json
│   │   ├── savedspecs/
│   │   │   └── Export-MSysIMEXColumns.json
│   │   ├── tables/
│   │   │   ├── tblInternal.txt
│   │   │   ├── tblLinkedAccess.xml
│   │   │   └── tblSaveXML.xml
│   │   ├── tbldefs/
│   │   │   ├── ImageFile.sql
│   │   │   ├── ImageFile.xml
│   │   │   ├── USysApplicationLog.sql
│   │   │   ├── USysApplicationLog.xml
│   │   │   ├── tblAttachment.sql
│   │   │   ├── tblAttachment.xml
│   │   │   ├── tblColors.json
│   │   │   ├── tblHidden.sql
│   │   │   ├── tblHidden.xml
│   │   │   ├── tblInternal.sql
│   │   │   ├── tblInternal.xml
│   │   │   ├── tblLinkedAccess.json
│   │   │   ├── tblLinkedCSV.json
│   │   │   ├── tblLinkedExcel.json
│   │   │   ├── tblSaveXML.sql
│   │   │   └── tblSaveXML.xml
│   │   ├── tdmacros/
│   │   │   └── tblSaveXML.xml
│   │   ├── themes/
│   │   │   ├── Angles.thmx
│   │   │   ├── Executive.thmx
│   │   │   └── Office Theme.thmx
│   │   ├── vbe-project.json
│   │   ├── vbe-references.json
│   │   ├── vbeforms/
│   │   │   ├── frmForm20.frm
│   │   │   ├── frmForm20.frx
│   │   │   └── frmForm20.json
│   │   └── vcs-options.json
│   └── Workbook.xlsx
├── Translation/
│   ├── MSAccessVCS.pot
│   ├── en_TEST.po
│   └── pt_BR.po
├── Version Control.accda.src/
│   ├── dbs-properties.json
│   ├── documents.json
│   ├── forms/
│   │   ├── frmVCSConflict.bas
│   │   ├── frmVCSConflict.cls
│   │   ├── frmVCSConflictList.bas
│   │   ├── frmVCSConflictList.cls
│   │   ├── frmVCSDatabase.bas
│   │   ├── frmVCSDatabase.cls
│   │   ├── frmVCSInstall.bas
│   │   ├── frmVCSInstall.cls
│   │   ├── frmVCSMain.bas
│   │   ├── frmVCSMain.cls
│   │   ├── frmVCSOptions.bas
│   │   ├── frmVCSOptions.cls
│   │   ├── frmVCSSplitFiles.bas
│   │   ├── frmVCSSplitFiles.cls
│   │   ├── frmVCSTableData.bas
│   │   └── frmVCSTableData.cls
│   ├── macros/
│   │   └── autoexec.bas
│   ├── modules/
│   │   ├── IDbComponent.cls
│   │   ├── IDbSchema.cls
│   │   ├── clsAdpFunction.cls
│   │   ├── clsAdpProcedure.cls
│   │   ├── clsAdpServerView.cls
│   │   ├── clsAdpTable.cls
│   │   ├── clsAdpTrigger.cls
│   │   ├── clsConcat.cls
│   │   ├── clsConflictItem.cls
│   │   ├── clsConflicts.cls
│   │   ├── clsConnectionODBC.cls
│   │   ├── clsDbCommandBar.cls
│   │   ├── clsDbConnection.cls
│   │   ├── clsDbDocument.cls
│   │   ├── clsDbForm.cls
│   │   ├── clsDbHiddenAttribute.cls
│   │   ├── clsDbImexSpec.cls
│   │   ├── clsDbMacro.cls
│   │   ├── clsDbModule.cls
│   │   ├── clsDbNavPaneGroup.cls
│   │   ├── clsDbProjProperty.cls
│   │   ├── clsDbProject.cls
│   │   ├── clsDbProperty.cls
│   │   ├── clsDbQuery.cls
│   │   ├── clsDbRelation.cls
│   │   ├── clsDbReport.cls
│   │   ├── clsDbSavedSpec.cls
│   │   ├── clsDbSharedImage.cls
│   │   ├── clsDbTableData.cls
│   │   ├── clsDbTableDataMacro.cls
│   │   ├── clsDbTableDef.cls
│   │   ├── clsDbTheme.cls
│   │   ├── clsDbVbeForm.cls
│   │   ├── clsDbVbeProject.cls
│   │   ├── clsDbVbeReference.cls
│   │   ├── clsDevMode.cls
│   │   ├── clsDotEnv.cls
│   │   ├── clsGitIntegration.cls
│   │   ├── clsJob.cls
│   │   ├── clsLblProg.cls
│   │   ├── clsLog.cls
│   │   ├── clsOptions.cls
│   │   ├── clsPerformance.cls
│   │   ├── clsPerformanceItem.cls
│   │   ├── clsSchemaMsSql.cls
│   │   ├── clsSchemaMySql.cls
│   │   ├── clsSourceParser.cls
│   │   ├── clsSqlFormatter.cls
│   │   ├── clsTranslation.cls
│   │   ├── clsVCSIndex.cls
│   │   ├── clsVCSIndexItem.cls
│   │   ├── clsVersionControl.cls
│   │   ├── clsViewDiff.cls
│   │   ├── clsWorker.cls
│   │   ├── modAPI.bas
│   │   ├── modAddInMenu.bas
│   │   ├── modComAddIn.bas
│   │   ├── modConnect.bas
│   │   ├── modConstants.bas
│   │   ├── modDatabase.bas
│   │   ├── modEncoding.bas
│   │   ├── modErrorHandling.bas
│   │   ├── modExportOnSaveHook.bas
│   │   ├── modFileAccess.bas
│   │   ├── modFileWinAPI.bas
│   │   ├── modFunctions.bas
│   │   ├── modHash.bas
│   │   ├── modImportExport.bas
│   │   ├── modInstall.bas
│   │   ├── modJsonConverter.bas
│   │   ├── modLibReference.bas
│   │   ├── modObjects.bas
│   │   ├── modOrphaned.bas
│   │   ├── modRepair.bas
│   │   ├── modResource.bas
│   │   ├── modRibbonStrings.bas
│   │   ├── modSqlFunctions.bas
│   │   ├── modStaging.bas
│   │   ├── modTimer.bas
│   │   ├── modUIAutomation.bas
│   │   ├── modUnitTesting.bas
│   │   ├── modUtcConverter.bas
│   │   ├── modVCSUtility.bas
│   │   ├── modVbeForm.bas
│   │   ├── modWizHook.bas
│   │   └── modZip.bas
│   ├── nav-pane-groups.json
│   ├── project.json
│   ├── queries/
│   │   ├── qryMsSqlServerObjects.bas
│   │   ├── qryMsSqlServerObjects.sql
│   │   ├── qryMySqlServerObjects.bas
│   │   ├── qryMySqlServerObjects.sql
│   │   ├── qryNavPaneGroups.bas
│   │   ├── qryNavPaneGroups.sql
│   │   ├── qryStrings.bas
│   │   ├── qryStrings.sql
│   │   ├── qryTranslatedStrings.bas
│   │   └── qryTranslatedStrings.sql
│   ├── tbldefs/
│   │   ├── tblConflicts.sql
│   │   ├── tblConflicts.xml
│   │   ├── tblLanguages.sql
│   │   ├── tblLanguages.xml
│   │   ├── tblResources.sql
│   │   ├── tblResources.xml
│   │   ├── tblStrings.sql
│   │   ├── tblStrings.xml
│   │   ├── tblTableData.sql
│   │   ├── tblTableData.xml
│   │   ├── tblTranslation.sql
│   │   └── tblTranslation.xml
│   ├── themes/
│   │   └── Office Theme.thmx
│   ├── vbe-project.json
│   ├── vbe-references.json
│   └── vcs-options.json
└── Wiki/
    ├── Documentation.md
    ├── Editing-and-Contributing.md
    ├── Export-Import-File-Types.md
    ├── FAQs.md
    ├── Home.md
    ├── Installation.md
    ├── Merge-Build.md
    ├── Options.md
    ├── Project-Scope.md
    ├── Quick-Start.md
    ├── Security-Considerations.md
    ├── Split-Files.md
    ├── Supported-Objects.md
    ├── Terminology-and-Style-Guide.md
    └── Translation.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Ensure that source files use CRLF for newlines, in case they are downloaded
# in a compressed archive directly from GitHub. (Otherwise class modules may
# not be imported correctly. See issue #150 for more details.)
###############################################################################
# Most source files use this extension
*.bas text eol=crlf
# Class modules
*.cls text eol=crlf
# Some object definitions
*.xml text eol=crlf
# SQL output
*.sql text eol=crlf
# Forms 2.0 form definitions (rarely used)
*.frm text eol=crlf
# Common source file
*.json text eol=crlf

###############################################################################
# Clarify that the source language is VBA (Auto-detection not always accurate)
# https://github.com/github/linguist/blob/master/docs/overrides.md
###############################################################################
*.bas linguist-language=VBA
*.cls linguist-language=VBA
*.twin linguist-language=VBA

# Git files
*.gitattributes text
*.gitattributes linguist-language=gitattributes

# Ignore files (like .npmignore or .gitignore)
*.*ignore       text
*.*ignore       export-ignore


================================================
FILE: .gitattributes.default
================================================
# gitattributes template for Microsoft Access database source files
# Source: https://github.com/joyfullservice/msaccess-vcs-integration
#

###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto

###############################################################################
# Ensure that source files use CRLF for newlines, in case they are downloaded
# in a compressed archive directly from GitHub. (Otherwise class modules may
# not be imported correctly. See issue #150 for more details.)
###############################################################################
# Most source files use this extension
*.bas text eol=crlf
# Class modules
*.cls text eol=crlf
# Some object definitions
*.xml text eol=crlf
# SQL output
*.sql text eol=crlf
# Forms 2.0 form definitions (rarely used)
*.frm text eol=crlf
# Common source file
*.json text eol=crlf

###############################################################################
# Clarify that the source language is VBA (Auto-detection not always accurate)
# https://github.com/github/linguist/blob/master/docs/overrides.md
###############################################################################
*.bas linguist-language=VBA
*.cls linguist-language=VBA
*.twin linguist-language=VBA

# Git files
*.gitattributes text
*.gitattributes linguist-language=gitattributes

# Ignore files (like .npmignore or .gitignore)
*.*ignore       text
*.*ignore       export-ignore


================================================
FILE: .github/workflows/update-wiki.yml
================================================
name: Update Wiki

on:
  push:
    branches:
      - main
    paths:
      # Limit to changes to the wiki folder
      - 'Wiki/**'
  workflow_dispatch:

jobs:
  update-wiki:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repo
        uses: actions/checkout@v3

      - name: Set up git user
        run: |
          git config --global user.name "github-actions"
          git config --global user.email "github-actions@joyfullservice.com"

      - name: Clone the wiki repo
        run: |
          git clone "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.wiki.git" wiki-tmp
          mkdir -p wiki
          cp -r wiki-tmp/.git wiki/
    
      - name: Sync wiki folder
        run: |
          rsync -av --delete --exclude='.git' Wiki/ wiki/

      - name: Commit and push changes
        run: |
          cd wiki
          if git status --porcelain | grep .; then
            git add .
            git commit -m "Update wiki from main/Wiki"
            git push
          else
            echo "No changes to commit"
          fi


================================================
FILE: .gitignore
================================================
# Version Control Add-in Binaries
# (This should be built from source and not committed to version control)
*.mdb
*.accda
*.accdb
*.zip

# Database lock files
*.laccdb

# Comment out the following line if you wish to include the log files in git.
*.log

# The local VCS index file is paired with the database and should not
# be comitted to version control.
vcs-index.json

# Ignore any dotenv files (used for external database connections)
*.env

# TwinBasic ribbon project packages
Ribbon/Source/Packages


================================================
FILE: .gitignore.default
================================================
# gitattributes template for Microsoft Access database source files
# Website: https://github.com/joyfullservice/msaccess-vcs-addin
#

# Ignore Microsoft Access database binary files (Build these from source)
*.accda
*.accdb
*.mdb

# Ignore database lock files
*.laccdb
*.ldb

# The local VCS index file is paired with the binary database file 
# and should not be comitted to version control.
vcs-index.json

# Ignore any dotenv files (used for external database connections)
*.env

# Ignore log files generated by the VCS Add-in
# Comment out the following line if you wish to include log files in git.
*.log


================================================
FILE: CHANGELOG.md
================================================
Change log
==========
Ongoing Development
-------------------
joyfullservice:

As this project continues to move forward, many changes and updates are being made but not specifically documented in this change log. For details on updates since 2015, please review the commit messages in this repository.

(If you use this project and would find more detailed change logs to be helpful, please let me know, and I will take that into consideration.)

Version 1.1.0 - 15 May 2015
----------------------------
joyfullservice:
* Performed some significant refactoring to use the system as a reference library rather than a collection of modules that need to be added to each project.
* Added support for exporting VBE objects directly, allowing drag-and-drop within projects in the IDE.
* Standardized module names (special prefix no longer needed)
* Source folder name changed to be specific to the current database (avoids unexpected results when working with two databases in the same folder.)
* Source folders only created when they will contain content
* General code cleanup and organization
* Improved debug output in debug mode
* Converted module constants to input parameters for debug mode and tables to save data
* Updated sample database

Version 1.0.0 - 11 Mar 2015
----------------------------
jwbrookes:
* Added support for Table Data Macros
* Added support for Linked Tables (supports relative paths for linked files)
* Added support for Print Variables in Reports (Page size and orientation) 
* Added support for Relation for all types of table
* LoadVCS warnings removed when no object delete is required
* Removed elements from Report export that change constantly but don't affect import
* Fixed query import bug (complex queries being rearranged on import)
* Fixed missing constraints in table export

prmills:
* Added support for bit fields in table Import/Export
* Added support for References without GUIDs
* Export all table data with `INCLUDE_TABLES = "*"`

Version 0.12.0 - 28 Jan 2015
----------------------------
jwbrookes:
* Refactored AppCodeImportExport into several modules
* Added VCS_Loader, a module to import multiple vba modules into a database 


Version 0.11.1 - 14 Jan 2015
---------------------------
jwbrookes:
* Fixed bug in ExportTableDef function
* Removed redundant DeleteFile function (had been left commented out in the module)


Version 0.11 - 01 May 2014
-------------------------
matonb:
* Removed DeleteFile function and replaced calls to Kill with FileSystemObject.DeleteFile


Version 0.10 - 09 Mar 2014
-------------------------
matonb:
* Added DoEvents in loops to avoid "Unresponsive" state.


Version 0.9 - 15 Feb 2014
-------------------------
matonb:
*  Aggressive Sanitise, moved BaseInfo from "Block" regex to Line level.
*  Changed line level skipping to include lines with deeper indendation the follow.
  This catches split lines mostly found in BaseInfo exports.


Version 0.8 - 14 Feb 2014
-------------------------
matonb:
*  Aggressive Sanitise now excludes "BaseInfo" lines.
  These lines were seen to be randomly switching between being empty,
  not present or containing SQL on an arbitary basis.


Version 0.7 - 06 Jul 2013
-------------------------
matonb:
*  Replaced TempFile function.
*  Temporary file names now generated via external MS libraries.
*  Functions using TempFile updated to only call TempFile function once.
   *  Temporary file path and name stored in tmepFileName variable.
   *  Temporary files deleted when done.
*  Changed db declaration in ImportProject to DAO.database.


Version 0.6 - 06 Jul 2013
-------------------------

matonb:

*  AppcodeImportExport excluded from ExportAllSource
*  Added ImportProject sub-routine,  
   Deletes all forms, macros, modules and queries before calling ImportAllSource.  
   By clearing out the existing objects, you know that your database only contains  
   code from your version control database.  
   Excludes *AppCodeImportExport*

Version 0.5 - 29 May 2013
--------------------------

matonb:

*  All "exclusion" patterns are now matched by regex.
*  Added StripPublishOption constant.  
   If set to _True_ the following lines are also excluded from the export files
  * dbByte "PublishToWeb" ="1"
  * PublishOption =1
*  Added DeleteFile(FileName) function  
   The function tries to delete _FileName_ three (3) times before giving up.  
   A delay of 100ms is introduced between delete attempts should the first fail.

Version 0.4 - 19 Apr 2013
--------------------------

matonb:

*  Added dbLongBinary "DOL" to aggressive sanitize, these statements were
   appearing in queries and being flagged by git as modified in files that
   hadn't been touched by developers.

Version 0.3.2 - 8 Apr 2013
--------------------------

matonb:
* 0.3.1 Patched - Serious Problem:  SanitizeTextFiles If logic removed all
        lines containing "Begin".
* 0.3.2 Replaced if block for skipping code sections in SanitizeTextFiles with
        regular expression.

Version 0.3 - 6 Apr 2013
------------------------

bkidwell:
* Sanitize query exports.
* Fixed SERIOUS TYPO in UCS2-to-UTF-8 conversion (wrong threshold for 2 byte versus 3 byte symbol in output stream).
* AggressiveSanitize default True.

matonb:
* Added AggressiveSanitize constant, it's a number to allow for different levels in the future. ~~Default False.~~
* Added Skipping for GUID & Namemap in aggressive sanitize mode.
* ~~If AggressiveSanitize is on, also sanitize query exports.~~
* Append Number of objects imported/exported to information lines in immediate window.
* Updated readme (removed references to terminal window).
* Close all open forms and reports when importing and exporting because you can't import an open form or report.

Version 0.2 - 4 Apr 2013
------------------------

matonb:
* Added dbLongBinary "DOL" to SkipList in SanitizeTextFiles.
* Added Source directory check to ImportAllSource, pops up a message box if missing.
* Only create source directories if there is something to export.

bkidwell:
* Removed external executable for converting UCS-2-little-endian to and from UTF-8; replaced with VB6 methods.
* Added demo database to the repository.
* Removed the need for a special "export_[name]" query to export and import a lookup table.
* Added check to determine if Queries, Forms, etc. are exported from THIS database (depending on which version of Access created it) uses UCS-2-little-endian, or a legacy 8-bit Windows character set. Skip converting to/from UTF-8 if not using UCS-2, because the point of the conversion was to avoid writing 0x00 bytes in the text files and confuse diff/merge tools.

Version 0.1 - 22 Oct 2012
-------------------------

Initial release


================================================
FILE: CONTRIBUTING.md
================================================
Found a Problem? Have an Idea?
=============
The easiest way to contribute is to create a detailed [Issue](https://github.com/joyfullservice/msaccess-vcs-integration/issues). Be sure to include details about the version of OS, Access, and VCS add-in. If you can, provide a [Minimal Reproducible Example](https://stackoverflow.com/help/minimal-reproducible-example) of the problem.

Also be sure to check out the [Project Wiki](https://github.com/joyfullservice/msaccess-vcs-integration/wiki) which contains detailed documentation and other helpful tips for using this add-in.


Development Version
---------
If you want the very latest updates since the last published release, you will need to build it from source. Here is how to go from GitHub to git, to Access:

* Make sure you have a fairly recent version of the add-in installed. If not:
  * Download the latest release.
  * Install the add-in. (Just open *Version Control.accda*.)
* Clone this repository.
* Pull your clone down to your local machine.
* Choose a branch in git. (Typically `dev`)
* Use the add-in to *Build From Source*, selecting the cloned `Version Control.accda.src` folder.
* Run the newly compiled *Version Control.accda* file to install the development version.

Making your first Pull Request (PR)
---------
A *Pull Request* is how you can propose that your code changes be included in the main project. (This project is the work of many people who have donated their efforts to make it better for everyone.) If you followed the steps to get to the Development Version then you can follow these steps to go back from Access to git, back up to GitHub:
* *Optional: For larger changes, you should consider making a branch that describes the changes you are proposing.*
* Open the development copy of *Version Control.accda* from the cloned GitHub project.
* Perform testing on your development version.
* Make updates to the database project. (This is where the magic happens)
* When you are ready to make a commit run the **Deploy** procedure by typing `Deploy` into the VBA immediate window and press **Enter**. This will:
   * Increment the version number.
   * Export the project to source.
   * Install the version you have open. 
* Close Access.
* Open an Access project and ensure that the version installed matches the new version you just deployed.
* Perform testing to confirm that your new version works as expected. 
* Make a git **commit*** and briefly describe your changes in the commit notes. (You can add more verbose details in your pull request.) 
  * _*When creating the commit, please select only the files that reflect the actual changes you are proposing. It is usually not necessary to include auto-generated files that don't include substantive or intended changes._
* **Push** your branch up to your cloned repository.
* Make a **pull request** to the upstream project! Be sure to clearly describe what you did and why in the pull request. This will allow reviewers to better understand why your PR should be merged.
* Pull requests should target the `dev` branch, where most active development takes place. `Master` branch PRs should be mainly limited to Wiki changes. Critical bug fixes can be cherry-picked over to the `master` branch if needed.
* *Tip: If you have many different types of changes to propose, please use different pull requests for each of them. That will be easier to review and implement them individually.*

Thank you again for your support for the Microsoft Access development community!!


================================================
FILE: Hook/README.txt
================================================
The source code for the hook library is licensed under LGPL-2.1, and can be found in the following repository:

https://github.com/bclothier/AccessAppHook

================================================
FILE: LICENSE.txt
================================================
Copyright © 2012 Brendan Kidwell et al

Use of msaccess-vcs-integration and documentation are subject to the following
BSD-style license:

Permission to use, copy, modify, and/or distribute this software for any purpose
with or without fee is hereby granted, provided that the above copyright notice
and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
THIS SOFTWARE.


================================================
FILE: README.md
================================================
Version Control Add-in (msaccess-vcs-addin)
======================
*for Microsoft Access Database Development*
----------
Supports Microsoft Access 2010, 2013, 2016, 2019, and 365

About
-----

Easily export your Microsoft Access Database objects for use with a version control system like **GitHub** or **GitLab**. (Allows you to track code changes over time, and even collaborate with other developers on the same project.)

This project functions as a **Microsoft Access add-in**, allowing you to use a custom ribbon toolbar to export the objects and source code from the currently open Microsoft Access Database.

![Export-All](img/gui-demo.gif)

Development Focus
-----------------
This project was originally developed to manage the in-house development of numerous Microsoft Access database applications and integrations, some of which are very complex with hundreds of components. The development focus of this particular add-in is primarily in the following areas:
* **Intuitive user interface** for managing code exports and related options, instead of having to set all these options in code or remember commands to run in the immediate window.
* **Ribbon Toolbar** with 64-bit support! Thanks to some fantastic work by Wayne Phillips on the [twinBASIC](https://twinbasic.com/) project, we have a practical *and easy* way to implement a user-friendly ribbon through a light-weight COM Add-in wrapper that passes commands back to the Access add-in.
* **Optimal performance**, even with very complex databases. This is largely achieved through the indexing of database components to export only items that have changed since the last export. Most databases can be exported in a few seconds or less.
* **Extensive support** for different types of database components beyond the standard database objects. See [Supported Objects](https://github.com/joyfullservice/msaccess-vcs-addin/wiki/Supported-Objects) for more details on what can be exported from a database.
* **Build From Source** - Using this add-in you can actually build a database entirely from exported source files. This allows collaborative development where changes can be managed at the source code level. See this [this link](https://github.com/joyfullservice/msaccess-vcs-addin/wiki/Documentation) for additional details.
* **Code quality** - I am doing my best to continually refine and organize the code into efficient and well commented logical flows. This is a work in progress, but I feel it is critical to the long-term success of the project.
* **ADP Project** support. While this is an outdated technology, there are some of us that still support and maintain complex ADP projects. This tool has been extended to export objects from ADP projects, including server-side SQL object details.

Getting Started
---------
 Simply download the add-in from the [**Releases**](https://github.com/joyfullservice/msaccess-vcs-addin/releases) page, and run the file. It will install or update the add-in for you. Additional notes on installation and use can be found on the [project wiki](https://github.com/joyfullservice/msaccess-vcs-addin/wiki).

[Quick Start](https://github.com/joyfullservice/msaccess-vcs-addin/wiki/Quick-Start) is a simple overview to help you test out this add-in on your project in less than five minutes.

Contributing
------------
Interested in adding a feature or fixing a bug? [Issues](https://github.com/joyfullservice/msaccess-vcs-addin/issues) and [pull requests](https://github.com/joyfullservice/msaccess-vcs-addin/pulls) are welcome for this project. [This page](/CONTRIBUTING.md) describes some guidelines and the types of contributions would be most helpful.

Development Roadmap
-------------------
In addition to fixing bugs and adding features here and there, here are some of the long-term goals I want to implement in the future:

* Release Version 4 (Early 2024). This version includes a number of substantial updates including an integrated ribbon toolbar interface, support for merging changes into an existing database (instead of having to build entirely from source) and numerous other enhancements.

* Add support for translations in the user interface. After version 4 rolls out, I am hoping to finishing out some functionality to translate the user interface for other languages. While most International developers are at least somewhat familiar with English, I feel like this would make the tool even more comfortable for everyday use.

* Finish an automated testing process where a complex sample database can be exported, reconstructed, exported again, and compared with the original export to ensure that the build process is fully constructing the database from the exported source files.

* Build out an automated deployment workflow using a GitLab runner that is triggered on a commit to automatically build, test, and deploy a database project. Discussion on this idea can be found [here](https://github.com/joyfullservice/msaccess-vcs-addin/issues/51).

Project History
----------------
This project was originally forked from [timabell/msaccess-vcs-integration](https://github.com/timabell/msaccess-vcs-integration) in 2015, but has been extensively rewritten over the years. In 2023 the project was detached from the upstream fork and converted to a stand-alone project.


================================================
FILE: Ribbon/MSAccessVCS_Ribbon.code-workspace
================================================
{
    "folders": [
        {
            "name": "BUILD CONFIGURATIONS",
            "uri": "twinbasic-builds:/___BUILDS/"
        },
        {
            "name": "PROJECT: MSAccessVCSLib",
            "uri": "twinbasic:/MSAccessVCSLib/"
        }
    ],
    "settings": {
        "window.title": "${dirty}MSAccessVCSLib${separator}twinBASIC",
        "files.associations": {
            "*.module": "php",
            "*.mht": "html",
            "*.pwmacro": "powershell",
            "/___BUILDS/*": "twinbasicBuildConfig",
            "/___BUILDS/win64": "twinbasicBuildConfigACTIVE",
            "/*/Settings": "twinbasicProjectConfig"
        },
        "files.defaultLanguage": "twinbasic",
        "editor.trimAutoWhitespace": false,
        "editor.wordBasedSuggestions": false,
        "editor.quickSuggestionsDelay": 350,
        "editor.semanticTokenColorCustomizations": {
            "[Monokai Dimmed]": {
                "enabled": true,
                "rules": {
                    "basicClass": {
                        "foreground": "#e4c685"
                    },
                    "basicLibrary": {
                        "foreground": "#bb6464"
                    },
                    "basicParameterByVal": {
                        "foreground": "#9b79b3"
                    },
                    "basicParameterByRef": {
                        "foreground": "#9b79b3"
                    },
                    "basicUDT": {
                        "foreground": "#a5630d"
                    },
                    "basicModule": {
                        "foreground": "#a8a887"
                    },
                    "basicBuiltInDataType": {
                        "foreground": "#b1551f"
                    },
                    "basicVariable": {
                        "foreground": "#8b8b52"
                    },
                    "basicField": {
                        "foreground": "#f59e1b"
                    },
                    "basicEnum": {
                        "foreground": "#738dc5"
                    },
                    "basicEnumMember": {
                        "foreground": "#a1adc7"
                    },
                    "basicKeyword": {
                        "foreground": "#6c8eda"
                    },
                    "basicLiteralString": {
                        "foreground": "#aeca89",
                        "fontStyle": "italic"
                    },
                    "basicOperator": {
                        "foreground": "#80a1a5"
                    },
                    "basicGenericDataType": {
                        "foreground": "#eeda83"
                    },
                    "basicGenericValue": {
                        "foreground": "#86ee83"
                    },
                    "basicReturnValue": {
                        "foreground": "#ee8391"
                    },
                    "basicMe": {
                        "foreground": "#a13838"
                    },
                    "basicComment": {
                        "foreground": "#448a63"
                    },
                    "basicNamedArgument": {
                        "foreground": "#74384c"
                    },
                    "basicMultiLineSeperator": {
                        "foreground": "#74384c"
                    },
                    "basicLateBoundFunction": {
                        "foreground": "#e7ac5f"
                    },
                    "basicLineLabel": {
                        "foreground": "#ccc6be",
                        "underline": true
                    },
                    "basicLineNumber": {
                        "foreground": "#ccc6be",
                        "underline": true
                    },
                    "basicLiteralNumeric": {
                        "foreground": "#aeca89"
                    },
                    "basicLiteralBoolean": {
                        "foreground": "#c495d3"
                    },
                    "basicLiteralNull": {
                        "foreground": "#c495d3"
                    },
                    "basicLiteralNothing": {
                        "foreground": "#c495d3"
                    },
                    "basicLiteralEmpty": {
                        "foreground": "#c495d3"
                    },
                    "basicLiteralDate": {
                        "foreground": "#c495d3"
                    },
                    "basicConditionalCompilationDirective": {
                        "foreground": "#ad8c98"
                    },
                    "basicConditionalCompilationExcludedCode": {
                        "foreground": "#989599",
                        "italic": true
                    },
                    "basicVariableUndeclared": {
                        "foreground": "#b9929c"
                    },
                    "basicFunction": {
                        "foreground": "#cf9a5d"
                    },
                    "basicDeclareFunction": {
                        "foreground": "#bb956a"
                    },
                    "basicSub": {
                        "foreground": "#cf9a5d"
                    },
                    "basicDeclareSub": {
                        "foreground": "#bb956a"
                    },
                    "basicPropertyGet": {
                        "foreground": "#864f0f"
                    },
                    "basicPropertyLet": {
                        "foreground": "#864f0f"
                    },
                    "basicPropertySet": {
                        "foreground": "#864f0f"
                    },
                    "basicGlobalVariablePrivate": {
                        "foreground": "#f38096"
                    },
                    "basicGlobalVariablePublic": {
                        "foreground": "#d34056"
                    },
                    "basicAttribute": {
                        "foreground": "#5c5c53",
                        "italic": false
                    },
                    "basicLineContinuationCharacter": {
                        "foreground": "#808080"
                    }
                }
            },
            "[Default Dark+]": {
                "enabled": true,
                "rules": {
                    "basicClass": {
                        "foreground": "#e4c685"
                    },
                    "basicLibrary": {
                        "foreground": "#bb6464"
                    },
                    "basicParameterByVal": {
                        "foreground": "#9b79b3"
                    },
                    "basicParameterByRef": {
                        "foreground": "#9b79b3"
                    },
                    "basicUDT": {
                        "foreground": "#a5630d"
                    },
                    "basicModule": {
                        "foreground": "#a8a887"
                    },
                    "basicBuiltInDataType": {
                        "foreground": "#b1551f"
                    },
                    "basicVariable": {
                        "foreground": "#8b8b52"
                    },
                    "basicField": {
                        "foreground": "#f59e1b"
                    },
                    "basicEnum": {
                        "foreground": "#738dc5"
                    },
                    "basicEnumMember": {
                        "foreground": "#a1adc7"
                    },
                    "basicKeyword": {
                        "foreground": "#6c8eda"
                    },
                    "basicLiteralString": {
                        "foreground": "#aeca89",
                        "fontStyle": "italic"
                    },
                    "basicOperator": {
                        "foreground": "#80a1a5"
                    },
                    "basicGenericDataType": {
                        "foreground": "#eeda83"
                    },
                    "basicGenericValue": {
                        "foreground": "#86ee83"
                    },
                    "basicReturnValue": {
                        "foreground": "#ee8391"
                    },
                    "basicMe": {
                        "foreground": "#a13838"
                    },
                    "basicComment": {
                        "foreground": "#448a63"
                    },
                    "basicNamedArgument": {
                        "foreground": "#74384c"
                    },
                    "basicMultiLineSeperator": {
                        "foreground": "#74384c"
                    },
                    "basicLateBoundFunction": {
                        "foreground": "#e7ac5f"
                    },
                    "basicLineLabel": {
                        "foreground": "#ccc6be",
                        "underline": true
                    },
                    "basicLineNumber": {
                        "foreground": "#ccc6be",
                        "underline": true
                    },
                    "basicLiteralNumeric": {
                        "foreground": "#aeca89"
                    },
                    "basicLiteralBoolean": {
                        "foreground": "#c495d3"
                    },
                    "basicLiteralNull": {
                        "foreground": "#c495d3"
                    },
                    "basicLiteralNothing": {
                        "foreground": "#c495d3"
                    },
                    "basicLiteralEmpty": {
                        "foreground": "#c495d3"
                    },
                    "basicLiteralDate": {
                        "foreground": "#c495d3"
                    },
                    "basicConditionalCompilationDirective": {
                        "foreground": "#ad8c98"
                    },
                    "basicConditionalCompilationExcludedCode": {
                        "foreground": "#989599",
                        "italic": true
                    },
                    "basicVariableUndeclared": {
                        "foreground": "#b9929c"
                    },
                    "basicFunction": {
                        "foreground": "#cf9a5d"
                    },
                    "basicDeclareFunction": {
                        "foreground": "#bb956a"
                    },
                    "basicSub": {
                        "foreground": "#cf9a5d"
                    },
                    "basicDeclareSub": {
                        "foreground": "#bb956a"
                    },
                    "basicPropertyGet": {
                        "foreground": "#864f0f"
                    },
                    "basicPropertyLet": {
                        "foreground": "#864f0f"
                    },
                    "basicPropertySet": {
                        "foreground": "#864f0f"
                    },
                    "basicGlobalVariablePrivate": {
                        "foreground": "#f38096"
                    },
                    "basicGlobalVariablePublic": {
                        "foreground": "#d34056"
                    },
                    "basicAttribute": {
                        "foreground": "#5c5c53",
                        "italic": false
                    },
                    "basicLineContinuationCharacter": {
                        "foreground": "#808080"
                    }
                }
            },
            "[Default Light+]": {
                "enabled": true,
                "rules": {
                    "basicClass": {
                        "foreground": "#000000"
                    },
                    "basicLibrary": {
                        "foreground": "#000000"
                    },
                    "basicParameterByVal": {
                        "foreground": "#000000"
                    },
                    "basicParameterByRef": {
                        "foreground": "#000000"
                    },
                    "basicUDT": {
                        "foreground": "#000000"
                    },
                    "basicModule": {
                        "foreground": "#000000"
                    },
                    "basicBuiltInDataType": {
                        "foreground": "#315dbb"
                    },
                    "basicVariable": {
                        "foreground": "#000000"
                    },
                    "basicField": {
                        "foreground": "#000000"
                    },
                    "basicEnum": {
                        "foreground": "#000000"
                    },
                    "basicEnumMember": {
                        "foreground": "#000000"
                    },
                    "basicKeyword": {
                        "foreground": "#315dbb"
                    },
                    "basicLiteralString": {
                        "foreground": "#000000"
                    },
                    "basicOperator": {
                        "foreground": "#315dbb"
                    },
                    "basicGenericDataType": {
                        "foreground": "#000000"
                    },
                    "basicGenericValue": {
                        "foreground": "#000000"
                    },
                    "basicReturnValue": {
                        "foreground": "#000000"
                    },
                    "basicMe": {
                        "foreground": "#315dbb"
                    },
                    "basicComment": {
                        "foreground": "#26774a"
                    },
                    "basicNamedArgument": {
                        "foreground": "#000000"
                    },
                    "basicMultiLineSeperator": {
                        "foreground": "#000000"
                    },
                    "basicLateBoundFunction": {
                        "foreground": "#000000"
                    },
                    "basicLineLabel": {
                        "foreground": "#000000",
                        "italic": true
                    },
                    "basicLineNumber": {
                        "foreground": "#000000",
                        "italic": true
                    },
                    "basicLiteralNumeric": {
                        "foreground": "#000000"
                    },
                    "basicLiteralBoolean": {
                        "foreground": "#315dbb"
                    },
                    "basicLiteralNull": {
                        "foreground": "#315dbb"
                    },
                    "basicLiteralNothing": {
                        "foreground": "#315dbb"
                    },
                    "basicLiteralEmpty": {
                        "foreground": "#315dbb"
                    },
                    "basicLiteralDate": {
                        "foreground": "#000000"
                    },
                    "basicConditionalCompilationDirective": {
                        "foreground": "#315dbb"
                    },
                    "basicConditionalCompilationExcludedCode": {
                        "foreground": "#d2cdd3"
                    },
                    "basicVariableUndeclared": {
                        "foreground": "#000000"
                    },
                    "basicFunction": {
                        "foreground": "#000000"
                    },
                    "basicDeclareFunction": {
                        "foreground": "#000000"
                    },
                    "basicSub": {
                        "foreground": "#000000"
                    },
                    "basicDeclareSub": {
                        "foreground": "#000000"
                    },
                    "basicPropertyGet": {
                        "foreground": "#000000"
                    },
                    "basicPropertyLet": {
                        "foreground": "#000000"
                    },
                    "basicPropertySet": {
                        "foreground": "#000000"
                    }
                }
            }
        },
        
        
        "workbench.colorCustomizations": {
            "separators.classes.borderColor": "#ffffff54",
            "separators.constructors.borderColor": "#ffffff54",
            "separators.enums.borderColor": "#ffffff54",
            "separators.functions.borderColor": "#ffffff54",
            "separators.interfaces.borderColor": "#ffffff54",
            "separators.methods.borderColor": "#ffffff54",
            "separators.namespaces.borderColor": "#ffffff54",
        },
        "twinbasic.buildConfigurationData": {
            "buildConfigurations": [
                {
                    "configuration.name": "win32",
                    "configuration.inherits": "Defaults",
                    "compiler.target": "win32",
                    "compiler.autoRestart": true,
                    "project.warnings": {
                        "ignored": [],
                        "errors": []
                    }
                },
                {
                    "configuration.name": "win64",
                    "configuration.inherits": "Defaults",
                    "compiler.target": "win64",
                    "compiler.autoRestart": true
                }
            ]
        },
        "twinbasic.projectPaths": [
            "\\helloworld.twinproj"
        ],
        "workbench.tree.indent": 20,
        "workbench.iconTheme": "twinbasic",
        "debug.openDebug": "neverOpen",
        "twinbasic.hasCheckedOpenDebugSetting": true,
        "twinbasic.hasCheckedCompactFolders": true,
        "twinbasic.hasCheckedOpenDebugSetting2": true,
        "debug.console.historySuggestions": false,
        "twinbasic.hasSetDebugConsoleHistorySuggestionsOff": true,
        "editor.formatOnType": true,
        "twinbasic.hasCheckedFormatOnType": true,
        "debug.saveBeforeStart": "none",
        "twinbasic.hasCheckedSaveBeforeStart": true
    },
    "launch": {
        "version": "0.2.0",
        "configurations": [
            {
                "type": "twindebug",
                "request": "launch"
            }
        ]
    }
}

================================================
FILE: Ribbon/Ribbon.xml
================================================
<!-- Created with IDBE Ribbon Creator (Version: 1.1041) -->
<!--            http://www.RibbonCreator.com            -->
<!-- Additional modifications and formatting added      -->

<customUI 
  xmlns="http://schemas.microsoft.com/office/2006/01/customui" 
  onLoad="OnRibbonLoad" 
  >
  <ribbon startFromScratch="false">
    <tabs>
      <tab 
		id="tabVersionControl"
		getVisible ="GetVisible"
		getLabel="GetLabel"
	  >
        <group
		  id="grpActions"
		  getVisible ="GetVisible"
		  getLabel="GetLabel"
		>
          <button 
			id="btnShow"
			size="large"
			imageMso="AccessFormWizard"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <separator 
			id="sep1"
			getVisible="GetVisible" 
		  />
          <button
			id="btnExport"
			size="large"
			imageMso="SourceControlCheckIn" 
			onAction="OnActionButton" 
			getVisible="GetVisible" 
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button 
			id="btnExportVBA" 
			size="large" 
			imageMso="GroupMacro" 
			onAction="OnActionButton" 
			getVisible="GetVisible" 
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnExportSelected"
			size="large"
			imageMso="SelectionPane"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <separator
			id="sep2"
			getVisible="GetVisible" />
          <button
			id="btnBuild"
			size="large"
			imageMso="FileCompactAndRepairDatabase"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnMergeBuild"
			size="large"
			imageMso="CellsInsertDialog"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnBuildAs"
			size="large"
			imageMso="FileSaveAs"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnLoadSelected"
			size="large"
			imageMso="AlignDialog"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
        </group>
        <group
		  id="grpOptions"
		  getVisible ="GetVisible"
		  getLabel="GetLabel"
		>
          <button
			id="btnShowOptions"
			size="large"
			imageMso="AdvancedFileProperties"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
        </group>
        <group
		  id="grpTools"
		  getVisible ="GetVisible"
		  getLabel="GetLabel"
		>
		  <button
			id="btnOpenRepository"
			size="large"
			imageMso="FileServerTransferDatabase"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnOpenSourceFolder"
			size="large"
			imageMso="BlogOpenExisting"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnOpenExportLog"
			size="large"
			imageMso="ExportTextFile"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnOpenBuildLog"
			size="large"
			imageMso="ImportTextFile"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <menu
			id="mnuAdvancedTools"
			size="large" itemSize="large"
			imageMso="GroupDesign"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
			>
			  <button
				id="btnGoToLinkAdvancedTools"
				imageMso="TentativeAcceptInvitation"
				onAction="OnActionButton"
				getVisible="GetVisible"
				getEnabled="GetEnabled"
				getLabel="GetLabel"
				getDescription="GetDescription"
				getSupertip="GetSupertip"
			  />
			  <button
				id="btnLocalizeLibraryReferences"
				imageMso="MacroShowAllActions"
				onAction="OnActionButton"
				getVisible="GetVisible"
				getEnabled="GetEnabled"
				getLabel="GetLabel"
				getDescription="GetDescription"
				getSupertip="GetSupertip"
			  />
			  <button
				id="btnRepairColors"
				imageMso="SmartArtChangeColorsGallery"
				onAction="OnActionButton"
				getVisible="GetVisible"
				getEnabled="GetEnabled"
				getLabel="GetLabel"
				getDescription="GetDescription"
				getSupertip="GetSupertip"
			  />
			  <button
				id="btnSplitFiles"
				imageMso="AdpDiagramArrangeTables"
				onAction="OnActionButton"
				getVisible="GetVisible"
				getEnabled="GetEnabled"
				getLabel="GetLabel"
				getDescription="GetDescription"
				getSupertip="GetSupertip"
			  />
			  <button
				id="btnActivateHook"
				imageMso="Call"
				onAction="OnActionButton"
				getVisible="GetVisible"
				getEnabled="GetEnabled"
				getLabel="GetLabel"
				getDescription="GetDescription"
				getSupertip="GetSupertip"
			  />
			  <button
				id="btnReloadRibbon"
				imageMso="DataRefreshAll"
				onAction="OnActionButton"
				getVisible="GetVisible"
				getEnabled="GetEnabled"
				getLabel="GetLabel"
				getDescription="GetDescription"
				getSupertip="GetSupertip"
			  />
          </menu>
          <!--End menu (mnuAdvancedTools) NOT delete this remark-->
        </group>
        <group
		  id="grpGitHub"
		  getVisible ="GetVisible"
		  getLabel="GetLabel"
		>
          <button
			id="btnGoToLinkHome"
			size="large"
			imageMso="BlogHomePage"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnGoToLinkDocumentation"
			size="large"
			imageMso="ViewMasterDocumentViewClassic"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnGoToLinkSupport"
			size="large"
			imageMso="FileCreateDocumentWorkspace"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
          <button
			id="btnGoToLinkDownload"
			size="large"
			imageMso="GetExternalDataFromWeb"
			onAction="OnActionButton"
			getVisible="GetVisible"
			getEnabled="GetEnabled"
			getLabel="GetLabel"
			getDescription="GetDescription"
			getSupertip="GetSupertip"
		  />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>


================================================
FILE: Ribbon/Source/Resources/MANIFEST/#1.xml
================================================
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity
      type="win32"
      processorArchitecture="*"
      name="MSAccessVCSLib"
      version="1.0.0.1"
   />
   <description>Microsoft Access COM add-in to add Fluent UI ribbon support to Access add-in project</description>
   <dependency>
      <dependentAssembly>
         <assemblyIdentity
            type="win32"
            processorArchitecture="*"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            publicKeyToken="6595b64144ccf1df"
            language="*"
         />
      </dependentAssembly>
   </dependency>
</assembly>

================================================
FILE: Ribbon/Source/Settings
================================================
{
	"configuration.inherits": "Defaults",
	"project.appTitle": "Microsoft Access Version Control Ribbon Add-in",
	"project.buildPath": "${SourcePath}\\Build\\${ProjectName}_${Architecture}.${FileExtension}",
	"project.buildStackReserveSize": 4096,
	"project.buildType": "ActiveX DLL",
	"project.description": "Microsoft Access Version Control Ribbon Add-in",
	"project.dllRegisterAfterBuild": false,
	"project.exportAfterSave": true,
	"project.exportPath": "${SourcePath}\\Source",
	"project.exportPathIsV2": true,
	"project.id": "{ddde82dd-9e54-46ba-8167-1cf40ec2b1ea}",
	"project.licence": "MIT",
	"project.name": "MSAccessVCSLib",
	"project.optionExplicit": true,
	"project.references": [
		{
			"id": "{00020430-0000-0000-C000-000000000046}",
			"lcid": 0,
			"name": "OLE Automation",
			"path32": "C:\\Windows\\SysWOW64\\stdole2.tlb",
			"path64": "C:\\Windows\\System32\\stdole2.tlb",
			"symbolId": "stdole",
			"versionMajor": 2,
			"versionMinor": 0
		},
		{
			"id": "{AC0714F2-3D04-11D1-AE7D-00A0C90F26F4}",
			"lcid": 0,
			"name": "Microsoft Add-In Designer",
			"path32": "C:\\Program Files (x86)\\Common Files\\Designer\\MSADDNDR.DLL",
			"path64": "",
			"symbolId": "AddInDesignerObjects",
			"versionMajor": 1,
			"versionMinor": 0
		},
		{
			"id": "{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}",
			"lcid": 0,
			"name": "Microsoft Office 14.0 Object Library",
			"path32": "C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\OFFICE14\\MSO.DLL",
			"path64": "",
			"symbolId": "Office",
			"versionMajor": 2,
			"versionMinor": 5
		},
		{
			"id": "{420B2830-E718-11CF-893D-00A0C9054228}",
			"lcid": 0,
			"name": "Microsoft Scripting Runtime",
			"path32": "C:\\Windows\\SysWOW64\\scrrun.dll",
			"path64": "C:\\Windows\\System32\\scrrun.dll",
			"symbolId": "Scripting",
			"versionMajor": 1,
			"versionMinor": 0
		},
		{
			"id": "{B691E011-1797-432E-907A-4D8C69339129}",
			"lcid": 0,
			"name": "Microsoft ActiveX Data Objects 6.1 Library",
			"path32": "C:\\Program Files (x86)\\Common Files\\System\\ado\\msado15.dll",
			"path64": "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll",
			"symbolId": "ADODB",
			"versionMajor": 6,
			"versionMinor": 1
		},
		{
			"id": "{F50B82D0-DCAB-43FE-9631-11959D4A4728}",
			"isCompilerPackage": true,
			"licence": "MIT",
			"name": "[COMPILER PACKAGE] twinBASIC - VB Compatibility Package (Forms)",
			"path32": "",
			"path64": "",
			"publisher": "TWINBASIC-COMPILER",
			"symbolId": "VB",
			"versionBuild": 0,
			"versionMajor": 0,
			"versionMinor": 0,
			"versionRevision": 31
		}
	],
	"project.settingsVersion": 1,
	"project.useProjectIdForTypeLibraryId": true,
	"project.versionBuild": 1,
	"project.versionMajor": 1,
	"project.versionMinor": 0,
	"project.versionRevision": 0,
	"project.warnings": {
		"errors": [],
		"hints": [],
		"ignored": [],
		"info": [],
		"warnings": []
	},
	"runtime.useUnicodeStandardLibrary": true
}

================================================
FILE: Ribbon/Source/Sources/AddInRibbon.twin
================================================

Class AddInRibbon

	Implements IDTExtensibility2

	/*
		PLEASE NOTE: make sure you create a DLL of the correct bitness to match your version of VBA
		(e.g. if you're using the 64-bit version of VBA, make sure you change the 'Active Build' in the twinBASIC panel to 'win64')
	*/
	
	[WithDispatchForwarding]
	Implements IRibbonExtensibility
	
	/* 
		The [WithDispatchForwarding] attribute seen above is needed so that late-bound calls
		on the IRibbonExtensibility interface get routed to our default interface.
		Without it, events will not fire.
	*/
    
    ' This corresponds to the name of the Access Add-in Project
    Const PROJECT_NAME As String = "MSAccessVCS"
 
	' Cached copy of the ribbon XML as loaded from the Ribbon.xml file.
	Private strRibbonXML As String
	
	' A reference to the Microsoft Access application
	Private applicationObject As Object
	
	' A reference to the ribbon object
	Private activeRibbon As IRibbonUI
    
    ' Dictionary of menu Labels, Descriptions and Supertips loaded from Ribbon.json
    Private ribbonStrings As Dictionary

	
    /* 
		Firstly we implement the IDTExtensibility2 interface members
		We don't do anything particularly interesting here, except for taking a reference
		to the Application object provided to us in the OnConnection event
	*/
	Public Sub OnConnection(ByVal Application As Object, _
					 ByVal ConnectMode As ext_ConnectMode, _
					 ByVal AddInInst As Object, _
					 ByRef custom As Variant()) Implements IDTExtensibility2.OnConnection
		
		'MsgBox "MyCOMAddin.OnConnection"
		Set applicationObject = Application
	End Sub
	
	
	Public Sub OnDisconnection(ByVal RemoveMode As ext_DisconnectMode, _
						ByRef custom As Variant()) Implements IDTExtensibility2.OnDisconnection
		
		'MsgBox "MyCOMAddin.OnDisconnection"
		Set applicationObject = Nothing
	End Sub
	
	
	Public Sub OnAddInsUpdate(ByRef custom As Variant()) Implements IDTExtensibility2.OnAddInsUpdate
		
		'MsgBox "MyCOMAddin.OnAddInsUpdate"
	End Sub
	
	
	Public Sub OnStartupComplete(ByRef custom As Variant()) Implements IDTExtensibility2.OnStartupComplete
		
		'MsgBox "MyCOMAddin.OnStartupComplete"
	End Sub
	
	
	Public Sub OnBeginShutdown(ByRef custom As Variant()) Implements IDTExtensibility2.OnBeginShutdown
		Set activeRibbon = Nothing
		'MsgBox "MyCOMAddin.OnBeginShutdown"
	End Sub
	
	
	/* 
		Next we implement IRibbonExtensibility.GetCustomUI which lets us provide
		a ribbon XML string to the host
	*/
	Private Function GetCustomUI(ByVal RibbonID As String) As String Implements IRibbonExtensibility.GetCustomUI
		
		Dim strPath As String
        Dim strContent As String
        Dim dStrings As Dictionary
        
        On Error GoTo ErrHandler
        
        ' Load translation strings
        strPath = App.Path & "\Ribbon.json"
		If Me.ribbonStrings Is Nothing Then
        	If FSO.FileExists(strPath) Then
                strContent = ReadFile(strPath)
                If Len(strContent) Then
                    Set dStrings = ParseJson(strContent)
                    If Not dStrings Is Nothing Then Set Me.ribbonStrings = dStrings
                End If
            End If
        End If
        
		' Load XML to cached variable if needed
        strPath = App.Path & "\Ribbon.xml"
        If Me.strRibbonXML = vbNullString Then
			If FSO.FileExists(strPath) Then Me.strRibbonXML = ReadFile(strPath)
        End If
		
		Return Me.strRibbonXML
		Exit Function
     
	ErrHandler:
		MsgBox "Error: " & Err.Number & vbCrLf & Err.Description, vbExclamation
		Resume Next
     
	End Function

    
    /*
		Read content from text file
    */
    Private Function ReadFile(strPath As String) As String
	
        Dim strContent As String
        
        ' If the file exists, load content as string
        On Error Resume Next
        If FSO.FileExists(strPath) Then
            With New ADODB.Stream
                .Charset = "utf-8"
                .Open
                .LoadFromFile strPath
                strContent = .ReadText
                .Close
            End With
        End If
        
        Return strContent
    End Function
    
    
	/*
		Ensure that the add-in project is loaded in VBE
	*/
	Private Function VerifyAccessAddinProject() As Boolean

		Dim strAddInLib As String
		Dim proj As Object      	' VBProject
		Dim addInProject As Object	' VBProject
		Dim strName As String
		Dim strTempDbPath As String = App.Path & "Temp.accdb"
		
		' Get relative path to Access add-in library (Should be in same folder as this dll)
		strAddInLib = App.Path & "\Version Control"

        ' If NO file is open, and NO add-ins are loaded, we may be unable to load
        ' the MSAccessVCS add-in. To resolve this, create a new blank
        ' database project, load the addin, then close the temporary database project.
        If applicationObject.VBE.ActiveVBProject Is Nothing Then
            ' Create a new database project.
            If FSO.FileExists(strTempDbPath) Then FSO.DeleteFile(strTempDbPath)
            applicationObject.NewCurrentDatabase strTempDbPath
        End If
        
        ' At this point we should have a database file open, but just in case...
        If applicationObject.VBE.ActiveVBProject Is Nothing Then
            MsgBox "Please open a database file before using this add-in", vbInformation
        Else
            ' Attempt to call the Preload routine
            On Error Resume Next
            With applicationObject
                .DoCmd.Hourglass True
                .Run strAddInLib & ".Preload"
                .DoCmd.Hourglass False
            End With
            If Err Then
                MsgBox "Failed to Load Add-In" & vbCrLf & vbCrLf & _
                    Err.Number & ": " & Err.Description, vbExclamation
                Err.Clear()
            End If
            On Error GoTo 0
        End If
		
		' Clean up any temporary database
		If applicationObject.CurrentProject.FullName = strTempDbPath Then applicationObject.CloseCurrentDatabase
		If FSO.FileExists(strTempDbPath) Then FSO.DeleteFile(strTempDbPath)

        ' Technically, we are just returning true if ANY project is loaded.
        ' (We should be able to call the add-in directly as long as a project is loaded.)
        Return Not (applicationObject.VBE.ActiveVBProject Is Nothing)
        
	End Function
	
	
	/*
		Wrapper for the file system object
	*/
	Private Function FSO() As FileSystemObject
		Static objFSO As FileSystemObject
		If objFSO Is Nothing Then Set objFSO = New FileSystemObject
		Return objFSO
	End Function

	
	/*
		Primary ribbon callback function. Relay control ID back to add-in for execution.
	*/
	Public Sub OnActionButton(control As IRibbonControl)
		If VerifyAccessAddinProject Then
			' Pass the control ID to the handler function
			applicationObject.Run App.Path & "\Version Control.HandleRibbonCommand", control.Id
		End If
	End Sub
	
    /*
		Functions to dynamically load labels and descriptions
    */
    Public Function GetLabel(control As IRibbonControl) As String
        Return GetString(control, "Label")
    End Function
    
    Public Function GetDescription(control As IRibbonControl) As String
        Return GetString(control, "Description")
    End Function
    
    Public Function GetSupertip(control As IRibbonControl) As String
        Return GetString(control, "Supertip")
    End Function
	
    ' Wrapper to look up a string value from the dictionary loaded from `Ribbon.json`
    Private Function GetString(control As IRibbonControl, strKey As String) As String
        Dim strValue As String
        If Not Me.ribbonStrings Is Nothing Then
			If Me.ribbonStrings.Exists(control.Id) Then
				strValue = Me.ribbonStrings(control.Id)(strKey)
			End If
        End If
        Return strValue
    End Function
    
	/*
		Stub functions for default ribbon callbacks. (Not currently used)
	*/
	Public Function GetVisible(control As IRibbonControl) As Boolean
		' Always show all buttons for now.
		Return True
	End Function
	
	Public Function GetEnabled(control As IRibbonControl) As Boolean
		' Always enable all buttons for now.
		Return True
	End Function
	
	
	Public Sub OnRibbonLoad(ribbon As IRibbonUI)
		' Save reference to ribbon object
		Set activeRibbon = ribbon
	End Sub
End Class


================================================
FILE: Ribbon/Source/Sources/DllRegistration.twin
================================================
Module DllRegistration
    
    Private Const AddinProjectName As String = VBA.Compilation.CurrentProjectName
    Private Const AddinClassName As String = "AddInRibbon"
    Private Const AddinQualifiedClassName As String = AddinProjectName & "." & AddinClassName
    Private Const AddinFriendlyName As String = "Ribbon integration for MSAccessVCS add-in"
    Private Const AddinDescription As String = "Microsoft Access COM add-in to add Fluent UI ribbon support to Access add-in project"
    Private Const RootRegistryFolder_ACCESS As String = "HKCU\SOFTWARE\Microsoft\Office\Access\Addins\" & AddinQualifiedClassName & "\"

    Public Function DllRegisterServer() As Boolean
    
        On Error GoTo RegError
        
        ' Integrated DLL registration for Access COM Add-in list
        With CreateObject("wscript.shell")
            .RegWrite RootRegistryFolder_ACCESS & "FriendlyName", AddinFriendlyName, "REG_SZ"
            .RegWrite RootRegistryFolder_ACCESS & "Description", AddinDescription, "REG_SZ"
            .RegWrite RootRegistryFolder_ACCESS & "LoadBehavior", 3, "REG_DWORD"
        End With
    
        Return True
        
    RegError:
        MsgBox "DllRegisterServer -- An error occured trying to write to the system registry:" & vbCrLf & _
                Err.Description & " (" & Hex(Err.Number) & ")"
                
        Return False
    End Function
 
    Public Function DllUnregisterServer() As Boolean
        
        On Error GoTo RegError
        
        With CreateObject("wscript.shell")
            .RegDelete RootRegistryFolder_ACCESS & "FriendlyName"
            .RegDelete RootRegistryFolder_ACCESS & "Description"
            .RegDelete RootRegistryFolder_ACCESS & "LoadBehavior"
            .RegDelete RootRegistryFolder_ACCESS
        End With
    
        Return True
        
    RegError:
        MsgBox "DllUnregisterServer -- An error occured trying to delete from the system registry:" & vbCrLf & _
                Err.Description & " (" & Hex(Err.Number) & ")"
                
        Return False
    End Function
End Module

================================================
FILE: Ribbon/Source/Sources/JsonConverter.twin
================================================

Module JsonConverter

    ''
    ' VBA-JSON v2.3.1
    ' (c) Tim Hall - https://github.com/VBA-tools/VBA-JSON
    '
    ' JSON Converter for VBA
    '
    ' Errors:
    ' 10001 - JSON parse error
    '
    ' @class JsonConverter
    ' @author tim.hall.engr@gmail.com
    ' @license MIT (http://www.opensource.org/licenses/mit-license.php)
    '' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '
    '
    ' Based originally on vba-json (with extensive changes)
    ' BSD license included below
    '
    ' JSONLib, http://code.google.com/p/vba-json/
    '
    ' Copyright (c) 2013, Ryo Yokoyama
    ' All rights reserved.
    '
    ' Redistribution and use in source and binary forms, with or without
    ' modification, are permitted provided that the following conditions are met:
    '     * Redistributions of source code must retain the above copyright
    '       notice, this list of conditions and the following disclaimer.
    '     * Redistributions in binary form must reproduce the above copyright
    '       notice, this list of conditions and the following disclaimer in the
    '       documentation and/or other materials provided with the distribution.
    '     * Neither the name of the <organization> nor the
    '       names of its contributors may be used to endorse or promote products
    '       derived from this software without specific prior written permission.
    '
    ' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
    ' ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    ' WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    ' DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
    ' DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    ' (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    ' LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    ' ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    ' (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    ' SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ '
    Option Compare Database
    Option Explicit
    Option Private Module

    ' === VBA-UTC Headers
    #If Mac Then

    #If VBA7 Then

    ' 64-bit Mac (2016)
    Private Declare PtrSafe Function utc_popen Lib "/usr/lib/libc.dylib" Alias "popen" ( _
        ByVal utc_Command As String, ByVal utc_Mode As String) As LongPtr
    Private Declare PtrSafe Function utc_pclose Lib "/usr/lib/libc.dylib" Alias "pclose" ( _
        ByVal utc_File As LongPtr) As LongPtr
    Private Declare PtrSafe Function utc_fread Lib "/usr/lib/libc.dylib" Alias "fread" ( _
        ByVal utc_Buffer As String, ByVal utc_Size As LongPtr, ByVal utc_Number As LongPtr, ByVal utc_File As LongPtr) As LongPtr
    Private Declare PtrSafe Function utc_feof Lib "/usr/lib/libc.dylib" Alias "feof" ( _
        ByVal utc_File As LongPtr) As LongPtr

    #Else

    ' 32-bit Mac
    Private Declare Function utc_popen Lib "libc.dylib" Alias "popen" ( _
        ByVal utc_Command As String, ByVal utc_Mode As String) As Long
    Private Declare Function utc_pclose Lib "libc.dylib" Alias "pclose" ( _
        ByVal utc_File As Long) As Long
    Private Declare Function utc_fread Lib "libc.dylib" Alias "fread" ( _
        ByVal utc_Buffer As String, ByVal utc_Size As Long, ByVal utc_Number As Long, ByVal utc_File As Long) As Long
    Private Declare Function utc_feof Lib "libc.dylib" Alias "feof" ( _
        ByVal utc_File As Long) As Long

    #End If

    #ElseIf VBA7 Then

    ' http://msdn.microsoft.com/en-us/library/windows/desktop/ms724421.aspx
    ' http://msdn.microsoft.com/en-us/library/windows/desktop/ms724949.aspx
    ' http://msdn.microsoft.com/en-us/library/windows/desktop/ms725485.aspx
    Private Declare PtrSafe Function utc_GetTimeZoneInformation Lib "kernel32" Alias "GetTimeZoneInformation" ( _
        utc_lpTimeZoneInformation As utc_TIME_ZONE_INFORMATION) As Long
    Private Declare PtrSafe Function utc_SystemTimeToTzSpecificLocalTime Lib "kernel32" Alias "SystemTimeToTzSpecificLocalTime" ( _
        utc_lpTimeZoneInformation As utc_TIME_ZONE_INFORMATION, utc_lpUniversalTime As utc_SYSTEMTIME, utc_lpLocalTime As utc_SYSTEMTIME) As Long
    Private Declare PtrSafe Function utc_TzSpecificLocalTimeToSystemTime Lib "kernel32" Alias "TzSpecificLocalTimeToSystemTime" ( _
        utc_lpTimeZoneInformation As utc_TIME_ZONE_INFORMATION, utc_lpLocalTime As utc_SYSTEMTIME, utc_lpUniversalTime As utc_SYSTEMTIME) As Long

    #Else

    Private Declare Function utc_GetTimeZoneInformation Lib "kernel32" Alias "GetTimeZoneInformation" ( _
        utc_lpTimeZoneInformation As utc_TIME_ZONE_INFORMATION) As Long
    Private Declare Function utc_SystemTimeToTzSpecificLocalTime Lib "kernel32" Alias "SystemTimeToTzSpecificLocalTime" ( _
        utc_lpTimeZoneInformation As utc_TIME_ZONE_INFORMATION, utc_lpUniversalTime As utc_SYSTEMTIME, utc_lpLocalTime As utc_SYSTEMTIME) As Long
    Private Declare Function utc_TzSpecificLocalTimeToSystemTime Lib "kernel32" Alias "TzSpecificLocalTimeToSystemTime" ( _
        utc_lpTimeZoneInformation As utc_TIME_ZONE_INFORMATION, utc_lpLocalTime As utc_SYSTEMTIME, utc_lpUniversalTime As utc_SYSTEMTIME) As Long

    #End If

    #If Mac Then

    #If VBA7 Then
    Private Type utc_ShellResult
        utc_Output As String
        utc_ExitCode As LongPtr
    End Type

    #Else

    Private Type utc_ShellResult
        utc_Output As String
        utc_ExitCode As Long
    End Type

    #End If

    #Else

    Private Type utc_SYSTEMTIME
        utc_wYear As Integer
        utc_wMonth As Integer
        utc_wDayOfWeek As Integer
        utc_wDay As Integer
        utc_wHour As Integer
        utc_wMinute As Integer
        utc_wSecond As Integer
        utc_wMilliseconds As Integer
    End Type

    Private Type utc_TIME_ZONE_INFORMATION
        utc_Bias As Long
        utc_StandardName(0 To 31) As Integer
        utc_StandardDate As utc_SYSTEMTIME
        utc_StandardBias As Long
        utc_DaylightName(0 To 31) As Integer
        utc_DaylightDate As utc_SYSTEMTIME
        utc_DaylightBias As Long
    End Type

    #End If
    ' === End VBA-UTC

    Private Type json_Options
        ' VBA only stores 15 significant digits, so any numbers larger than that are truncated
        ' This can lead to issues when BIGINT's are used (e.g. for Ids or Credit Cards), as they will be invalid above 15 digits
        ' See: http://support.microsoft.com/kb/269370
        '
        ' By default, VBA-JSON will use String for numbers longer than 15 characters that contain only digits
        ' to override set `JsonConverter.JsonOptions.UseDoubleForLargeNumbers = True`
        UseDoubleForLargeNumbers As Boolean

        ' The JSON standard requires object keys to be quoted (" or '), use this option to allow unquoted keys
        AllowUnquotedKeys As Boolean

        ' The solidus (/) is not required to be escaped, use this option to escape them as \/ in ConvertToJson
        EscapeSolidus As Boolean

        ' Before version 2.3.1 dates were converted to UTC in ConvertToJson method, but not when json was parsed.
        ' Convert datetime values to UTC/ISO8601 (true, slower) or dont change local <-> global times (false, faster)
        ConvertDateToIso As Boolean

        ' Allow Unicode characters in JSON text. Set to True to use native Unicode or false for escaped values.
        AllowUnicodeChars As Boolean
    End Type
    Public JsonOptions As json_Options

    ' ============================================= '
    ' Public Methods
    ' ============================================= '

    ''
    ' Convert JSON string to object (Dictionary/Collection)
    '
    ' @method ParseJson
    ' @param {String} json_String
    ' @return {Object} (Dictionary or Collection)
    ' @throws 10001 - JSON parse error
    ''
    Public Function ParseJson(ByVal JsonString As String) As Object
        Dim json_Index As Long
        json_Index = 1

        ' Remove vbCr, vbLf, and vbTab from json_String
        JsonString = VBA.Replace(VBA.Replace(VBA.Replace(JsonString, VBA.vbCr, vbNullString), VBA.vbLf, vbNullString), VBA.vbTab, vbNullString)

        json_SkipSpaces JsonString, json_Index
        Select Case VBA.Mid$(JsonString, json_Index, 1)
        Case "{"
            Set ParseJson = json_ParseObject(JsonString, json_Index)
        Case "["
            Set ParseJson = json_ParseArray(JsonString, json_Index)
        Case Else
            ' Error: Invalid JSON string
            Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(JsonString, json_Index, "Expecting '{' or '['")
        End Select

    End Function

    ''
    ' Convert object (Dictionary/Collection/Array) to JSON
    '
    ' @method ConvertToJson
    ' @param {Variant} JsonValue (Dictionary, Collection, or Array)
    ' @param {Integer|String} Whitespace "Pretty" print json with given number of spaces per indentation (Integer) or given string
    ' @return {String}
    ''
    Public Function ConvertToJson(ByVal JsonValue As Variant, Optional ByVal Whitespace As Variant, Optional ByVal json_CurrentIndentation As Long = 0) As String
        Dim json_Buffer As String
        Dim json_BufferPosition As Long
        Dim json_BufferLength As Long
        Dim json_Index As Long
        Dim json_LBound As Long
        Dim json_UBound As Long
        Dim json_IsFirstItem As Boolean
        Dim json_Index2D As Long
        Dim json_LBound2D As Long
        Dim json_UBound2D As Long
        Dim json_IsFirstItem2D As Boolean
        Dim json_Key As Variant
        Dim json_Value As Variant
        Dim json_DateStr As String
        Dim json_Converted As String
        Dim json_SkipItem As Boolean
        Dim json_PrettyPrint As Boolean
        Dim json_Indentation As String
        Dim json_InnerIndentation As String

        json_LBound = -1
        json_UBound = -1
        json_IsFirstItem = True
        json_LBound2D = -1
        json_UBound2D = -1
        json_IsFirstItem2D = True
        json_PrettyPrint = Not IsMissing(Whitespace)

        Select Case VBA.VarType(JsonValue)
        Case VBA.vbNull
            ConvertToJson = "null"

        Case VBA.vbDate
            ' Date
            json_DateStr = VBA.CStr(JsonValue)
            ConvertToJson = """" & json_DateStr & """"

        Case VBA.vbString
            ' String (or large number encoded as string)
            If Not JsonOptions.UseDoubleForLargeNumbers And json_StringIsLargeNumber(JsonValue) Then
                ConvertToJson = JsonValue
            Else
                ConvertToJson = """" & json_Encode(JsonValue) & """"
            End If
        Case VBA.vbBoolean
            If JsonValue Then
                ConvertToJson = "true"
            Else
                ConvertToJson = "false"
            End If
        Case VBA.vbArray To VBA.vbArray + VBA.vbByte
            If json_PrettyPrint Then
                If VBA.VarType(Whitespace) = VBA.vbString Then
                    json_Indentation = VBA.String$(json_CurrentIndentation + 1, Whitespace)
                    json_InnerIndentation = VBA.String$(json_CurrentIndentation + 2, Whitespace)
                Else
                    json_Indentation = VBA.Space$((json_CurrentIndentation + 1) * Whitespace)
                    json_InnerIndentation = VBA.Space$((json_CurrentIndentation + 2) * Whitespace)
                End If
            End If

            ' Array
            json_BufferAppend json_Buffer, "[", json_BufferPosition, json_BufferLength

            On Error Resume Next

            json_LBound = LBound(JsonValue, 1)
            json_UBound = UBound(JsonValue, 1)
            json_LBound2D = LBound(JsonValue, 2)
            json_UBound2D = UBound(JsonValue, 2)

            If json_LBound >= 0 And json_UBound >= 0 Then
                For json_Index = json_LBound To json_UBound
                    If json_IsFirstItem Then
                        json_IsFirstItem = False
                    Else
                        ' Append comma to previous line
                        json_BufferAppend json_Buffer, ",", json_BufferPosition, json_BufferLength
                    End If

                    If json_LBound2D >= 0 And json_UBound2D >= 0 Then
                        ' 2D Array
                        If json_PrettyPrint Then
                            json_BufferAppend json_Buffer, vbNewLine, json_BufferPosition, json_BufferLength
                        End If
                        json_BufferAppend json_Buffer, json_Indentation & "[", json_BufferPosition, json_BufferLength

                        For json_Index2D = json_LBound2D To json_UBound2D
                            If json_IsFirstItem2D Then
                                json_IsFirstItem2D = False
                            Else
                                json_BufferAppend json_Buffer, ",", json_BufferPosition, json_BufferLength
                            End If

                            json_Converted = ConvertToJson(JsonValue(json_Index, json_Index2D), Whitespace, json_CurrentIndentation + 2)

                            ' For Arrays/Collections, undefined (Empty/Nothing) is treated as null
                            If json_Converted = vbNullString Then
                                ' (nest to only check if converted = "")
                                If json_IsUndefined(JsonValue(json_Index, json_Index2D)) Then
                                    json_Converted = "null"
                                End If
                            End If

                            If json_PrettyPrint Then
                                json_Converted = vbNewLine & json_InnerIndentation & json_Converted
                            End If

                            json_BufferAppend json_Buffer, json_Converted, json_BufferPosition, json_BufferLength
                        Next json_Index2D

                        If json_PrettyPrint Then
                            json_BufferAppend json_Buffer, vbNewLine, json_BufferPosition, json_BufferLength
                        End If

                        json_BufferAppend json_Buffer, json_Indentation & "]", json_BufferPosition, json_BufferLength
                        json_IsFirstItem2D = True
                    Else
                        ' 1D Array
                        json_Converted = ConvertToJson(JsonValue(json_Index), Whitespace, json_CurrentIndentation + 1)

                        ' For Arrays/Collections, undefined (Empty/Nothing) is treated as null
                        If json_Converted = vbNullString Then
                            ' (nest to only check if converted = "")
                            If json_IsUndefined(JsonValue(json_Index)) Then
                                json_Converted = "null"
                            End If
                        End If

                        If json_PrettyPrint Then
                            json_Converted = vbNewLine & json_Indentation & json_Converted
                        End If

                        json_BufferAppend json_Buffer, json_Converted, json_BufferPosition, json_BufferLength
                    End If
                Next json_Index
            End If

            On Error GoTo 0

            If json_PrettyPrint Then
                json_BufferAppend json_Buffer, vbNewLine, json_BufferPosition, json_BufferLength

                If VBA.VarType(Whitespace) = VBA.vbString Then
                    json_Indentation = VBA.String$(json_CurrentIndentation, Whitespace)
                Else
                    json_Indentation = VBA.Space$(json_CurrentIndentation * Whitespace)
                End If
            End If

            json_BufferAppend json_Buffer, json_Indentation & "]", json_BufferPosition, json_BufferLength

            ConvertToJson = json_BufferToString(json_Buffer, json_BufferPosition)

        ' Dictionary or Collection
        Case VBA.vbObject
            If json_PrettyPrint Then
                If VBA.VarType(Whitespace) = VBA.vbString Then
                    json_Indentation = VBA.String$(json_CurrentIndentation + 1, Whitespace)
                Else
                    json_Indentation = VBA.Space$((json_CurrentIndentation + 1) * Whitespace)
                End If
            End If

            ' Dictionary
            If VBA.TypeName(JsonValue) = "Dictionary" Then
                json_BufferAppend json_Buffer, "{", json_BufferPosition, json_BufferLength
                For Each json_Key In JsonValue.Keys
                    ' For Objects, undefined (Empty/Nothing) is not added to object
                    json_Converted = ConvertToJson(JsonValue(json_Key), Whitespace, json_CurrentIndentation + 1)
                    If json_Converted = vbNullString Then
                        json_SkipItem = json_IsUndefined(JsonValue(json_Key))
                    Else
                        json_SkipItem = False
                    End If

                    If Not json_SkipItem Then
                        If json_IsFirstItem Then
                            json_IsFirstItem = False
                        Else
                            json_BufferAppend json_Buffer, ",", json_BufferPosition, json_BufferLength
                        End If

                        If json_PrettyPrint Then
                            json_Converted = vbNewLine & json_Indentation & """" & json_Encode(json_Key) & """: " & json_Converted
                        Else
                            json_Converted = """" & json_Encode(json_Key) & """:" & json_Converted
                        End If

                        json_BufferAppend json_Buffer, json_Converted, json_BufferPosition, json_BufferLength
                    End If
                Next json_Key

                If json_PrettyPrint Then
                    json_BufferAppend json_Buffer, vbNewLine, json_BufferPosition, json_BufferLength

                    If VBA.VarType(Whitespace) = VBA.vbString Then
                        json_Indentation = VBA.String$(json_CurrentIndentation, Whitespace)
                    Else
                        json_Indentation = VBA.Space$(json_CurrentIndentation * Whitespace)
                    End If
                End If

                json_BufferAppend json_Buffer, json_Indentation & "}", json_BufferPosition, json_BufferLength

            ' Collection
            ElseIf VBA.TypeName(JsonValue) = "Collection" Then
                json_BufferAppend json_Buffer, "[", json_BufferPosition, json_BufferLength
                For Each json_Value In JsonValue
                    If json_IsFirstItem Then
                        json_IsFirstItem = False
                    Else
                        json_BufferAppend json_Buffer, ",", json_BufferPosition, json_BufferLength
                    End If

                    json_Converted = ConvertToJson(json_Value, Whitespace, json_CurrentIndentation + 1)

                    ' For Arrays/Collections, undefined (Empty/Nothing) is treated as null
                    If json_Converted = vbNullString Then
                        ' (nest to only check if converted = "")
                        If json_IsUndefined(json_Value) Then
                            json_Converted = "null"
                        End If
                    End If

                    If json_PrettyPrint Then
                        json_Converted = vbNewLine & json_Indentation & json_Converted
                    End If

                    json_BufferAppend json_Buffer, json_Converted, json_BufferPosition, json_BufferLength
                Next json_Value

                If json_PrettyPrint Then
                    json_BufferAppend json_Buffer, vbNewLine, json_BufferPosition, json_BufferLength

                    If VBA.VarType(Whitespace) = VBA.vbString Then
                        json_Indentation = VBA.String$(json_CurrentIndentation, Whitespace)
                    Else
                        json_Indentation = VBA.Space$(json_CurrentIndentation * Whitespace)
                    End If
                End If

                json_BufferAppend json_Buffer, json_Indentation & "]", json_BufferPosition, json_BufferLength
            End If

            ConvertToJson = json_BufferToString(json_Buffer, json_BufferPosition)
        Case VBA.vbInteger, VBA.vbLong, VBA.vbSingle, VBA.vbDouble, VBA.vbCurrency, VBA.vbDecimal
            ' Number (use decimals for numbers)
            ConvertToJson = VBA.Replace(JsonValue, ",", ".")
        Case Else
            ' vbEmpty, vbError, vbDataObject, vbByte, vbUserDefinedType
            ' Use VBA's built-in to-string
            On Error Resume Next
            ConvertToJson = JsonValue
            On Error GoTo 0
        End Select

    End Function

    ' ============================================= '
    ' Private Functions
    ' ============================================= '

    Private Function json_ParseObject(json_String As String, ByRef json_Index As Long) As Dictionary
        Dim json_Key As String
        Dim json_NextChar As String

        Set json_ParseObject = New Dictionary
        json_SkipSpaces json_String, json_Index
        If VBA.Mid$(json_String, json_Index, 1) <> "{" Then
            Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(json_String, json_Index, "Expecting '{'")
        Else
            json_Index = json_Index + 1

            Do
                json_SkipSpaces json_String, json_Index
                If VBA.Mid$(json_String, json_Index, 1) = "}" Then
                    json_Index = json_Index + 1
                    Exit Function
                ElseIf VBA.Mid$(json_String, json_Index, 1) = "," Then
                    json_Index = json_Index + 1
                    json_SkipSpaces json_String, json_Index
                End If

                json_Key = json_ParseKey(json_String, json_Index)
                json_NextChar = json_Peek(json_String, json_Index)
                If json_NextChar = "[" Or json_NextChar = "{" Then
                    Set json_ParseObject.Item(json_Key) = json_ParseValue(json_String, json_Index)
                Else
                    json_ParseObject.Item(json_Key) = json_ParseValue(json_String, json_Index)
                End If
            Loop
        End If
    End Function

    Private Function json_ParseArray(json_String As String, ByRef json_Index As Long) As Collection
        Set json_ParseArray = New Collection

        json_SkipSpaces json_String, json_Index
        If VBA.Mid$(json_String, json_Index, 1) <> "[" Then
            Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(json_String, json_Index, "Expecting '['")
        Else
            json_Index = json_Index + 1

            Do
                json_SkipSpaces json_String, json_Index
                If VBA.Mid$(json_String, json_Index, 1) = "]" Then
                    json_Index = json_Index + 1
                    Exit Function
                ElseIf VBA.Mid$(json_String, json_Index, 1) = "," Then
                    json_Index = json_Index + 1
                    json_SkipSpaces json_String, json_Index
                End If

                json_ParseArray.Add json_ParseValue(json_String, json_Index)
            Loop
        End If
    End Function

    Private Function json_ParseValue(json_String As String, ByRef json_Index As Long) As Variant
        json_SkipSpaces json_String, json_Index
        Select Case VBA.Mid$(json_String, json_Index, 1)
        Case "{"
            Set json_ParseValue = json_ParseObject(json_String, json_Index)
        Case "["
            Set json_ParseValue = json_ParseArray(json_String, json_Index)
        Case """", "'"
            json_ParseValue = json_ParseString(json_String, json_Index)
        Case Else
            If VBA.Mid$(json_String, json_Index, 4) = "true" Then
                json_ParseValue = True
                json_Index = json_Index + 4
            ElseIf VBA.Mid$(json_String, json_Index, 5) = "false" Then
                json_ParseValue = False
                json_Index = json_Index + 5
            ElseIf VBA.Mid$(json_String, json_Index, 4) = "null" Then
                json_ParseValue = Null
                json_Index = json_Index + 4
            ElseIf VBA.InStr("+-0123456789", VBA.Mid$(json_String, json_Index, 1)) Then
                json_ParseValue = json_ParseNumber(json_String, json_Index)
            Else
                Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(json_String, json_Index, "Expecting 'STRING', 'NUMBER', null, true, false, '{', or '['")
            End If
        End Select
    End Function

    Private Function json_ParseString(ByRef json_String As String _
                                    , ByRef json_Index As Long) As Variant

        Dim json_Quote As String
        Dim json_Char As String
        Dim json_Code As String
        Dim json_Buffer As String
        Dim json_BufferPosition As Long
        Dim json_BufferLength As Long

        json_SkipSpaces json_String, json_Index

        ' Store opening quote to look for matching closing quote
        json_Quote = VBA.Mid$(json_String, json_Index, 1)
        json_Index = json_Index + 1

        Do While json_Index > 0 And json_Index <= Len(json_String)
            json_Char = VBA.Mid$(json_String, json_Index, 1)

            Select Case json_Char
            Case "\"
                ' Escaped string, \\, or \/
                json_Index = json_Index + 1
                json_Char = VBA.Mid$(json_String, json_Index, 1)

                Select Case json_Char
                Case """", "\", "/", "'"
                    json_BufferAppend json_Buffer, json_Char, json_BufferPosition, json_BufferLength
                    json_Index = json_Index + 1
                Case "b"
                    json_BufferAppend json_Buffer, vbBack, json_BufferPosition, json_BufferLength
                    json_Index = json_Index + 1
                Case "f"
                    json_BufferAppend json_Buffer, vbFormFeed, json_BufferPosition, json_BufferLength
                    json_Index = json_Index + 1
                Case "n"
                    'json_BufferAppend json_Buffer, vbCrLf, json_BufferPosition, json_BufferLength
                    ' This should be treated as a line feed, not CrLf. - Adam 7/24/2023
                    json_BufferAppend json_Buffer, vbLf, json_BufferPosition, json_BufferLength
                    json_Index = json_Index + 1
                Case "r"
                    json_BufferAppend json_Buffer, vbCr, json_BufferPosition, json_BufferLength
                    json_Index = json_Index + 1
                Case "t"
                    json_BufferAppend json_Buffer, vbTab, json_BufferPosition, json_BufferLength
                    json_Index = json_Index + 1
                Case "u"
                    ' Unicode character escape (e.g. \u00a9 = Copyright)
                    json_Index = json_Index + 1
                    json_Code = VBA.Mid$(json_String, json_Index, 4)
                    json_BufferAppend json_Buffer, VBA.ChrW$(VBA.Val("&h" + json_Code)), json_BufferPosition, json_BufferLength
                    json_Index = json_Index + 4
                End Select
            Case json_Quote
                json_ParseString = json_BufferToString(json_Buffer, json_BufferPosition)
                json_Index = json_Index + 1
                Exit Function
            Case Else
                json_BufferAppend json_Buffer, json_Char, json_BufferPosition, json_BufferLength
                json_Index = json_Index + 1
            End Select
        Loop
    End Function

    Private Function json_ParseNumber(json_String As String, ByRef json_Index As Long) As Variant
        Dim json_Char As String
        Dim json_Value As String
        Dim json_IsLargeNumber As Boolean

        json_SkipSpaces json_String, json_Index

        Do While json_Index > 0 And json_Index <= Len(json_String)
            json_Char = VBA.Mid$(json_String, json_Index, 1)

            If VBA.InStr("+-0123456789.eE", json_Char) Then
                ' Unlikely to have massive number, so use simple append rather than buffer here
                json_Value = json_Value & json_Char
                json_Index = json_Index + 1
            Else
                ' Excel only stores 15 significant digits, so any numbers larger than that are truncated
                ' This can lead to issues when BIGINT's are used (e.g. for Ids or Credit Cards), as they will be invalid above 15 digits
                ' See: http://support.microsoft.com/kb/269370
                '
                ' Fix: Parse -> String, Convert -> String longer than 15/16 characters containing only numbers and decimal points -> Number
                ' (decimal doesn't factor into significant digit count, so if present check for 15 digits + decimal = 16)
                json_IsLargeNumber = IIf(InStr(json_Value, "."), Len(json_Value) >= 17, Len(json_Value) >= 16)
                If Not JsonOptions.UseDoubleForLargeNumbers And json_IsLargeNumber Then
                    json_ParseNumber = json_Value
                Else
                    ' VBA.Val does not use regional settings, so guard for comma is not needed
                    json_ParseNumber = VBA.Val(json_Value)
                End If
                Exit Function
            End If
        Loop
    End Function

    Private Function json_ParseKey(json_String As String, ByRef json_Index As Long) As String
        ' Parse key with single or double quotes
        If VBA.Mid$(json_String, json_Index, 1) = """" Or VBA.Mid$(json_String, json_Index, 1) = "'" Then
            json_ParseKey = json_ParseString(json_String, json_Index)
        ElseIf JsonOptions.AllowUnquotedKeys Then
            Dim json_Char As String
            Do While json_Index > 0 And json_Index <= Len(json_String)
                json_Char = VBA.Mid$(json_String, json_Index, 1)
                If (json_Char <> " ") And (json_Char <> ":") Then
                    json_ParseKey = json_ParseKey & json_Char
                    json_Index = json_Index + 1
                Else
                    Exit Do
                End If
            Loop
        Else
            Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(json_String, json_Index, "Expecting '""' or '''")
        End If

        ' Check for colon and skip if present or throw if not present
        json_SkipSpaces json_String, json_Index
        If VBA.Mid$(json_String, json_Index, 1) <> ":" Then
            Err.Raise 10001, "JSONConverter", json_ParseErrorMessage(json_String, json_Index, "Expecting ':'")
        Else
            json_Index = json_Index + 1
        End If
    End Function

    Private Function json_IsUndefined(ByVal json_Value As Variant) As Boolean
        ' Empty / Nothing -> undefined
        Select Case VBA.VarType(json_Value)
        Case VBA.vbEmpty
            json_IsUndefined = True
        Case VBA.vbObject
            Select Case VBA.TypeName(json_Value)
            Case "Empty", "Nothing"
                json_IsUndefined = True
            End Select
        End Select
    End Function

    Private Function json_Encode(ByVal json_Text As Variant) As String
        ' Reference: http://www.ietf.org/rfc/rfc4627.txt
        ' Escape: ", \, /, backspace, form feed, line feed, carriage return, tab
        Dim json_Index As Long
        Dim json_Char As String
        Dim json_AscCode As Long
        Dim json_Buffer As String
        Dim json_BufferPosition As Long
        Dim json_BufferLength As Long

        For json_Index = 1 To VBA.Len(json_Text)
            json_Char = VBA.Mid$(json_Text, json_Index, 1)
            json_AscCode = VBA.AscW(json_Char)

            ' When AscW returns a negative number, it returns the twos complement form of that number.
            ' To convert the twos complement notation into normal binary notation, add 0xFFF to the return result.
            ' https://support.microsoft.com/en-us/kb/272138
            If json_AscCode < 0 Then
                json_AscCode = json_AscCode + 65536
            End If

            ' From spec, ", \, and control characters must be escaped (solidus is optional)

            Select Case json_AscCode
            Case 34
                ' " -> 34 -> \"
                json_Char = "\"""
            Case 92
                ' \ -> 92 -> \\
                json_Char = "\\"
            Case 47
                ' / -> 47 -> \/ (optional)
                If JsonOptions.EscapeSolidus Then
                    json_Char = "\/"
                End If
            Case 8
                ' backspace -> 8 -> \b
                json_Char = "\b"
            Case 12
                ' form feed -> 12 -> \f
                json_Char = "\f"
            Case 10
                ' line feed -> 10 -> \n
                json_Char = "\n"
            Case 13
                ' carriage return -> 13 -> \r
                json_Char = "\r"
            Case 9
                ' tab -> 9 -> \t
                json_Char = "\t"
            Case 0 To 31
                ' Non-ascii characters -> convert to 4-digit hex
                json_Char = "\u" & VBA.Right$("0000" & VBA.Hex$(json_AscCode), 4)
            Case 127 To 65535
                ' Unicode character range
                If Not JsonOptions.AllowUnicodeChars Then
                    json_Char = "\u" & VBA.Right$("0000" & VBA.Hex$(json_AscCode), 4)
                End If
            End Select

            json_BufferAppend json_Buffer, json_Char, json_BufferPosition, json_BufferLength
        Next json_Index

        json_Encode = json_BufferToString(json_Buffer, json_BufferPosition)
    End Function

    Private Function json_Peek(json_String As String, ByVal json_Index As Long, Optional json_NumberOfCharacters As Long = 1) As String
        ' "Peek" at the next number of characters without incrementing json_Index (ByVal instead of ByRef)
        json_SkipSpaces json_String, json_Index
        json_Peek = VBA.Mid$(json_String, json_Index, json_NumberOfCharacters)
    End Function

    Private Sub json_SkipSpaces(json_String As String, ByRef json_Index As Long)
        ' Increment index to skip over spaces
        Do While json_Index > 0 And json_Index <= VBA.Len(json_String) And VBA.Mid$(json_String, json_Index, 1) = " "
            json_Index = json_Index + 1
        Loop
    End Sub

    Private Function json_StringIsLargeNumber(json_String As Variant) As Boolean
        ' Check if the given string is considered a "large number"
        ' (See json_ParseNumber)

        Dim json_Length As Long
        Dim json_CharIndex As Long
        json_Length = VBA.Len(json_String)

        ' Length with be at least 16 characters and assume will be less than 100 characters
        If json_Length >= 16 And json_Length <= 100 Then
            Dim json_CharCode As String

            json_StringIsLargeNumber = True

            For json_CharIndex = 1 To json_Length
                json_CharCode = VBA.Asc(VBA.Mid$(json_String, json_CharIndex, 1))
                Select Case json_CharCode
                ' Look for .|0-9|E|e
                Case 46, 48 To 57, 69, 101
                    ' Continue through characters
                Case Else
                    json_StringIsLargeNumber = False
                    Exit Function
                End Select
            Next json_CharIndex
        End If
    End Function

    Private Function json_ParseErrorMessage(json_String As String, ByRef json_Index As Long, errorMessage As String) As Variant
        ' Provide detailed parse error message, including details of where and what occurred
        '
        ' Example:
        ' Error parsing JSON:
        ' {"abcde":True}
        '          ^
        ' Expecting 'STRING', 'NUMBER', null, true, false, '{', or '['

        Dim json_StartIndex As Long
        Dim json_StopIndex As Long

        ' Include 10 characters before and after error (if possible)
        json_StartIndex = json_Index - 10
        json_StopIndex = json_Index + 10
        If json_StartIndex <= 0 Then
            json_StartIndex = 1
        End If
        If json_StopIndex > VBA.Len(json_String) Then
            json_StopIndex = VBA.Len(json_String)
        End If

        json_ParseErrorMessage = "Error parsing JSON:" & VBA.vbNewLine & _
                                 VBA.Mid$(json_String, json_StartIndex, json_StopIndex - json_StartIndex + 1) & VBA.vbNewLine & _
                                 VBA.Space$(json_Index - json_StartIndex) & "^" & VBA.vbNewLine & _
                                 errorMessage
    End Function

    Private Sub json_BufferAppend(ByRef json_Buffer As String, _
                                  ByRef json_Append As Variant, _
                                  ByRef json_BufferPosition As Long, _
                                  ByRef json_BufferLength As Long)
        ' VBA can be slow to append strings due to allocating a new string for each append
        ' Instead of using the traditional append, allocate a large empty string and then copy string at append position
        '
        ' Example:
        ' Buffer: "abc  "
        ' Append: "def"
        ' Buffer Position: 3
        ' Buffer Length: 5
        '
        ' Buffer position + Append length > Buffer length -> Append chunk of blank space to buffer
        ' Buffer: "abc       "
        ' Buffer Length: 10
        '
        ' Put "def" into buffer at position 3 (0-based)
        ' Buffer: "abcdef    "
        '
        ' Approach based on cStringBuilder from vbAccelerator
        ' http://www.vbaccelerator.com/home/VB/Code/Techniques/RunTime_Debug_Tracing/VB6_Tracer_Utility_zip_cStringBuilder_cls.asp
        '
        ' and clsStringAppend from Philip Swannell
        ' https://github.com/VBA-tools/VBA-JSON/pull/82

        Dim json_AppendLength As Long
        Dim json_LengthPlusPosition As Long

        json_AppendLength = VBA.Len(json_Append)
        json_LengthPlusPosition = json_AppendLength + json_BufferPosition

        If json_LengthPlusPosition > json_BufferLength Then
            ' Appending would overflow buffer, add chunk
            ' (double buffer length or append length, whichever is bigger)
            Dim json_AddedLength As Long
            json_AddedLength = IIf(json_AppendLength > json_BufferLength, json_AppendLength, json_BufferLength)

            json_Buffer = json_Buffer & VBA.Space$(json_AddedLength)
            json_BufferLength = json_BufferLength + json_AddedLength
        End If

        ' Note: Namespacing with VBA.Mid$ doesn't work properly here, throwing compile error:
        ' Function call on left-hand side of assignment must return Variant or Object
        Mid$(json_Buffer, json_BufferPosition + 1, json_AppendLength) = CStr(json_Append)
        json_BufferPosition = json_BufferPosition + json_AppendLength
    End Sub

    Private Function json_BufferToString(ByRef json_Buffer As String, ByVal json_BufferPosition As Long) As String
        If json_BufferPosition > 0 Then
            json_BufferToString = VBA.Left$(json_Buffer, json_BufferPosition)
        End If
    End Function
    
End Module

================================================
FILE: Testing/Linked.csv
================================================
ID,Color
1,Red
2,Orange
3,Yellow
4,Green
5,Blue

================================================
FILE: Testing/Testing.accdb.src/dbs-properties.json
================================================
{
  "Info": {
    "Class": "clsDbProperty",
    "Description": "Database Properties (DAO)"
  },
  "Items": {
    "AccessVersion": {
      "Value": "09.50",
      "Type": 10
    },
    "AllowBuiltInToolbars": {
      "Value": true,
      "Type": 1
    },
    "AllowDatasheetSchema": {
      "Value": true,
      "Type": 1
    },
    "AllowFullMenus": {
      "Value": true,
      "Type": 1
    },
    "AllowShortcutMenus": {
      "Value": true,
      "Type": 1
    },
    "AllowSpecialKeys": {
      "Value": true,
      "Type": 1
    },
    "AllowToolbarChanges": {
      "Value": true,
      "Type": 1
    },
    "ANSI Query Mode": {
      "Value": 0,
      "Type": 4
    },
    "AppIcon": {
      "Value": "App Icon.ico",
      "Type": 10
    },
    "AppTitle": {
      "Value": "Version Control Testing",
      "Type": 10
    },
    "Auto Compact": {
      "Value": 0,
      "Type": 4
    },
    "Build": {
      "Value": 720,
      "Type": 4
    },
    "CheckTruncatedNumFields": {
      "Value": 1,
      "Type": 4
    },
    "Clear Cache on Close": {
      "Value": 0,
      "Type": 4
    },
    "CollatingOrder": {
      "Value": 1033,
      "Type": 3
    },
    "Connect": {
      "Value": "",
      "Type": 12
    },
    "DAOProperty": {
      "Value": "DAO",
      "Type": 10
    },
    "Date stored as Text": {
      "Value": "11/17/2023 2:15:08 PM",
      "Type": 10
    },
    "DesignMasterID": {
      "Value": "",
      "Type": 15
    },
    "DesignWithData": {
      "Value": true,
      "Type": 1
    },
    "HasOfflineLists": {
      "Value": 70,
      "Type": 3
    },
    "ISO8601 Date as Text": {
      "Value": "2023-11-17T17:51:00.000Z",
      "Type": 10
    },
    "Name": {
      "Value": "rel:Testing.accdb",
      "Type": 12
    },
    "NavPane Category": {
      "Value": 0,
      "Type": 4
    },
    "NavPane Closed": {
      "Value": 0,
      "Type": 4
    },
    "NavPane Sort By": {
      "Value": 1,
      "Type": 4
    },
    "NavPane View By": {
      "Value": 0,
      "Type": 4
    },
    "NavPane Width": {
      "Value": 215,
      "Type": 4
    },
    "Never Cache": {
      "Value": 0,
      "Type": 4
    },
    "Picture Property Storage Format": {
      "Value": 0,
      "Type": 4
    },
    "ProjVer": {
      "Value": 119,
      "Type": 3
    },
    "QueryTimeout": {
      "Value": 60,
      "Type": 3
    },
    "RecordsAffected": {
      "Value": 0,
      "Type": 4
    },
    "ReplicaID": {
      "Value": "",
      "Type": 15
    },
    "SavedDateValue": {
      "Value": "2023-11-17T19:35:41.000Z",
      "Type": 8
    },
    "Show Navigation Pane Search Bar": {
      "Value": 1,
      "Type": 4
    },
    "Show Values in Indexed": {
      "Value": 1,
      "Type": 4
    },
    "Show Values in Non-Indexed": {
      "Value": 1,
      "Type": 4
    },
    "Show Values in Remote": {
      "Value": 0,
      "Type": 4
    },
    "Show Values Limit": {
      "Value": 1000,
      "Type": 4
    },
    "ShowDocumentTabs": {
      "Value": true,
      "Type": 1
    },
    "StartUpShowDBWindow": {
      "Value": true,
      "Type": 1
    },
    "StartUpShowStatusBar": {
      "Value": true,
      "Type": 1
    },
    "Theme Resource Name": {
      "Value": "Angles",
      "Type": 10
    },
    "Themed Form Controls": {
      "Value": 1,
      "Type": 4
    },
    "Transactions": {
      "Value": true,
      "Type": 1
    },
    "Updatable": {
      "Value": true,
      "Type": 1
    },
    "Use Microsoft Access 2007 compatible cache": {
      "Value": 0,
      "Type": 4
    },
    "UseAppIconForFrmRpt": {
      "Value": true,
      "Type": 1
    },
    "UseMDIMode": {
      "Value": 0,
      "Type": 2
    },
    "Version": {
      "Value": "14.0",
      "Type": 12
    },
    "WebDesignMode": {
      "Value": 0,
      "Type": 2
    }
  }
}


================================================
FILE: Testing/Testing.accdb.src/documents.json
================================================
{
  "Info": {
    "Class": "clsDbDocument",
    "Description": "Database Documents Properties (DAO)"
  },
  "Items": {
    "Databases": {
      "SummaryInfo": {
        "Author": "Adam Waller",
        "Hyperlink base": "https://github.com/joyfullservice/msaccess-vcs-integration/",
        "Subject": "Test functionality of Version Control System",
        "Title": "VCS Testing"
      }
    },
    "Modules": {
      "basUtility": {
        "Description": "My special description on the code module."
      }
    },
    "Tables": {
      "tblHidden": {
        "Description": "This table should be hidden."
      },
      "tblLinkedCSV": {
        "Description": "This is simply a test CSV file that were are linking to."
      },
      "tblSaveXML": {
        "Description": "Saved description in XML table."
      }
    }
  }
}


================================================
FILE: Testing/Testing.accdb.src/forms/Form1.bas
================================================
Version =20
VersionRequired =20
Begin Form
    DividingLines = NotDefault
    AllowDesignChanges = NotDefault
    DefaultView =0
    PictureAlignment =2
    DatasheetGridlinesBehavior =3
    GridX =24
    GridY =24
    Width =8884
    DatasheetFontHeight =11
    ItemSuffix =1
    Right =25575
    Bottom =12555
    RecSrcDt = Begin
        0xef22ea99ebc8e540
    End
    RecordSource ="SELECT tblAttachment.ImageObject FROM tblAttachment; "
    DatasheetFontName ="Franklin Gothic Book"
    AllowDatasheetView =0
    FilterOnLoad =0
    ShowPageMargins =0
    DisplayOnSharePointSite =1
    DatasheetAlternateBackColor =15921906
    DatasheetGridlinesColor12 =0
    FitToScreen =1
    DatasheetBackThemeColorIndex =1
    BorderThemeColorIndex =3
    ThemeFontIndex =1
    ForeThemeColorIndex =0
    AlternateBackThemeColorIndex =1
    AlternateBackShade =95.0
    Begin
        Begin Label
            BackStyle =0
            FontSize =11
            FontName ="Calibri"
            ThemeFontIndex =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =0
            BorderTint =50.0
            ForeThemeColorIndex =0
            ForeTint =50.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin BoundObjectFrame
            AddColon = NotDefault
            SizeMode =3
            SpecialEffect =2
            BorderLineStyle =0
            LabelX =-1800
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin TextBox
            AddColon = NotDefault
            FELineBreak = NotDefault
            BorderLineStyle =0
            LabelX =-1800
            FontSize =11
            FontName ="Calibri"
            AsianLineBreak =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            ThemeFontIndex =1
            ForeThemeColorIndex =0
            ForeTint =75.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin Section
            Height =7560
            Name ="Detail"
            AutoHeight =1
            AlternateBackThemeColorIndex =1
            AlternateBackShade =95.0
            BackThemeColorIndex =1
            Begin
                Begin BoundObjectFrame
                    OverlapFlags =85
                    Left =2880
                    Top =2100
                    Width =855
                    Height =855
                    BorderColor =10921638
                    Name ="ImageObject"
                    ControlSource ="ImageObject"
                    GridlineColor =10921638

                    LayoutCachedLeft =2880
                    LayoutCachedTop =2100
                    LayoutCachedWidth =3735
                    LayoutCachedHeight =2955
                    Begin
                        Begin Label
                            OverlapFlags =85
                            TextFontFamily =0
                            Left =1080
                            Top =2100
                            Width =1260
                            Height =315
                            BorderColor =8355711
                            ForeColor =8355711
                            Name ="Label0"
                            Caption ="ImageObject"
                            FontName ="Franklin Gothic Book"
                            GridlineColor =10921638
                            LayoutCachedLeft =1080
                            LayoutCachedTop =2100
                            LayoutCachedWidth =2340
                            LayoutCachedHeight =2415
                        End
                    End
                End
            End
        End
    End
End


================================================
FILE: Testing/Testing.accdb.src/forms/frmColors.bas
================================================
Version =20
VersionRequired =20
Begin Form
    RecordSelectors = NotDefault
    NavigationButtons = NotDefault
    DividingLines = NotDefault
    AllowDesignChanges = NotDefault
    DefaultView =0
    PictureAlignment =2
    DatasheetGridlinesBehavior =3
    GridX =24
    GridY =24
    Width =14400
    DatasheetFontHeight =11
    ItemSuffix =50
    Right =19650
    Bottom =12585
    RecSrcDt = Begin
        0x8b5c5de351a8e540
    End
    DatasheetFontName ="Franklin Gothic Book"
    AllowDatasheetView =0
    FilterOnLoad =0
    ShowPageMargins =0
    DisplayOnSharePointSite =1
    DatasheetAlternateBackColor =15921906
    DatasheetGridlinesColor12 =0
    FitToScreen =1
    DatasheetBackThemeColorIndex =1
    BorderThemeColorIndex =3
    ThemeFontIndex =1
    ForeThemeColorIndex =0
    AlternateBackThemeColorIndex =1
    AlternateBackShade =95.0
    Begin
        Begin Label
            BackStyle =0
            FontSize =11
            FontName ="Calibri"
            ThemeFontIndex =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =0
            BorderTint =50.0
            ForeThemeColorIndex =0
            ForeTint =50.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin Rectangle
            SpecialEffect =3
            BackStyle =0
            BorderLineStyle =0
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin Line
            BorderLineStyle =0
            BorderThemeColorIndex =0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin Image
            BackStyle =0
            OldBorderStyle =0
            BorderLineStyle =0
            SizeMode =3
            PictureAlignment =2
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin CommandButton
            FontSize =11
            FontWeight =400
            FontName ="Calibri"
            ForeThemeColorIndex =0
            ForeTint =75.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
            UseTheme =1
            Shape =1
            Gradient =12
            BackThemeColorIndex =4
            BackTint =60.0
            BorderLineStyle =0
            BorderThemeColorIndex =4
            BorderTint =60.0
            ThemeFontIndex =1
            HoverThemeColorIndex =4
            HoverTint =40.0
            PressedThemeColorIndex =4
            PressedShade =75.0
            HoverForeThemeColorIndex =0
            HoverForeTint =75.0
            PressedForeThemeColorIndex =0
            PressedForeTint =75.0
        End
        Begin TextBox
            AddColon = NotDefault
            FELineBreak = NotDefault
            BorderLineStyle =0
            LabelX =-1800
            FontSize =11
            FontName ="Calibri"
            AsianLineBreak =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            ThemeFontIndex =1
            ForeThemeColorIndex =0
            ForeTint =75.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin UnboundObjectFrame
            SpecialEffect =2
            OldBorderStyle =1
            ThemeFontIndex =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            ForeThemeColorIndex =2
            ForeShade =50.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin FormHeader
            Height =780
            Name ="FormHeader"
            AlternateBackThemeColorIndex =1
            AlternateBackShade =95.0
            BackThemeColorIndex =2
            BackTint =20.0
        End
        Begin Section
            Height =7050
            Name ="Detail"
            AlternateBackThemeColorIndex =1
            AlternateBackShade =95.0
            BackThemeColorIndex =1
            Begin
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =2880
                    Top =1620
                    Width =840
                    Height =360
                    BorderColor =8355711
                    Name ="Label0"
                    Caption ="Type"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =2880
                    LayoutCachedTop =1620
                    LayoutCachedWidth =3720
                    LayoutCachedHeight =1980
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Line
                    OverlapFlags =85
                    Left =480
                    Top =2100
                    Width =12540
                    Name ="Line1"
                    GridlineColor =10921638
                    LayoutCachedLeft =480
                    LayoutCachedTop =2100
                    LayoutCachedWidth =13020
                    LayoutCachedHeight =2100
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =4320
                    Top =1620
                    Width =1260
                    Height =360
                    BorderColor =8355711
                    Name ="Label3"
                    Caption ="Theme Color"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =4320
                    LayoutCachedTop =1620
                    LayoutCachedWidth =5580
                    LayoutCachedHeight =1980
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    OverlapFlags =93
                    TextFontFamily =0
                    Left =7200
                    Top =1620
                    Width =1440
                    Height =360
                    BorderColor =8355711
                    Name ="Label4"
                    Caption ="Pallet Color"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =7200
                    LayoutCachedTop =1620
                    LayoutCachedWidth =8640
                    LayoutCachedHeight =1980
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    OverlapFlags =93
                    TextFontFamily =0
                    Left =10080
                    Top =1620
                    Width =1305
                    Height =360
                    BorderColor =8355711
                    Name ="Label5"
                    Caption ="Default Color"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =10080
                    LayoutCachedTop =1620
                    LayoutCachedWidth =11385
                    LayoutCachedHeight =1980
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =2880
                    Top =2280
                    Width =870
                    Height =360
                    BorderColor =8355711
                    Name ="Label6"
                    Caption ="Text Box"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =2880
                    LayoutCachedTop =2280
                    LayoutCachedWidth =3750
                    LayoutCachedHeight =2640
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =2880
                    Top =2820
                    Width =870
                    Height =360
                    BorderColor =8355711
                    Name ="Label7"
                    Caption ="Label"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =2880
                    LayoutCachedTop =2820
                    LayoutCachedWidth =3750
                    LayoutCachedHeight =3180
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =2880
                    Top =3300
                    Width =870
                    Height =360
                    BorderColor =8355711
                    Name ="Label8"
                    Caption ="Button"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =2880
                    LayoutCachedTop =3300
                    LayoutCachedWidth =3750
                    LayoutCachedHeight =3660
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =2880
                    Top =3780
                    Width =870
                    Height =360
                    BorderColor =8355711
                    Name ="Label9"
                    Caption ="Box"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =2880
                    LayoutCachedTop =3780
                    LayoutCachedWidth =3750
                    LayoutCachedHeight =4140
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =600
                    Top =2280
                    Width =1635
                    Height =360
                    BorderColor =8355711
                    Name ="Label12"
                    Caption ="Orange, Accent 2"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =600
                    LayoutCachedTop =2280
                    LayoutCachedWidth =2235
                    LayoutCachedHeight =2640
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin TextBox
                    OverlapFlags =85
                    TextFontFamily =0
                    IMESentenceMode =3
                    Left =4320
                    Top =2280
                    Width =1200
                    Height =315
                    BorderColor =10921638
                    ForeColor =4210752
                    Name ="Text13"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =4320
                    LayoutCachedTop =2280
                    LayoutCachedWidth =5520
                    LayoutCachedHeight =2595
                    BackThemeColorIndex =5
                End
                Begin TextBox
                    OverlapFlags =85
                    TextFontFamily =0
                    IMESentenceMode =3
                    Left =7200
                    Top =2280
                    Width =1200
                    Height =315
                    TabIndex =1
                    BackColor =5676533
                    BorderColor =10921638
                    ForeColor =4210752
                    Name ="Text15"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =7200
                    LayoutCachedTop =2280
                    LayoutCachedWidth =8400
                    LayoutCachedHeight =2595
                    BackThemeColorIndex =-1
                End
                Begin TextBox
                    OverlapFlags =85
                    TextFontFamily =0
                    IMESentenceMode =3
                    Left =8640
                    Top =2280
                    Width =1200
                    Height =315
                    TabIndex =2
                    BackColor =3439082
                    BorderColor =10921638
                    ForeColor =4210752
                    Name ="Text16"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =8640
                    LayoutCachedTop =2280
                    LayoutCachedWidth =9840
                    LayoutCachedHeight =2595
                    BackThemeColorIndex =-1
                End
                Begin TextBox
                    OverlapFlags =85
                    TextFontFamily =0
                    IMESentenceMode =3
                    Left =11520
                    Top =2280
                    Width =1200
                    Height =315
                    TabIndex =3
                    BackColor =-2147483598
                    BorderColor =10921638
                    ForeColor =4210752
                    Name ="Text18"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =11520
                    LayoutCachedTop =2280
                    LayoutCachedWidth =12720
                    LayoutCachedHeight =2595
                    BackThemeColorIndex =-1
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =11520
                    Top =1620
                    Width =1305
                    Height =360
                    BorderColor =8355711
                    Name ="Label19"
                    Caption ="System Color"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =11520
                    LayoutCachedTop =1620
                    LayoutCachedWidth =12825
                    LayoutCachedHeight =1980
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    OverlapFlags =87
                    TextFontFamily =0
                    Left =8640
                    Top =1620
                    Width =1440
                    Height =360
                    BorderColor =8355711
                    Name ="Label20"
                    Caption ="Custom Color"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =8640
                    LayoutCachedTop =1620
                    LayoutCachedWidth =10080
                    LayoutCachedHeight =1980
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    BackStyle =1
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =4320
                    Top =2760
                    Width =1200
                    Height =300
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label21"
                    Caption =" "
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =4320
                    LayoutCachedTop =2760
                    LayoutCachedWidth =5520
                    LayoutCachedHeight =3060
                    BackThemeColorIndex =5
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =10080
                    Top =2760
                    Width =1200
                    Height =300
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label22"
                    Caption =" "
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =10080
                    LayoutCachedTop =2760
                    LayoutCachedWidth =11280
                    LayoutCachedHeight =3060
                End
                Begin Label
                    BackStyle =1
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =7200
                    Top =2760
                    Width =1200
                    Height =300
                    BackColor =5676533
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label23"
                    Caption =" "
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =7200
                    LayoutCachedTop =2760
                    LayoutCachedWidth =8400
                    LayoutCachedHeight =3060
                    BackThemeColorIndex =-1
                End
                Begin Label
                    BackStyle =1
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =8640
                    Top =2760
                    Width =1200
                    Height =300
                    BackColor =3439082
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label24"
                    Caption =" "
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =8640
                    LayoutCachedTop =2760
                    LayoutCachedWidth =9840
                    LayoutCachedHeight =3060
                    BackThemeColorIndex =-1
                End
                Begin Label
                    BackStyle =1
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =11520
                    Top =2760
                    Width =1200
                    Height =300
                    BackColor =-2147483598
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label25"
                    Caption =" "
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =11520
                    LayoutCachedTop =2760
                    LayoutCachedWidth =12720
                    LayoutCachedHeight =3060
                    BackThemeColorIndex =-1
                End
                Begin TextBox
                    OverlapFlags =85
                    TextFontFamily =0
                    IMESentenceMode =3
                    Left =10080
                    Top =2280
                    Width =1260
                    Height =315
                    TabIndex =4
                    BorderColor =10921638
                    ForeColor =4210752
                    Name ="Text28"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =10080
                    LayoutCachedTop =2280
                    LayoutCachedWidth =11340
                    LayoutCachedHeight =2595
                End
                Begin TextBox
                    OverlapFlags =85
                    TextFontFamily =0
                    IMESentenceMode =3
                    Left =5760
                    Top =2280
                    Width =1200
                    Height =315
                    TabIndex =5
                    BorderColor =10921638
                    ForeColor =4210752
                    Name ="Text30"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =5760
                    LayoutCachedTop =2280
                    LayoutCachedWidth =6960
                    LayoutCachedHeight =2595
                    BackThemeColorIndex =5
                    BackTint =60.0
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =5760
                    Top =1620
                    Width =1260
                    Height =360
                    BorderColor =8355711
                    Name ="Label31"
                    Caption ="Shade"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =5760
                    LayoutCachedTop =1620
                    LayoutCachedWidth =7020
                    LayoutCachedHeight =1980
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Label
                    BackStyle =1
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =5760
                    Top =2760
                    Width =1200
                    Height =300
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label32"
                    Caption =" "
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =5760
                    LayoutCachedTop =2760
                    LayoutCachedWidth =6960
                    LayoutCachedHeight =3060
                    BackThemeColorIndex =5
                    BackTint =60.0
                End
                Begin CommandButton
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =4320
                    Top =3240
                    Width =1200
                    TabIndex =6
                    ForeColor =4210752
                    Name ="Command33"
                    Caption ="Command33"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =4320
                    LayoutCachedTop =3240
                    LayoutCachedWidth =5520
                    LayoutCachedHeight =3600
                    Gradient =0
                    BackThemeColorIndex =5
                    BackTint =100.0
                    BorderColor =11710639
                    HoverColor =13355721
                    PressedColor =6249563
                    HoverForeColor =4210752
                    PressedForeColor =4210752
                End
                Begin CommandButton
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =5760
                    Top =3240
                    Width =1200
                    TabIndex =7
                    ForeColor =4210752
                    Name ="Command34"
                    Caption ="Command33"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =5760
                    LayoutCachedTop =3240
                    LayoutCachedWidth =6960
                    LayoutCachedHeight =3600
                    Gradient =0
                    BackThemeColorIndex =5
                    BorderColor =11710639
                    HoverColor =13355721
                    PressedColor =6249563
                    HoverForeColor =4210752
                    PressedForeColor =4210752
                End
                Begin CommandButton
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =7200
                    Top =3240
                    Width =1200
                    TabIndex =8
                    ForeColor =4210752
                    Name ="Command35"
                    Caption ="Command33"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =7200
                    LayoutCachedTop =3240
                    LayoutCachedWidth =8400
                    LayoutCachedHeight =3600
                    Gradient =0
                    BackColor =5676533
                    BackThemeColorIndex =-1
                    BackTint =100.0
                    BorderColor =11710639
                    HoverColor =13355721
                    PressedColor =6249563
                    HoverForeColor =4210752
                    PressedForeColor =4210752
                End
                Begin CommandButton
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =8640
                    Top =3240
                    Width =1200
                    TabIndex =9
                    ForeColor =4210752
                    Name ="Command36"
                    Caption ="Command33"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =8640
                    LayoutCachedTop =3240
                    LayoutCachedWidth =9840
                    LayoutCachedHeight =3600
                    Gradient =0
                    BackColor =3439082
                    BackThemeColorIndex =-1
                    BackTint =100.0
                    BorderColor =11710639
                    HoverColor =13355721
                    PressedColor =6249563
                    HoverForeColor =4210752
                    PressedForeColor =4210752
                End
                Begin CommandButton
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =10080
                    Top =3240
                    Width =1200
                    TabIndex =10
                    ForeColor =4210752
                    Name ="Command37"
                    Caption ="Command33"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =10080
                    LayoutCachedTop =3240
                    LayoutCachedWidth =11280
                    LayoutCachedHeight =3600
                    BackColor =11710639
                    BorderColor =11710639
                    HoverColor =13355721
                    PressedColor =6249563
                    HoverForeColor =4210752
                    PressedForeColor =4210752
                End
                Begin CommandButton
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =11520
                    Top =3240
                    Width =1200
                    TabIndex =11
                    ForeColor =4210752
                    Name ="Command38"
                    Caption ="Command33"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638

                    LayoutCachedLeft =11520
                    LayoutCachedTop =3240
                    LayoutCachedWidth =12720
                    LayoutCachedHeight =3600
                    Gradient =0
                    BackColor =-2147483598
                    BackThemeColorIndex =-1
                    BackTint =100.0
                    BorderColor =11710639
                    HoverColor =13355721
                    PressedColor =6249563
                    HoverForeColor =4210752
                    PressedForeColor =4210752
                End
                Begin Rectangle
                    BackStyle =1
                    OverlapFlags =85
                    Left =4320
                    Top =3780
                    Width =1200
                    Height =360
                    BorderColor =10921638
                    Name ="Box41"
                    GridlineColor =10921638
                    LayoutCachedLeft =4320
                    LayoutCachedTop =3780
                    LayoutCachedWidth =5520
                    LayoutCachedHeight =4140
                    BackThemeColorIndex =5
                End
                Begin Rectangle
                    BackStyle =1
                    OverlapFlags =85
                    Left =5760
                    Top =3780
                    Width =1200
                    Height =360
                    BorderColor =10921638
                    Name ="Box42"
                    GridlineColor =10921638
                    LayoutCachedLeft =5760
                    LayoutCachedTop =3780
                    LayoutCachedWidth =6960
                    LayoutCachedHeight =4140
                    BackThemeColorIndex =5
                    BackTint =60.0
                End
                Begin Rectangle
                    BackStyle =1
                    OverlapFlags =85
                    Left =7200
                    Top =3780
                    Width =1200
                    Height =360
                    BackColor =5676533
                    BorderColor =10921638
                    Name ="Box43"
                    GridlineColor =10921638
                    LayoutCachedLeft =7200
                    LayoutCachedTop =3780
                    LayoutCachedWidth =8400
                    LayoutCachedHeight =4140
                    BackThemeColorIndex =-1
                End
                Begin Rectangle
                    BackStyle =1
                    OverlapFlags =85
                    Left =8640
                    Top =3780
                    Width =1200
                    Height =360
                    BackColor =3439082
                    BorderColor =10921638
                    Name ="Box44"
                    GridlineColor =10921638
                    LayoutCachedLeft =8640
                    LayoutCachedTop =3780
                    LayoutCachedWidth =9840
                    LayoutCachedHeight =4140
                    BackThemeColorIndex =-1
                End
                Begin Rectangle
                    OverlapFlags =85
                    Left =10080
                    Top =3780
                    Width =1200
                    Height =360
                    BorderColor =10921638
                    Name ="Box45"
                    GridlineColor =10921638
                    LayoutCachedLeft =10080
                    LayoutCachedTop =3780
                    LayoutCachedWidth =11280
                    LayoutCachedHeight =4140
                End
                Begin Rectangle
                    BackStyle =1
                    OverlapFlags =85
                    Left =11520
                    Top =3780
                    Width =1200
                    Height =360
                    BackColor =-2147483598
                    BorderColor =10921638
                    Name ="Box46"
                    GridlineColor =10921638
                    LayoutCachedLeft =11520
                    LayoutCachedTop =3780
                    LayoutCachedWidth =12720
                    LayoutCachedHeight =4140
                    BackThemeColorIndex =-1
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =600
                    Top =4860
                    Width =1860
                    Height =360
                    BorderColor =8355711
                    Name ="Label48"
                    Caption ="Screenshot Image"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =600
                    LayoutCachedTop =4860
                    LayoutCachedWidth =2460
                    LayoutCachedHeight =5220
                    ForeThemeColorIndex =-1
                    ForeTint =100.0
                End
                Begin Image
                    PictureType =2
                    Left =2760
                    Top =4620
                    Width =10245
                    Height =2190
                    BorderColor =10921638
                    Name ="Image49"
                    Picture ="Colors"
                    GridlineColor =10921638

                    LayoutCachedLeft =2760
                    LayoutCachedTop =4620
                    LayoutCachedWidth =13005
                    LayoutCachedHeight =6810
                    TabIndex =12
                End
            End
        End
        Begin FormFooter
            Height =660
            Name ="FormFooter"
            AlternateBackThemeColorIndex =1
            AlternateBackShade =95.0
            BackThemeColorIndex =1
        End
    End
End
CodeBehindForm
' See "frmColors.cls"


================================================
FILE: Testing/Testing.accdb.src/forms/frmColors.cls
================================================
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Compare Database
Option Explicit


================================================
FILE: Testing/Testing.accdb.src/forms/frmExtendedChars.bas
================================================
Version =20
VersionRequired =20
Begin Form
    DividingLines = NotDefault
    AllowDesignChanges = NotDefault
    DefaultView =0
    PictureAlignment =2
    DatasheetGridlinesBehavior =3
    GridX =24
    GridY =24
    Width =8884
    DatasheetFontHeight =11
    ItemSuffix =2
    Right =25320
    Bottom =14385
    RecSrcDt = Begin
        0xbd57868e6cf5e540
    End
    DatasheetFontName ="Franklin Gothic Book"
    AllowDatasheetView =0
    FilterOnLoad =0
    ShowPageMargins =0
    DisplayOnSharePointSite =1
    DatasheetAlternateBackColor =15921906
    DatasheetGridlinesColor12 =0
    FitToScreen =1
    DatasheetBackThemeColorIndex =1
    BorderThemeColorIndex =3
    ThemeFontIndex =1
    ForeThemeColorIndex =0
    AlternateBackThemeColorIndex =1
    AlternateBackShade =95.0
    Begin
        Begin Label
            BackStyle =0
            FontSize =11
            FontName ="Calibri"
            ThemeFontIndex =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =0
            BorderTint =50.0
            ForeThemeColorIndex =0
            ForeTint =50.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin Section
            Height =7560
            Name ="Detail"
            AutoHeight =1
            AlternateBackThemeColorIndex =1
            AlternateBackShade =95.0
            BackThemeColorIndex =1
            Begin
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =1080
                    Top =1140
                    Width =3420
                    Height =600
                    FontSize =18
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label0"
                    Caption ="Extëndëd Cháráctërs"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =1080
                    LayoutCachedTop =1140
                    LayoutCachedWidth =4500
                    LayoutCachedHeight =1740
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =0
                    Left =1080
                    Top =2220
                    Width =3420
                    Height =600
                    FontSize =18
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label1"
                    Caption ="Unicode 👍 🚀 ☺"
                    FontName ="Franklin Gothic Book"
                    GridlineColor =10921638
                    LayoutCachedLeft =1080
                    LayoutCachedTop =2220
                    LayoutCachedWidth =4500
                    LayoutCachedHeight =2820
                End
            End
        End
    End
End
CodeBehindForm
' See "frmExtendedChars.cls"


================================================
FILE: Testing/Testing.accdb.src/forms/frmExtendedChars.cls
================================================
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Compare Database
Option Explicit


'——————————————————————————————————————————————————————————————————————————————————————————¬
' This module is used to prove that all ASCII characters survive the export\import cycle.  |
'——————————————————————————————————————————————————————————————————————————————————————————+

' ASCII Table Using Windows-1252 codepage
'  Table generated using https://ozh.github.io/ascii-tables/
'
' +=====+=====+==========+=======+
' | Dec | Hex |  Binary  | Char  |
' +=====+=====+==========+=======+
' |   0 | 00  | 00000000 | NUL   |
' +-----+-----+----------+-------+
' |   1 | 01  | 00000001 | SOH   |
' +-----+-----+----------+-------+
' |   2 | 02  | 00000010 | STX   |
' +-----+-----+----------+-------+
' |   3 | 03  | 00000011 | ETX   |
' +-----+-----+----------+-------+
' |   4 | 04  | 00000100 | EOT   |
' +-----+-----+----------+-------+
' |   5 | 05  | 00000101 | ENQ   |
' +-----+-----+----------+-------+
' |   6 | 06  | 00000110 | ACK   |
' +-----+-----+----------+-------+
' |   7 | 07  | 00000111 | BEL   |
' +-----+-----+----------+-------+
' |   8 | 08  | 00001000 | BS    |
' +-----+-----+----------+-------+
' |   9 | 09  | 00001001 | HT    |
' +-----+-----+----------+-------+
' |  10 | 0A  | 00001010 | LF    |
' +-----+-----+----------+-------+
' |  11 | 0B  | 00001011 | VT    |
' +-----+-----+----------+-------+
' |  12 | 0C  | 00001100 | FF    |
' +-----+-----+----------+-------+
' |  13 | 0D  | 00001101 | CR    |
' +-----+-----+----------+-------+
' |  14 | 0E  | 00001110 | SO    |
' +-----+-----+----------+-------+
' |  15 | 0F  | 00001111 | SI    |
' +-----+-----+----------+-------+
' |  16 | 10  | 00010000 | DLE   |
' +-----+-----+----------+-------+
' |  17 | 11  | 00010001 | DC1   |
' +-----+-----+----------+-------+
' |  18 | 12  | 00010010 | DC2   |
' +-----+-----+----------+-------+
' |  19 | 13  | 00010011 | DC3   |
' +-----+-----+----------+-------+
' |  20 | 14  | 00010100 | DC4   |
' +-----+-----+----------+-------+
' |  21 | 15  | 00010101 | NAK   |
' +-----+-----+----------+-------+
' |  22 | 16  | 00010110 | SYN   |
' +-----+-----+----------+-------+
' |  23 | 17  | 00010111 | ETB   |
' +-----+-----+----------+-------+
' |  24 | 18  | 00011000 | CAN   |
' +-----+-----+----------+-------+
' |  25 | 19  | 00011001 | EM    |
' +-----+-----+----------+-------+
' |  26 | 1A  | 00011010 | SUB   |
' +-----+-----+----------+-------+
' |  27 | 1B  | 00011011 | ESC   |
' +-----+-----+----------+-------+
' |  28 | 1C  | 00011100 | FS    |
' +-----+-----+----------+-------+
' |  29 | 1D  | 00011101 | GS    |
' +-----+-----+----------+-------+
' |  30 | 1E  | 00011110 | RS    |
' +-----+-----+----------+-------+
' |  31 | 1F  | 00011111 | US    |
' +-----+-----+----------+-------+
' |  32 | 20  | 00100000 | space |
' +-----+-----+----------+-------+
' |  33 | 21  | 00100001 | !     |
' +-----+-----+----------+-------+
' |  34 | 22  | 00100010 | "     |
' +-----+-----+----------+-------+
' |  35 | 23  | 00100011 | #     |
' +-----+-----+----------+-------+
' |  36 | 24  | 00100100 | $     |
' +-----+-----+----------+-------+
' |  37 | 25  | 00100101 | %     |
' +-----+-----+----------+-------+
' |  38 | 26  | 00100110 | &     |
' +-----+-----+----------+-------+
' |  39 | 27  | 00100111 | '     |
' +-----+-----+----------+-------+
' |  40 | 28  | 00101000 | (     |
' +-----+-----+----------+-------+
' |  41 | 29  | 00101001 | )     |
' +-----+-----+----------+-------+
' |  42 | 2A  | 00101010 | *     |
' +-----+-----+----------+-------+
' |  43 | 2B  | 00101011 | +     |
' +-----+-----+----------+-------+
' |  44 | 2C  | 00101100 | ,     |
' +-----+-----+----------+-------+
' |  45 | 2D  | 00101101 | -     |
' +-----+-----+----------+-------+
' |  46 | 2E  | 00101110 | .     |
' +-----+-----+----------+-------+
' |  47 | 2F  | 00101111 | /     |
' +-----+-----+----------+-------+
' |  48 | 30  | 00110000 | 0     |
' +-----+-----+----------+-------+
' |  49 | 31  | 00110001 | 1     |
' +-----+-----+----------+-------+
' |  50 | 32  | 00110010 | 2     |
' +-----+-----+----------+-------+
' |  51 | 33  | 00110011 | 3     |
' +-----+-----+----------+-------+
' |  52 | 34  | 00110100 | 4     |
' +-----+-----+----------+-------+
' |  53 | 35  | 00110101 | 5     |
' +-----+-----+----------+-------+
' |  54 | 36  | 00110110 | 6     |
' +-----+-----+----------+-------+
' |  55 | 37  | 00110111 | 7     |
' +-----+-----+----------+-------+
' |  56 | 38  | 00111000 | 8     |
' +-----+-----+----------+-------+
' |  57 | 39  | 00111001 | 9     |
' +-----+-----+----------+-------+
' |  58 | 3A  | 00111010 | :     |
' +-----+-----+----------+-------+
' |  59 | 3B  | 00111011 | ;     |
' +-----+-----+----------+-------+
' |  60 | 3C  | 00111100 | <     |
' +-----+-----+----------+-------+
' |  61 | 3D  | 00111101 | =     |
' +-----+-----+----------+-------+
' |  62 | 3E  | 00111110 | >     |
' +-----+-----+----------+-------+
' |  63 | 3F  | 00111111 | ?     |
' +-----+-----+----------+-------+
' |  64 | 40  | 01000000 | @     |
' +-----+-----+----------+-------+
' |  65 | 41  | 01000001 | A     |
' +-----+-----+----------+-------+
' |  66 | 42  | 01000010 | B     |
' +-----+-----+----------+-------+
' |  67 | 43  | 01000011 | C     |
' +-----+-----+----------+-------+
' |  68 | 44  | 01000100 | D     |
' +-----+-----+----------+-------+
' |  69 | 45  | 01000101 | E     |
' +-----+-----+----------+-------+
' |  70 | 46  | 01000110 | F     |
' +-----+-----+----------+-------+
' |  71 | 47  | 01000111 | G     |
' +-----+-----+----------+-------+
' |  72 | 48  | 01001000 | H     |
' +-----+-----+----------+-------+
' |  73 | 49  | 01001001 | I     |
' +-----+-----+----------+-------+
' |  74 | 4A  | 01001010 | J     |
' +-----+-----+----------+-------+
' |  75 | 4B  | 01001011 | K     |
' +-----+-----+----------+-------+
' |  76 | 4C  | 01001100 | L     |
' +-----+-----+----------+-------+
' |  77 | 4D  | 01001101 | M     |
' +-----+-----+----------+-------+
' |  78 | 4E  | 01001110 | N     |
' +-----+-----+----------+-------+
' |  79 | 4F  | 01001111 | O     |
' +-----+-----+----------+-------+
' |  80 | 50  | 01010000 | P     |
' +-----+-----+----------+-------+
' |  81 | 51  | 01010001 | Q     |
' +-----+-----+----------+-------+
' |  82 | 52  | 01010010 | R     |
' +-----+-----+----------+-------+
' |  83 | 53  | 01010011 | S     |
' +-----+-----+----------+-------+
' |  84 | 54  | 01010100 | T     |
' +-----+-----+----------+-------+
' |  85 | 55  | 01010101 | U     |
' +-----+-----+----------+-------+
' |  86 | 56  | 01010110 | V     |
' +-----+-----+----------+-------+
' |  87 | 57  | 01010111 | W     |
' +-----+-----+----------+-------+
' |  88 | 58  | 01011000 | X     |
' +-----+-----+----------+-------+
' |  89 | 59  | 01011001 | Y     |
' +-----+-----+----------+-------+
' |  90 | 5A  | 01011010 | Z     |
' +-----+-----+----------+-------+
' |  91 | 5B  | 01011011 | [     |
' +-----+-----+----------+-------+
' |  92 | 5C  | 01011100 | \     |
' +-----+-----+----------+-------+
' |  93 | 5D  | 01011101 | ]     |
' +-----+-----+----------+-------+
' |  94 | 5E  | 01011110 | ^     |
' +-----+-----+----------+-------+
' |  95 | 5F  | 01011111 | _     |
' +-----+-----+----------+-------+
' |  96 | 60  | 01100000 | `     |
' +-----+-----+----------+-------+
' |  97 | 61  | 01100001 | a     |
' +-----+-----+----------+-------+
' |  98 | 62  | 01100010 | b     |
' +-----+-----+----------+-------+
' |  99 | 63  | 01100011 | c     |
' +-----+-----+----------+-------+
' | 100 | 64  | 01100100 | d     |
' +-----+-----+----------+-------+
' | 101 | 65  | 01100101 | e     |
' +-----+-----+----------+-------+
' | 102 | 66  | 01100110 | f     |
' +-----+-----+----------+-------+
' | 103 | 67  | 01100111 | g     |
' +-----+-----+----------+-------+
' | 104 | 68  | 01101000 | h     |
' +-----+-----+----------+-------+
' | 105 | 69  | 01101001 | i     |
' +-----+-----+----------+-------+
' | 106 | 6A  | 01101010 | j     |
' +-----+-----+----------+-------+
' | 107 | 6B  | 01101011 | k     |
' +-----+-----+----------+-------+
' | 108 | 6C  | 01101100 | l     |
' +-----+-----+----------+-------+
' | 109 | 6D  | 01101101 | m     |
' +-----+-----+----------+-------+
' | 110 | 6E  | 01101110 | n     |
' +-----+-----+----------+-------+
' | 111 | 6F  | 01101111 | o     |
' +-----+-----+----------+-------+
' | 112 | 70  | 01110000 | p     |
' +-----+-----+----------+-------+
' | 113 | 71  | 01110001 | q     |
' +-----+-----+----------+-------+
' | 114 | 72  | 01110010 | r     |
' +-----+-----+----------+-------+
' | 115 | 73  | 01110011 | s     |
' +-----+-----+----------+-------+
' | 116 | 74  | 01110100 | t     |
' +-----+-----+----------+-------+
' | 117 | 75  | 01110101 | u     |
' +-----+-----+----------+-------+
' | 118 | 76  | 01110110 | v     |
' +-----+-----+----------+-------+
' | 119 | 77  | 01110111 | w     |
' +-----+-----+----------+-------+
' | 120 | 78  | 01111000 | x     |
' +-----+-----+----------+-------+
' | 121 | 79  | 01111001 | y     |
' +-----+-----+----------+-------+
' | 122 | 7A  | 01111010 | z     |
' +-----+-----+----------+-------+
' | 123 | 7B  | 01111011 | {     |
' +-----+-----+----------+-------+
' | 124 | 7C  | 01111100 | |     |
' +-----+-----+----------+-------+
' | 125 | 7D  | 01111101 | }     |
' +-----+-----+----------+-------+
' | 126 | 7E  | 01111110 | ~     |
' +-----+-----+----------+-------+
' | 127 | 7F  | 01111111 | DEL   |
' +-----+-----+----------+-------+
' | 128 | 80  | 10000000 | €     |
' +-----+-----+----------+-------+
' | 129 | 81  | 10000001 |       |
' +-----+-----+----------+-------+
' | 130 | 82  | 10000010 | ‚     |
' +-----+-----+----------+-------+
' | 131 | 83  | 10000011 | ƒ     |
' +-----+-----+----------+-------+
' | 132 | 84  | 10000100 | „     |
' +-----+-----+----------+-------+
' | 133 | 85  | 10000101 | …     |
' +-----+-----+----------+-------+
' | 134 | 86  | 10000110 | †     |
' +-----+-----+----------+-------+
' | 135 | 87  | 10000111 | ‡     |
' +-----+-----+----------+-------+
' | 136 | 88  | 10001000 | ˆ     |
' +-----+-----+----------+-------+
' | 137 | 89  | 10001001 | ‰     |
' +-----+-----+----------+-------+
' | 138 | 8A  | 10001010 | Š     |
' +-----+-----+----------+-------+
' | 139 | 8B  | 10001011 | ‹     |
' +-----+-----+----------+-------+
' | 140 | 8C  | 10001100 | Œ     |
' +-----+-----+----------+-------+
' | 141 | 8D  | 10001101 |       |
' +-----+-----+----------+-------+
' | 142 | 8E  | 10001110 | Ž     |
' +-----+-----+----------+-------+
' | 143 | 8F  | 10001111 |       |
' +-----+-----+----------+-------+
' | 144 | 90  | 10010000 |       |
' +-----+-----+----------+-------+
' | 145 | 91  | 10010001 | ‘     |
' +-----+-----+----------+-------+
' | 146 | 92  | 10010010 | ’     |
' +-----+-----+----------+-------+
' | 147 | 93  | 10010011 | “     |
' +-----+-----+----------+-------+
' | 148 | 94  | 10010100 | ”     |
' +-----+-----+----------+-------+
' | 149 | 95  | 10010101 | •     |
' +-----+-----+----------+-------+
' | 150 | 96  | 10010110 | –     |
' +-----+-----+----------+-------+
' | 151 | 97  | 10010111 | —     |
' +-----+-----+----------+-------+
' | 152 | 98  | 10011000 | ˜      |
' +-----+-----+----------+-------+
' | 153 | 99  | 10011001 | ™     |
' +-----+-----+----------+-------+
' | 154 | 9A  | 10011010 | š     |
' +-----+-----+----------+-------+
' | 155 | 9B  | 10011011 | ›     |
' +-----+-----+----------+-------+
' | 156 | 9C  | 10011100 | œ     |
' +-----+-----+----------+-------+
' | 157 | 9D  | 10011101 |       |
' +-----+-----+----------+-------+
' | 158 | 9E  | 10011110 | ž     |
' +-----+-----+----------+-------+
' | 159 | 9F  | 10011111 | Ÿ     |
' +-----+-----+----------+-------+
' | 160 | A0  | 10100000 |       |
' +-----+-----+----------+-------+
' | 161 | A1  | 10100001 | ¡     |
' +-----+-----+----------+-------+
' | 162 | A2  | 10100010 | ¢     |
' +-----+-----+----------+-------+
' | 163 | A3  | 10100011 | £     |
' +-----+-----+----------+-------+
' | 164 | A4  | 10100100 | ¤     |
' +-----+-----+----------+-------+
' | 165 | A5  | 10100101 | ¥     |
' +-----+-----+----------+-------+
' | 166 | A6  | 10100110 | ¦     |
' +-----+-----+----------+-------+
' | 167 | A7  | 10100111 | §     |
' +-----+-----+----------+-------+
' | 168 | A8  | 10101000 | ¨     |
' +-----+-----+----------+-------+
' | 169 | A9  | 10101001 | ©     |
' +-----+-----+----------+-------+
' | 170 | AA  | 10101010 | ª     |
' +-----+-----+----------+-------+
' | 171 | AB  | 10101011 | «     |
' +-----+-----+----------+-------+
' | 172 | AC  | 10101100 | ¬     |
' +-----+-----+----------+-------+
' | 173 | AD  | 10101101 | ­     |
' +-----+-----+----------+-------+
' | 174 | AE  | 10101110 | ®     |
' +-----+-----+----------+-------+
' | 175 | AF  | 10101111 | ¯     |
' +-----+-----+----------+-------+
' | 176 | B0  | 10110000 | °     |
' +-----+-----+----------+-------+
' | 177 | B1  | 10110001 | ±     |
' +-----+-----+----------+-------+
' | 178 | B2  | 10110010 | ²     |
' +-----+-----+----------+-------+
' | 179 | B3  | 10110011 | ³     |
' +-----+-----+----------+-------+
' | 180 | B4  | 10110100 | ´     |
' +-----+-----+----------+-------+
' | 181 | B5  | 10110101 | µ     |
' +-----+-----+----------+-------+
' | 182 | B6  | 10110110 | ¶     |
' +-----+-----+----------+-------+
' | 183 | B7  | 10110111 | ·     |
' +-----+-----+----------+-------+
' | 184 | B8  | 10111000 | ¸     |
' +-----+-----+----------+-------+
' | 185 | B9  | 10111001 | ¹     |
' +-----+-----+----------+-------+
' | 186 | BA  | 10111010 | º     |
' +-----+-----+----------+-------+
' | 187 | BB  | 10111011 | »     |
' +-----+-----+----------+-------+
' | 188 | BC  | 10111100 | ¼     |
' +-----+-----+----------+-------+
' | 189 | BD  | 10111101 | ½     |
' +-----+-----+----------+-------+
' | 190 | BE  | 10111110 | ¾     |
' +-----+-----+----------+-------+
' | 191 | BF  | 10111111 | ¿     |
' +-----+-----+----------+-------+
' | 192 | C0  | 11000000 | À     |
' +-----+-----+----------+-------+
' | 193 | C1  | 11000001 | Á     |
' +-----+-----+----------+-------+
' | 194 | C2  | 11000010 | Â     |
' +-----+-----+----------+-------+
' | 195 | C3  | 11000011 | Ã     |
' +-----+-----+----------+-------+
' | 196 | C4  | 11000100 | Ä     |
' +-----+-----+----------+-------+
' | 197 | C5  | 11000101 | Å     |
' +-----+-----+----------+-------+
' | 198 | C6  | 11000110 | Æ     |
' +-----+-----+----------+-------+
' | 199 | C7  | 11000111 | Ç     |
' +-----+-----+----------+-------+
' | 200 | C8  | 11001000 | È     |
' +-----+-----+----------+-------+
' | 201 | C9  | 11001001 | É     |
' +-----+-----+----------+-------+
' | 202 | CA  | 11001010 | Ê     |
' +-----+-----+----------+-------+
' | 203 | CB  | 11001011 | Ë     |
' +-----+-----+----------+-------+
' | 204 | CC  | 11001100 | Ì     |
' +-----+-----+----------+-------+
' | 205 | CD  | 11001101 | Í     |
' +-----+-----+----------+-------+
' | 206 | CE  | 11001110 | Î     |
' +-----+-----+----------+-------+
' | 207 | CF  | 11001111 | Ï     |
' +-----+-----+----------+-------+
' | 208 | D0  | 11010000 | Ð     |
' +-----+-----+----------+-------+
' | 209 | D1  | 11010001 | Ñ     |
' +-----+-----+----------+-------+
' | 210 | D2  | 11010010 | Ò     |
' +-----+-----+----------+-------+
' | 211 | D3  | 11010011 | Ó     |
' +-----+-----+----------+-------+
' | 212 | D4  | 11010100 | Ô     |
' +-----+-----+----------+-------+
' | 213 | D5  | 11010101 | Õ     |
' +-----+-----+----------+-------+
' | 214 | D6  | 11010110 | Ö     |
' +-----+-----+----------+-------+
' | 215 | D7  | 11010111 | ×     |
' +-----+-----+----------+-------+
' | 216 | D8  | 11011000 | Ø     |
' +-----+-----+----------+-------+
' | 217 | D9  | 11011001 | Ù     |
' +-----+-----+----------+-------+
' | 218 | DA  | 11011010 | Ú     |
' +-----+-----+----------+-------+
' | 219 | DB  | 11011011 | Û     |
' +-----+-----+----------+-------+
' | 220 | DC  | 11011100 | Ü     |
' +-----+-----+----------+-------+
' | 221 | DD  | 11011101 | Ý     |
' +-----+-----+----------+-------+
' | 222 | DE  | 11011110 | Þ     |
' +-----+-----+----------+-------+
' | 223 | DF  | 11011111 | ß     |
' +-----+-----+----------+-------+
' | 224 | E0  | 11100000 | à     |
' +-----+-----+----------+-------+
' | 225 | E1  | 11100001 | á     |
' +-----+-----+----------+-------+
' | 226 | E2  | 11100010 | â     |
' +-----+-----+----------+-------+
' | 227 | E3  | 11100011 | ã     |
' +-----+-----+----------+-------+
' | 228 | E4  | 11100100 | ä     |
' +-----+-----+----------+-------+
' | 229 | E5  | 11100101 | å     |
' +-----+-----+----------+-------+
' | 230 | E6  | 11100110 | æ     |
' +-----+-----+----------+-------+
' | 231 | E7  | 11100111 | ç     |
' +-----+-----+----------+-------+
' | 232 | E8  | 11101000 | è     |
' +-----+-----+----------+-------+
' | 233 | E9  | 11101001 | é     |
' +-----+-----+----------+-------+
' | 234 | EA  | 11101010 | ê     |
' +-----+-----+----------+-------+
' | 235 | EB  | 11101011 | ë     |
' +-----+-----+----------+-------+
' | 236 | EC  | 11101100 | ì     |
' +-----+-----+----------+-------+
' | 237 | ED  | 11101101 | í     |
' +-----+-----+----------+-------+
' | 238 | EE  | 11101110 | î     |
' +-----+-----+----------+-------+
' | 239 | EF  | 11101111 | ï     |
' +-----+-----+----------+-------+
' | 240 | F0  | 11110000 | ð     |
' +-----+-----+----------+-------+
' | 241 | F1  | 11110001 | ñ     |
' +-----+-----+----------+-------+
' | 242 | F2  | 11110010 | ò     |
' +-----+-----+----------+-------+
' | 243 | F3  | 11110011 | ó     |
' +-----+-----+----------+-------+
' | 244 | F4  | 11110100 | ô     |
' +-----+-----+----------+-------+
' | 245 | F5  | 11110101 | õ     |
' +-----+-----+----------+-------+
' | 246 | F6  | 11110110 | ö     |
' +-----+-----+----------+-------+
' | 247 | F7  | 11110111 | ÷     |
' +-----+-----+----------+-------+
' | 248 | F8  | 11111000 | ø     |
' +-----+-----+----------+-------+
' | 249 | F9  | 11111001 | ù     |
' +-----+-----+----------+-------+
' | 250 | FA  | 11111010 | ú     |
' +-----+-----+----------+-------+
' | 251 | FB  | 11111011 | û     |
' +-----+-----+----------+-------+
' | 252 | FC  | 11111100 | ü     |
' +-----+-----+----------+-------+
' | 253 | FD  | 11111101 | ý     |
' +-----+-----+----------+-------+
' | 254 | FE  | 11111110 | þ     |
' +-----+-----+----------+-------+
' | 255 | FF  | 11111111 | ÿ     |
' +-----+-----+----------+-------+


================================================
FILE: Testing/Testing.accdb.src/forms/frmMain.bas
================================================
Version =20
VersionRequired =20
Begin Form
    RecordSelectors = NotDefault
    NavigationButtons = NotDefault
    DividingLines = NotDefault
    AllowDesignChanges = NotDefault
    DefaultView =0
    TabularFamily =18
    PictureAlignment =2
    DatasheetGridlinesBehavior =3
    GridX =24
    GridY =24
    Width =9360
    DatasheetFontHeight =11
    ItemSuffix =13
    Right =25320
    Bottom =12465
    RecSrcDt = Begin
        0x18691eff0b76e540
    End
    Caption ="Main Form"
    DatasheetFontName ="Palatino Linotype"
    OnLoad ="[Event Procedure]"
    FilterOnLoad =0
    ShowPageMargins =0
    DisplayOnSharePointSite =1
    DatasheetAlternateBackColor =15921906
    DatasheetGridlinesColor12 =0
    FitToScreen =1
    DatasheetBackThemeColorIndex =1
    BorderThemeColorIndex =3
    ThemeFontIndex =1
    ForeThemeColorIndex =0
    AlternateBackThemeColorIndex =1
    AlternateBackShade =95.0
    ThemeName ="Executive"
    Begin
        Begin Label
            BackStyle =0
            FontSize =11
            FontName ="Calibri"
            ThemeFontIndex =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =0
            BorderTint =50.0
            ForeThemeColorIndex =0
            ForeTint =50.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin Image
            BackStyle =0
            OldBorderStyle =0
            BorderLineStyle =0
            SizeMode =3
            PictureAlignment =2
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin CommandButton
            FontSize =11
            FontWeight =400
            FontName ="Calibri"
            ForeThemeColorIndex =0
            ForeTint =75.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
            UseTheme =1
            Shape =1
            Gradient =12
            BackThemeColorIndex =4
            BackTint =60.0
            BorderLineStyle =0
            BorderThemeColorIndex =4
            BorderTint =60.0
            ThemeFontIndex =1
            HoverThemeColorIndex =4
            HoverTint =40.0
            PressedThemeColorIndex =4
            PressedShade =75.0
            HoverForeThemeColorIndex =0
            HoverForeTint =75.0
            PressedForeThemeColorIndex =0
            PressedForeTint =75.0
        End
        Begin ListBox
            BorderLineStyle =0
            LabelX =-1800
            FontSize =11
            FontName ="Calibri"
            AllowValueListEdits =1
            InheritValueList =1
            ThemeFontIndex =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            ForeThemeColorIndex =0
            ForeTint =75.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin UnboundObjectFrame
            SpecialEffect =2
            OldBorderStyle =1
            ThemeFontIndex =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            ForeThemeColorIndex =2
            ForeShade =50.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin CustomControl
            OldBorderStyle =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =1
            BorderShade =65.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin Section
            Height =7620
            Name ="Detail"
            AlternateBackThemeColorIndex =1
            AlternateBackShade =95.0
            BackThemeColorIndex =1
            Begin
                Begin CommandButton
                    OverlapFlags =85
                    TextFontFamily =18
                    Left =5400
                    Top =2940
                    Width =3120
                    Height =720
                    ForeColor =4210752
                    Name ="cmdRunTests"
                    Caption ="  Verify Database Objects"
                    OnClick ="[Event Procedure]"
                    FontName ="Palatino Linotype"
                    GridlineColor =10921638
                    ImageData = Begin
                        0x2800000010000000100000000100200000000000000000000000000000000000 ,
                        0x0000000000000000b0a090ff604830ff604830ff604830ff604830ff604830ff ,
                        0x604830ff604830ff604830ff604830ff604830ff000000000000000000000000 ,
                        0x0000000000000000b0a090fffff8f0ffe0e0e0ffe0d8d0ffe0d8d0ffe0d0c0ff ,
                        0xe0c8c0ffd0c0b0ffd0c0b0ffd0b8a0ff604830ff000000000000000000000000 ,
                        0x0000000000000000b0a090ffffffffffd0b8b0ffd0b8a0ffd0b0a0ffb0a090ff ,
                        0x604830ff604830ff604830ff604830ff604830ff604830ff604830ff604830ff ,
                        0x604830ff604830ffb0a090fffffffffffffffffffff8f0fffff0f0ffb0a090ff ,
                        0xfff8f0ffe0e0e0ffe0d8d0ffe0d8d0ffe0d0c0ffe0c8c0ffd0c0b0ffd0c0b0ff ,
                        0xd0b8a0ff604830ffc0a8a0ffffffffffe0c8c0ffe0c8c0ffd0c0b0ffb0a090ff ,
                        0xffffffffd0b8b0ffd0b8a0ffd0b0a0ffffe8e0ffc09080ffc09080ffc09080ff ,
                        0xd0b8b0ff604830ffc0b0a0ffffffffffb0a090ff604830ff604830ffb0a090ff ,
                        0xfffffffffffffffffff8f0fffff0f0fffff0e0ffffe8e0ffffe0d0ffffd8d0ff ,
                        0xd0c0b0ff604830ffd0b0a0ffffffffffb0a090fffff8f0ffe0e0e0ffc0a8a0ff ,
                        0xffffffffe0c8c0ffe0c8c0ffd0c0b0fffff8f0ffc0a890ffc0a890ffc0a090ff ,
                        0xe0d0c0ff604830ffd0b8a0ffffffffffb0a090ffffffffffd0b8b0ffc0b0a0ff ,
                        0xfffffffffffffffffffffffffffffffffffffffffff8f0fffff0f0ffffe8e0ff ,
                        0xe0d8d0ff604830fff0a890fff0a880ffb0a090ffffffffffffffffffd0b0a0ff ,
                        0xffffffffe0c8c0ffe0c8c0ffe0c8c0ffffffffffd0b0a0ffd0b0a0ffd0a8a0ff ,
                        0xe0e0e0ff604830fff0a890ffffc0a0ffc0a8a0ffffffffffe0c8c0ffd0b8a0ff ,
                        0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8ffff ,
                        0xfff8f0ff604830fff0a890fff0a880ffc0b0a0fffffffffffffffffff0a890ff ,
                        0xf0a880fff0a080fff0a070ffe09870ffe09060ffe08860ffe08050ffe07840ff ,
                        0xe07840ffd06030ff0000000000000000d0b0a0ffffffffffe0c8c0fff0a890ff ,
                        0xffc0a0ffffc0a0ffffb890ffffb890ffffb090ffffa880fff0a070fff0a070ff ,
                        0xf09870ffd06830ff0000000000000000d0b8a0fffffffffffffffffff0a890ff ,
                        0xf0a880fff0a080fff0a080ffe09870ffe09060ffe08860ffe08850ffe08050ff ,
                        0xe07840ffe07840ff0000000000000000f0a890fff0a880fff0a080fff0a070ff ,
                        0xe09870ffe09060ffe08860ffe08050ffe07840ffe07840ffd06030ff00000000 ,
                        0x00000000000000000000000000000000f0a890ffffc0a0ffffc0a0ffffb890ff ,
                        0xffb890ffffb090ffffa880fff0a070fff0a070fff09870ffd06830ff00000000 ,
                        0x00000000000000000000000000000000f0a890fff0a880fff0a080fff0a080ff ,
                        0xe09870ffe09060ffe08860ffe08850ffe08050ffe07840ffe07840ff00000000 ,
                        0x0000000000000000
                    End

                    LayoutCachedLeft =5400
                    LayoutCachedTop =2940
                    LayoutCachedWidth =8520
                    LayoutCachedHeight =3660
                    PictureCaptionArrangement =5
                    BackColor =13807008
                    BorderColor =13807008
                    HoverColor =14796991
                    PressedColor =9262658
                    HoverForeColor =4210752
                    PressedForeColor =4210752
                    Overlaps =1
                End
                Begin ListBox
                    RowSourceTypeInt =1
                    OverlapFlags =85
                    TextFontFamily =18
                    IMESentenceMode =3
                    ColumnCount =2
                    Left =600
                    Top =1140
                    Width =4455
                    Height =5745
                    TabIndex =1
                    ForeColor =4210752
                    BorderColor =10921638
                    Name ="lstResults"
                    RowSourceType ="Value List"
                    RowSource ="✔;Access Table exists;✔;tblInternal has data;✔;Linked Table exists;✔;tblLinkedCS"
                        "V has data;✔;Saved Table Data (TDF);✔;Saved Table Data (XML);✔;Table SQL;✔;Linke"
                        "d Table JSON;✔;Linked Table structure;✔;Table Relationship;✔;Table Data Macro Ex"
                        "ists;✔;Query exists;✔;Form exists;✔;Report exists;✔;Application Icon is set;✔;Cu"
                        "stom Database (DAO) property;✔;Custom Project Property"
                    ColumnWidths ="479;3975"
                    FontName ="Palatino Linotype"
                    GridlineColor =10921638

                    LayoutCachedLeft =600
                    LayoutCachedTop =1140
                    LayoutCachedWidth =5055
                    LayoutCachedHeight =6885
                    Begin
                        Begin Label
                            OverlapFlags =85
                            TextFontFamily =18
                            Left =780
                            Top =720
                            Width =2880
                            Height =320
                            BorderColor =8355711
                            ForeColor =8355711
                            Name ="Col1_Label"
                            Caption ="Test Results"
                            FontName ="Palatino Linotype"
                            GridlineColor =10921638
                            LayoutCachedLeft =780
                            LayoutCachedTop =720
                            LayoutCachedWidth =3660
                            LayoutCachedHeight =1040
                        End
                    End
                End
                Begin Label
                    OverlapFlags =85
                    TextFontFamily =18
                    Left =5400
                    Top =1140
                    Width =3720
                    Height =1635
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="Label4"
                    Caption ="Click the button below to verify the objects in the current database. This helps"
                        " confirm that everything was correctly reconstructed from source."
                    FontName ="Palatino Linotype"
                    GridlineColor =10921638
                    LayoutCachedLeft =5400
                    LayoutCachedTop =1140
                    LayoutCachedWidth =9120
                    LayoutCachedHeight =2775
                End
                Begin CommandButton
                    OverlapFlags =85
                    TextFontFamily =18
                    Left =5400
                    Top =3900
                    Width =3120
                    Height =720
                    TabIndex =2
                    ForeColor =4210752
                    Name ="cmdEditTests"
                    Caption ="  Edit Tests..."
                    OnClick ="[Event Procedure]"
                    FontName ="Palatino Linotype"
                    GridlineColor =10921638
                    ImageData = Begin
                        0x2800000010000000100000000100200000000000000000000000000000000000 ,
                        0x0000000000000000000000000000000000000000000000000000000000000000 ,
                        0x000000000000000000000000000000000000000000000000bb461e4800000000 ,
                        0x0000000000000000000000000000000000000000000000000000000000000000 ,
                        0x000000003088305000000000000000000000000080281040803010ffd0502040 ,
                        0x0000000000000000000000000000000000000000000000000000000000000000 ,
                        0x20302040005000ff40a040400000000080281040e05020ff803010ff803010ff ,
                        0xd050204000000000000000000000000000000000000000000000000020302040 ,
                        0x208030ff005000ff005000ff30983040e05020ffe06840ffe09880ffd07860ff ,
                        0x803010ff00000000000000000038f040001890ff0018803000000000208030ff ,
                        0x309850ff60c080ff208030ff005000ffe07050fff0a890ffffc8b0fff0b8a0ff ,
                        0xc07050ff000000000030f0400038ffff001890ff001890ff0018803030a850ff ,
                        0x80d890ffb0e8c0ff90e0a0ff208030fff0907020f08870ffffc0b0fff09070ff ,
                        0xf0907040000000000030f0ff2058ffff7098ffff0028d0ff001890ff40c07040 ,
                        0x30a850ffa0e8b0ff30a850ff60986040706860c0b0786030f09070fff0907070 ,
                        0x00000000000000001050ffff90a8ffffa0c0ffff7098ffff0020b0ff00000000 ,
                        0x40c0604030a850ff50a87040706860f070686020000000000018801000000000 ,
                        0x00000000000000005080ff405078ffffa0b0ffff5078ffff6070c04000000000 ,
                        0x0000000070686020706860e070686020706860e02048d060001890ff00188020 ,
                        0x0000000000000000000000005080ff405080ffff6070b050706860e070686020 ,
                        0x70686020706860e070686010000000002048c0600038ffff001890ff001890ff ,
                        0x00188020000000000000000000000000000000000000000070686030508090a0 ,
                        0x006080ff2060707000000000000000000030f0ff2058ffff7098ffff0028d0ff ,
                        0x001890ff000000000000000000000000000000000000000000a8f04000a0e0ff ,
                        0x006890ff006890ff00608070000000001050ffff90a8ffffa0c0ffff7098ffff ,
                        0x0020b0ff000000000000000000000000000000000000000000a0e0ff10b0e0ff ,
                        0x80e0ffff0090c0ff006890ff000000005080ff405078ffffa0b0ffff5078ffff ,
                        0x5078ff40000000000000000000000000000000000000000000a0e0ff90e8ffff ,
                        0xb0f0ffff90e0ffff00a0e0ff00000000000000005080ff405080ffff5080ff40 ,
                        0x00000000000000000000000000000000000000000000000040c8ff4000a0e0ff ,
                        0xa0e8ffff00a0e0ff50d0ff400000000000000000000000000000000000000000 ,
                        0x0000000000000000000000000000000000000000000000000000000060d0ff70 ,
                        0x00a0e0ff50d0ff40000000000000000000000000000000000000000000000000 ,
                        0x0000000000000000
                    End

                    LayoutCachedLeft =5400
                    LayoutCachedTop =3900
                    LayoutCachedWidth =8520
                    LayoutCachedHeight =4620
                    PictureCaptionArrangement =5
                    BackColor =13807008
                    BorderColor =13807008
                    HoverColor =14796991
                    PressedColor =9262658
                    HoverForeColor =4210752
                    PressedForeColor =4210752
                    Overlaps =1
                End
                Begin Label
                    OverlapFlags =93
                    TextFontFamily =18
                    Left =5400
                    Top =4860
                    Width =3060
                    Height =1635
                    BorderColor =8355711
                    ForeColor =8355711
                    Name ="lblResults"
                    Caption ="17 tests passed\015\0120 tests failed"
                    FontName ="Palatino Linotype"
                    GridlineColor =10921638
                    LayoutCachedLeft =5400
                    LayoutCachedTop =4860
                    LayoutCachedWidth =8460
                    LayoutCachedHeight =6495
                End
                Begin Image
                    PictureType =2
                    Left =7860
                    Top =4860
                    Width =600
                    Height =720
                    BorderColor =10921638
                    Name ="imgResult"
                    GridlineColor =10921638

                    LayoutCachedLeft =7860
                    LayoutCachedTop =4860
                    LayoutCachedWidth =8460
                    LayoutCachedHeight =5580
                    TabIndex =3
                End
            End
        End
    End
End
CodeBehindForm
' See "frmMain.cls"


================================================
FILE: Testing/Testing.accdb.src/forms/frmMain.cls
================================================
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Compare Database
Option Explicit


' Keep track of total results
Private m_Totals(True To False) As Integer


'---------------------------------------------------------------------------------------
' Procedure : cmdRunTests_Click
' Author    : Adam Waller
' Date      : 5/1/2020
' Purpose   : Trying to keep things simple here... Verify that the object exists in the
'           : correct format. (Adjust as needed)
'---------------------------------------------------------------------------------------
'
Public Sub cmdRunTests_Click()

    Dim strTest As String
    Dim intTest As Integer
    Dim dbs As DAO.Database
    Dim rsc As SharedResource

    Set dbs = CurrentDb

    ' Clear list and totals
    lstResults.RowSource = ""
    m_Totals(True) = 0
    m_Totals(False) = 0
    imgResult.Picture = vbNullString

    ' Ignore any errors.
    ' NOTE: don't include the test result on a line that may throw an error.
    On Error Resume Next

    ' Update linked tables/CSV to use the current directory
    dbs.TableDefs("tblLinkedAccess").Connect = ";DATABASE=" & Application.CurrentProject.Path & "\Testing.accdb"
    dbs.TableDefs("tblLinkedAccess").RefreshLink
    dbs.TableDefs("tblLinkedCSV").Connect = "Text;DSN=Linked Link Specification;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=437;ACCDB=YES;DATABASE=" & Application.CurrentProject.Path
    dbs.TableDefs("tblLinkedCSV").RefreshLink

    '========================
    '   BEGIN TESTS
    '========================

    ' Tables
    strTest = dbs.TableDefs("tblInternal").Name
    ShowResult "Access Table exists", (strTest = "tblInternal")

    intTest = 0
    intTest = DCount("*", "tblInternal")
    ShowResult "tblInternal has data", (intTest > 0)

    strTest = dbs.TableDefs("tblLinkedCSV").Name
    ShowResult "Linked Table exists", (strTest = "tblLinkedCSV")

    intTest = 0
    intTest = DCount("*", "tblLinkedCSV")
    ShowResult "tblLinkedCSV has data", (intTest > 0)

    ShowResult "Saved Table Data (TDF)", FSO.FileExists(ExportFolder & "tables\tblInternal.txt")

    ShowResult "Saved Table Data (XML)", FSO.FileExists(ExportFolder & "tables\tblSaveXML.xml")

    ShowResult "Table SQL", FSO.FileExists(ExportFolder & "tbldefs\tblInternal.sql")

    ShowResult "Linked Table JSON", FSO.FileExists(ExportFolder & "tbldefs\tblLinkedCSV.json")

    intTest = 0
    intTest = dbs.Relations("tblInternaltblSaveXML").Fields.Count
    ShowResult "Table Relationship", (intTest = 1)

    intTest = 0
    intTest = DCount("*", "MSysObjects", "Not IsNull(LvExtra) and Type = 1 and [Name] = 'tblSaveXML'")
    ShowResult "Table Data Macro Exists", (intTest > 0)


    ' Queries
    strTest = dbs.QueryDefs("qryNavigationPaneGroups").Name
    ShowResult "Query exists", (strTest = "qryNavigationPaneGroups")

    strTest = DLookup("DatabaseFile", "qryVBAFunction")
    ShowResult "VBA Function in Query", (strTest = CurrentDb.Name)

    ' Forms
    strTest = CurrentProject.AllForms("frmMain").Name
    ShowResult "Form exists", (strTest = "frmMain")


    ' Reports
    strTest = CurrentProject.AllReports("rptNavigationPaneGroups").Name
    ShowResult "Report exists", (strTest = "rptNavigationPaneGroups")
    ShowResult "Landscape Orientation", (Report_rptNonDefaultPaperSize.Printer.Orientation = acPRORLandscape)
    ShowResult "A4 Paper Size", (Report_rptNonDefaultPaperSize.Printer.PaperSize = acPRPSA4)


    ' Macros
    strTest = CurrentProject.AllMacros("AutoExec").Name
    ShowResult "Macro exists", (strTest = "AutoExec")


    ' Modules
    strTest = CurrentProject.AllModules("basUtility").Name
    ShowResult "Standard Module exists", (strTest = "basUtility")
    strTest = GetVBProjectForCurrentDB.VBComponents("basExtendedChars").CodeModule.Lines(6, 1)
    ShowResult "Extended ASCII text in VBA", (Mid$(strTest, 10, 1) = Chr(151))

    strTest = CurrentProject.AllModules("clsPerson").Name
    ShowResult "Class Module exists", (strTest = "clsPerson")

    ' Access the code module first to correctly load the instancing property
    strTest = GetVBProjectForCurrentDB.VBComponents("clsPublic").CodeModule.CountOfLines
    strTest = GetVBProjectForCurrentDB.VBComponents("clsPublic").Properties("Instancing")
    ShowResult "Class with Public Creatable Instancing", (strTest = "5")


    ' Database properties
    strTest = ""
    strTest = dbs.Properties("AppIcon")
    ShowResult "Application Icon is set", (Len(strTest) > 5)

    strTest = dbs.Properties("DAOProperty").Value
    ShowResult "Custom Database (DAO) property", (strTest = "DAO")

    strTest = CurrentProject.Properties("ProjectProperty").Value
    ShowResult "Custom Project Property", (strTest = "TestValue")

    strTest = dbs.Containers("Databases").Documents("SummaryInfo").Properties("Title")
    ShowResult "Database Summary Property (Title)", (strTest = "VCS Testing")

    strTest = dbs.Containers("Tables").Documents("tblSaveXML").Properties("Description")
    ShowResult "Navigation pane object description", (strTest = "Saved description in XML table.")

    strTest = dbs.Containers("Modules").Documents("basUtility").Properties("Description")
    ShowResult "Module description", (strTest = "My special description on the code module.")

    ShowResult "Saved shared images", (CurrentProject.Resources.Count > 2)

    ShowResult "Saved import/export specs (XML)", (CurrentProject.ImportExportSpecifications.Count > 0)

    strTest = CurrentProject.ImportExportSpecifications(0).Name
    ShowResult "Name of saved specification", (strTest = "Export-MSysIMEXColumns")

    strTest = Nz(DLookup("SpecName", "MSysIMEXSpecs", "SpecName=""Test 2"""))
    ShowResult "Saved IMEX spec (Table based)", (strTest = "Test 2")

    strTest = Nz(DLookup("Name", "MSysNavPaneGroups", "Name=""My Modules"""))
    ShowResult "Custom navigation pane group", (strTest = "My Modules")

    ' VBE Project
    With GetVBProjectForCurrentDB

        ShowResult "VBE project name", (.Name = "VCS Testing")
        ShowResult "VBE project description", (.Description = "For automated testing of Version Control")
        ShowResult "Help context id", (.HelpContextId = 123456)

        strTest = .References("Scripting").Name
        ShowResult "GUID reference (scripting)", (strTest = "Scripting")

        strTest = .References("MSForms").Name
        ShowResult "MS Forms 2.0 reference", (strTest = "MSForms")

    End With

    ' Theme
    strTest = CurrentDb.Properties("Theme Resource Name")
    ShowResult "Active theme = Angles", (strTest = "Angles")

    strTest = vbNullString
    For Each rsc In CurrentProject.Resources
        If rsc.Type = acResourceTheme Then
            strTest = rsc.Name
            If strTest = "Angles" Then Exit For
        End If
    Next rsc
    ShowResult "Theme resource exists", (strTest = "Angles")

    ' CommandBar Menus
    strTest = CommandBars("Demo Popup").Name
    ShowResult "Popup Menu", (strTest = "Demo Popup")

    strTest = CommandBars("Demo Popup").Controls(1).Caption
    ShowResult "Menu Control", (strTest = "Custom Button")

    strTest = CommandBars("Special \\..// Popup").Name
    ShowResult "Special Char Menu", (strTest = "Special \\..// Popup")

    strTest = CommandBars("Special \\..// Popup").Controls(1).Caption
    ShowResult "Special Char Caption", (strTest = "Special \\..// Button")


    ' Other
    ShowResult "VCS Options file exists", FSO.FileExists(ExportFolder & "vcs-options.json")


    '========================
    '   END TESTS
    '========================


    ' Display result icon
    If m_Totals(False) = 0 Then
        imgResult.Picture = "button_ok"
    Else
        imgResult.Picture = "button_error"
    End If

    If Err Then Err.Clear

End Sub


'---------------------------------------------------------------------------------------
' Procedure : ShowResult
' Author    : Adam Waller
' Date      : 5/1/2020
' Purpose   : Add the result to the list.
'---------------------------------------------------------------------------------------
'
Private Function ShowResult(strText As String, blnPassed As Boolean)
    Dim strIcon As String
    If blnPassed Then
        strIcon = ChrW(10004)   ' Check
    Else
        strIcon = ChrW(10060)   ' X
    End If
    m_Totals(blnPassed) = m_Totals(blnPassed) + 1
    With lstResults
        .SetFocus
        .AddItem strIcon & ";" & strText
        .ListIndex = .ListCount - 1
    End With
    ' Display incrementing totals
    lblResults.Caption = _
        m_Totals(True) & " tests passed" & vbCrLf & _
        m_Totals(False) & " tests failed"
    DoEvents
End Function


'---------------------------------------------------------------------------------------
' Procedure : cmdEditTests_Click
' Author    : Adam Waller
' Date      : 5/1/2020
' Purpose   : Go to the code where you can edit the tests.
'---------------------------------------------------------------------------------------
'
Private Sub cmdEditTests_Click()
    Dim intLine As Integer
    VBE.MainWindow.Visible = True
    With VBE.VBProjects("VCS Testing").VBComponents("Form_frmMain")
        .Activate
        With .CodeModule
            intLine = 27 + .ProcStartLine("cmdRunTests_Click", vbext_pk_Proc)
            .CodePane.SetSelection intLine, 1, intLine, 1
            .CodePane.Show
        End With
    End With
    AppActivate VBE.MainWindow.Caption
End Sub


'---------------------------------------------------------------------------------------
' Procedure : ExportFolder
' Author    : Adam Waller
' Date      : 5/7/2020
' Purpose   : Return base export folder for testing for source files.
'---------------------------------------------------------------------------------------
'
Private Function ExportFolder() As String
    ExportFolder = CurrentProject.FullName & ".src\"
End Function


Private Sub Form_Load()
    imgResult.Picture = vbNullString
End Sub


================================================
FILE: Testing/Testing.accdb.src/forms/frmTestMenu.bas
================================================
Version =20
VersionRequired =20
Begin Form
    PopUp = NotDefault
    RecordSelectors = NotDefault
    NavigationButtons = NotDefault
    DividingLines = NotDefault
    AllowDesignChanges = NotDefault
    DefaultView =0
    BorderStyle =1
    PictureAlignment =2
    DatasheetGridlinesBehavior =3
    GridX =24
    GridY =24
    Width =9900
    DatasheetFontHeight =11
    ItemSuffix =7
    Left =31980
    Top =2040
    Right =-23746
    Bottom =9585
    RecSrcDt = Begin
        0x4bb011b6cb1fe640
    End
    DatasheetFontName ="Franklin Gothic Book"
    AllowDatasheetView =0
    FilterOnLoad =0
    ShowPageMargins =0
    DisplayOnSharePointSite =1
    DatasheetAlternateBackColor =15921906
    DatasheetGridlinesColor12 =0
    FitToScreen =1
    DatasheetBackThemeColorIndex =1
    BorderThemeColorIndex =3
    ThemeFontIndex =1
    ForeThemeColorIndex =0
    AlternateBackThemeColorIndex =1
    AlternateBackShade =95.0
    Begin
        Begin Label
            BackStyle =0
            FontSize =11
            FontName ="Calibri"
            ThemeFontIndex =1
            BackThemeColorIndex =1
            BorderThemeColorIndex =0
            BorderTint =50.0
            ForeThemeColorIndex =0
            ForeTint =50.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
        End
        Begin CommandButton
            FontSize =11
            FontWeight =400
            FontName ="Calibri"
            ForeThemeColorIndex =0
            ForeTint =75.0
            GridlineThemeColorIndex =1
            GridlineShade =65.0
            UseTheme =1
            Shape =1
            Gradient =12
            BackThemeColorIndex =4
            BackTint =60.0
            BorderLineStyle =0
            BorderThemeColorIndex =4
            BorderTint =60.0
    
Download .txt
gitextract_2zutbv_x/

├── .gitattributes
├── .gitattributes.default
├── .github/
│   └── workflows/
│       └── update-wiki.yml
├── .gitignore
├── .gitignore.default
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Hook/
│   └── README.txt
├── LICENSE.txt
├── README.md
├── Ribbon/
│   ├── MSAccessVCS_Ribbon.code-workspace
│   ├── MSAccessVCS_Ribbon.twinproj
│   ├── Ribbon.xml
│   └── Source/
│       ├── Resources/
│       │   └── MANIFEST/
│       │       └── #1.xml
│       ├── Settings
│       └── Sources/
│           ├── AddInRibbon.twin
│           ├── DllRegistration.twin
│           └── JsonConverter.twin
├── Testing/
│   ├── Linked.csv
│   ├── Testing.accdb.src/
│   │   ├── dbs-properties.json
│   │   ├── documents.json
│   │   ├── forms/
│   │   │   ├── Form1.bas
│   │   │   ├── frmColors.bas
│   │   │   ├── frmColors.cls
│   │   │   ├── frmExtendedChars.bas
│   │   │   ├── frmExtendedChars.cls
│   │   │   ├── frmMain.bas
│   │   │   ├── frmMain.cls
│   │   │   ├── frmTestMenu.bas
│   │   │   └── frmTestMenu.cls
│   │   ├── hidden-attributes.json
│   │   ├── images/
│   │   │   ├── 1370126936_button_ok.json
│   │   │   ├── Colors.json
│   │   │   ├── button_error.json
│   │   │   └── button_ok.json
│   │   ├── imexspecs/
│   │   │   ├── Linked Link Specification.json
│   │   │   └── Test 2.json
│   │   ├── macros/
│   │   │   └── AutoExec.bas
│   │   ├── menus/
│   │   │   ├── Demo Popup.json
│   │   │   └── Special %5C%5C..%2F%2F Popup.json
│   │   ├── modules/
│   │   │   ├── Module1.bas
│   │   │   ├── basExtendedChars.bas
│   │   │   ├── basUtility.bas
│   │   │   ├── clsPerson.cls
│   │   │   ├── clsPopupMenu.cls
│   │   │   └── clsPublic.cls
│   │   ├── nav-pane-groups.json
│   │   ├── proj-properties.json
│   │   ├── project.json
│   │   ├── queries/
│   │   │   ├── qryFormControl.bas
│   │   │   ├── qryFormControl.sql
│   │   │   ├── qryNavigationPaneGroups.bas
│   │   │   ├── qryNavigationPaneGroups.sql
│   │   │   ├── qryTestSqlFormat.bas
│   │   │   ├── qryTestSqlFormat.sql
│   │   │   ├── qryVBAFunction.bas
│   │   │   └── qryVBAFunction.sql
│   │   ├── relations/
│   │   │   └── tblInternaltblSaveXML.json
│   │   ├── reports/
│   │   │   ├── rptDefaultPrinter.bas
│   │   │   ├── rptDefaultPrinter.cls
│   │   │   ├── rptNavigationPaneGroups.bas
│   │   │   ├── rptNavigationPaneGroups.cls
│   │   │   ├── rptNavigationPaneGroups.json
│   │   │   ├── rptNonDefaultPaperSize.bas
│   │   │   ├── rptNonDefaultPaperSize.cls
│   │   │   └── rptNonDefaultPaperSize.json
│   │   ├── savedspecs/
│   │   │   └── Export-MSysIMEXColumns.json
│   │   ├── tables/
│   │   │   ├── tblInternal.txt
│   │   │   ├── tblLinkedAccess.xml
│   │   │   └── tblSaveXML.xml
│   │   ├── tbldefs/
│   │   │   ├── ImageFile.sql
│   │   │   ├── ImageFile.xml
│   │   │   ├── USysApplicationLog.sql
│   │   │   ├── USysApplicationLog.xml
│   │   │   ├── tblAttachment.sql
│   │   │   ├── tblAttachment.xml
│   │   │   ├── tblColors.json
│   │   │   ├── tblHidden.sql
│   │   │   ├── tblHidden.xml
│   │   │   ├── tblInternal.sql
│   │   │   ├── tblInternal.xml
│   │   │   ├── tblLinkedAccess.json
│   │   │   ├── tblLinkedCSV.json
│   │   │   ├── tblLinkedExcel.json
│   │   │   ├── tblSaveXML.sql
│   │   │   └── tblSaveXML.xml
│   │   ├── tdmacros/
│   │   │   └── tblSaveXML.xml
│   │   ├── themes/
│   │   │   ├── Angles.thmx
│   │   │   ├── Executive.thmx
│   │   │   └── Office Theme.thmx
│   │   ├── vbe-project.json
│   │   ├── vbe-references.json
│   │   ├── vbeforms/
│   │   │   ├── frmForm20.frm
│   │   │   ├── frmForm20.frx
│   │   │   └── frmForm20.json
│   │   └── vcs-options.json
│   └── Workbook.xlsx
├── Translation/
│   ├── MSAccessVCS.pot
│   ├── en_TEST.po
│   └── pt_BR.po
├── Version Control.accda.src/
│   ├── dbs-properties.json
│   ├── documents.json
│   ├── forms/
│   │   ├── frmVCSConflict.bas
│   │   ├── frmVCSConflict.cls
│   │   ├── frmVCSConflictList.bas
│   │   ├── frmVCSConflictList.cls
│   │   ├── frmVCSDatabase.bas
│   │   ├── frmVCSDatabase.cls
│   │   ├── frmVCSInstall.bas
│   │   ├── frmVCSInstall.cls
│   │   ├── frmVCSMain.bas
│   │   ├── frmVCSMain.cls
│   │   ├── frmVCSOptions.bas
│   │   ├── frmVCSOptions.cls
│   │   ├── frmVCSSplitFiles.bas
│   │   ├── frmVCSSplitFiles.cls
│   │   ├── frmVCSTableData.bas
│   │   └── frmVCSTableData.cls
│   ├── macros/
│   │   └── autoexec.bas
│   ├── modules/
│   │   ├── IDbComponent.cls
│   │   ├── IDbSchema.cls
│   │   ├── clsAdpFunction.cls
│   │   ├── clsAdpProcedure.cls
│   │   ├── clsAdpServerView.cls
│   │   ├── clsAdpTable.cls
│   │   ├── clsAdpTrigger.cls
│   │   ├── clsConcat.cls
│   │   ├── clsConflictItem.cls
│   │   ├── clsConflicts.cls
│   │   ├── clsConnectionODBC.cls
│   │   ├── clsDbCommandBar.cls
│   │   ├── clsDbConnection.cls
│   │   ├── clsDbDocument.cls
│   │   ├── clsDbForm.cls
│   │   ├── clsDbHiddenAttribute.cls
│   │   ├── clsDbImexSpec.cls
│   │   ├── clsDbMacro.cls
│   │   ├── clsDbModule.cls
│   │   ├── clsDbNavPaneGroup.cls
│   │   ├── clsDbProjProperty.cls
│   │   ├── clsDbProject.cls
│   │   ├── clsDbProperty.cls
│   │   ├── clsDbQuery.cls
│   │   ├── clsDbRelation.cls
│   │   ├── clsDbReport.cls
│   │   ├── clsDbSavedSpec.cls
│   │   ├── clsDbSharedImage.cls
│   │   ├── clsDbTableData.cls
│   │   ├── clsDbTableDataMacro.cls
│   │   ├── clsDbTableDef.cls
│   │   ├── clsDbTheme.cls
│   │   ├── clsDbVbeForm.cls
│   │   ├── clsDbVbeProject.cls
│   │   ├── clsDbVbeReference.cls
│   │   ├── clsDevMode.cls
│   │   ├── clsDotEnv.cls
│   │   ├── clsGitIntegration.cls
│   │   ├── clsJob.cls
│   │   ├── clsLblProg.cls
│   │   ├── clsLog.cls
│   │   ├── clsOptions.cls
│   │   ├── clsPerformance.cls
│   │   ├── clsPerformanceItem.cls
│   │   ├── clsSchemaMsSql.cls
│   │   ├── clsSchemaMySql.cls
│   │   ├── clsSourceParser.cls
│   │   ├── clsSqlFormatter.cls
│   │   ├── clsTranslation.cls
│   │   ├── clsVCSIndex.cls
│   │   ├── clsVCSIndexItem.cls
│   │   ├── clsVersionControl.cls
│   │   ├── clsViewDiff.cls
│   │   ├── clsWorker.cls
│   │   ├── modAPI.bas
│   │   ├── modAddInMenu.bas
│   │   ├── modComAddIn.bas
│   │   ├── modConnect.bas
│   │   ├── modConstants.bas
│   │   ├── modDatabase.bas
│   │   ├── modEncoding.bas
│   │   ├── modErrorHandling.bas
│   │   ├── modExportOnSaveHook.bas
│   │   ├── modFileAccess.bas
│   │   ├── modFileWinAPI.bas
│   │   ├── modFunctions.bas
│   │   ├── modHash.bas
│   │   ├── modImportExport.bas
│   │   ├── modInstall.bas
│   │   ├── modJsonConverter.bas
│   │   ├── modLibReference.bas
│   │   ├── modObjects.bas
│   │   ├── modOrphaned.bas
│   │   ├── modRepair.bas
│   │   ├── modResource.bas
│   │   ├── modRibbonStrings.bas
│   │   ├── modSqlFunctions.bas
│   │   ├── modStaging.bas
│   │   ├── modTimer.bas
│   │   ├── modUIAutomation.bas
│   │   ├── modUnitTesting.bas
│   │   ├── modUtcConverter.bas
│   │   ├── modVCSUtility.bas
│   │   ├── modVbeForm.bas
│   │   ├── modWizHook.bas
│   │   └── modZip.bas
│   ├── nav-pane-groups.json
│   ├── project.json
│   ├── queries/
│   │   ├── qryMsSqlServerObjects.bas
│   │   ├── qryMsSqlServerObjects.sql
│   │   ├── qryMySqlServerObjects.bas
│   │   ├── qryMySqlServerObjects.sql
│   │   ├── qryNavPaneGroups.bas
│   │   ├── qryNavPaneGroups.sql
│   │   ├── qryStrings.bas
│   │   ├── qryStrings.sql
│   │   ├── qryTranslatedStrings.bas
│   │   └── qryTranslatedStrings.sql
│   ├── tbldefs/
│   │   ├── tblConflicts.sql
│   │   ├── tblConflicts.xml
│   │   ├── tblLanguages.sql
│   │   ├── tblLanguages.xml
│   │   ├── tblResources.sql
│   │   ├── tblResources.xml
│   │   ├── tblStrings.sql
│   │   ├── tblStrings.xml
│   │   ├── tblTableData.sql
│   │   ├── tblTableData.xml
│   │   ├── tblTranslation.sql
│   │   └── tblTranslation.xml
│   ├── themes/
│   │   └── Office Theme.thmx
│   ├── vbe-project.json
│   ├── vbe-references.json
│   └── vcs-options.json
└── Wiki/
    ├── Documentation.md
    ├── Editing-and-Contributing.md
    ├── Export-Import-File-Types.md
    ├── FAQs.md
    ├── Home.md
    ├── Installation.md
    ├── Merge-Build.md
    ├── Options.md
    ├── Project-Scope.md
    ├── Quick-Start.md
    ├── Security-Considerations.md
    ├── Split-Files.md
    ├── Supported-Objects.md
    ├── Terminology-and-Style-Guide.md
    └── Translation.md
Download .txt
SYMBOL INDEX (12 symbols across 12 files)

FILE: Testing/Testing.accdb.src/tbldefs/ImageFile.sql
  type ImageFile (line 1) | CREATE TABLE [ImageFile] (

FILE: Testing/Testing.accdb.src/tbldefs/USysApplicationLog.sql
  type USysApplicationLog (line 1) | CREATE TABLE [USysApplicationLog] (

FILE: Testing/Testing.accdb.src/tbldefs/tblAttachment.sql
  type tblAttachment (line 1) | CREATE TABLE [tblAttachment] (

FILE: Testing/Testing.accdb.src/tbldefs/tblHidden.sql
  type tblHidden (line 1) | CREATE TABLE [tblHidden] (

FILE: Testing/Testing.accdb.src/tbldefs/tblInternal.sql
  type tblInternal (line 1) | CREATE TABLE [tblInternal] (

FILE: Testing/Testing.accdb.src/tbldefs/tblSaveXML.sql
  type tblSaveXML (line 1) | CREATE TABLE [tblSaveXML] (

FILE: Version Control.accda.src/tbldefs/tblConflicts.sql
  type tblConflicts (line 1) | CREATE TABLE [tblConflicts] (

FILE: Version Control.accda.src/tbldefs/tblLanguages.sql
  type tblLanguages (line 1) | CREATE TABLE [tblLanguages] (

FILE: Version Control.accda.src/tbldefs/tblResources.sql
  type tblResources (line 1) | CREATE TABLE [tblResources] (

FILE: Version Control.accda.src/tbldefs/tblStrings.sql
  type tblStrings (line 1) | CREATE TABLE [tblStrings] (

FILE: Version Control.accda.src/tbldefs/tblTableData.sql
  type tblTableData (line 1) | CREATE TABLE [tblTableData] (

FILE: Version Control.accda.src/tbldefs/tblTranslation.sql
  type tblTranslation (line 1) | CREATE TABLE [tblTranslation] (
Condensed preview — 248 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,252K chars).
[
  {
    "path": ".gitattributes",
    "chars": 1467,
    "preview": "###############################################################################\n# Set default behavior to automatically "
  },
  {
    "path": ".gitattributes.default",
    "chars": 1607,
    "preview": "# gitattributes template for Microsoft Access database source files\n# Source: https://github.com/joyfullservice/msaccess"
  },
  {
    "path": ".github/workflows/update-wiki.yml",
    "chars": 1090,
    "preview": "name: Update Wiki\n\non:\n  push:\n    branches:\n      - main\n    paths:\n      # Limit to changes to the wiki folder\n      -"
  },
  {
    "path": ".gitignore",
    "chars": 507,
    "preview": "# Version Control Add-in Binaries\n# (This should be built from source and not committed to version control)\n*.mdb\n*.accd"
  },
  {
    "path": ".gitignore.default",
    "chars": 611,
    "preview": "# gitattributes template for Microsoft Access database source files\n# Website: https://github.com/joyfullservice/msacces"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 6704,
    "preview": "Change log\n==========\nOngoing Development\n-------------------\njoyfullservice:\n\nAs this project continues to move forward"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 3518,
    "preview": "Found a Problem? Have an Idea?\n=============\nThe easiest way to contribute is to create a detailed [Issue](https://githu"
  },
  {
    "path": "Hook/README.txt",
    "chars": 154,
    "preview": "The source code for the hook library is licensed under LGPL-2.1, and can be found in the following repository:\n\nhttps://"
  },
  {
    "path": "LICENSE.txt",
    "chars": 836,
    "preview": "Copyright © 2012 Brendan Kidwell et al\n\nUse of msaccess-vcs-integration and documentation are subject to the following\nB"
  },
  {
    "path": "README.md",
    "chars": 5307,
    "preview": "Version Control Add-in (msaccess-vcs-addin)\n======================\n*for Microsoft Access Database Development*\n---------"
  },
  {
    "path": "Ribbon/MSAccessVCS_Ribbon.code-workspace",
    "chars": 18461,
    "preview": "{\n    \"folders\": [\n        {\n            \"name\": \"BUILD CONFIGURATIONS\",\n            \"uri\": \"twinbasic-builds:/___BUILDS"
  },
  {
    "path": "Ribbon/Ribbon.xml",
    "chars": 7795,
    "preview": "<!-- Created with IDBE Ribbon Creator (Version: 1.1041) -->\r\n<!--            http://www.RibbonCreator.com            --"
  },
  {
    "path": "Ribbon/Source/Resources/MANIFEST/#1.xml",
    "chars": 749,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\r\n<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVers"
  },
  {
    "path": "Ribbon/Source/Settings",
    "chars": 2914,
    "preview": "{\n\t\"configuration.inherits\": \"Defaults\",\n\t\"project.appTitle\": \"Microsoft Access Version Control Ribbon Add-in\",\n\t\"projec"
  },
  {
    "path": "Ribbon/Source/Sources/AddInRibbon.twin",
    "chars": 8236,
    "preview": "\nClass AddInRibbon\n\n\tImplements IDTExtensibility2\n\n\t/*\n\t\tPLEASE NOTE: make sure you create a DLL of the correct bitness "
  },
  {
    "path": "Ribbon/Source/Sources/DllRegistration.twin",
    "chars": 2087,
    "preview": "Module DllRegistration\n    \n    Private Const AddinProjectName As String = VBA.Compilation.CurrentProjectName\n    Privat"
  },
  {
    "path": "Ribbon/Source/Sources/JsonConverter.twin",
    "chars": 39407,
    "preview": "\nModule JsonConverter\n\n    ''\n    ' VBA-JSON v2.3.1\n    ' (c) Tim Hall - https://github.com/VBA-tools/VBA-JSON\n    '\n   "
  },
  {
    "path": "Testing/Linked.csv",
    "chars": 47,
    "preview": "ID,Color\n1,Red\n2,Orange\n3,Yellow\n4,Green\n5,Blue"
  },
  {
    "path": "Testing/Testing.accdb.src/dbs-properties.json",
    "chars": 4023,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbProperty\",\r\n    \"Description\": \"Database Properties (DAO)\"\r\n  },\r\n  \"Items\": {\r\n    "
  },
  {
    "path": "Testing/Testing.accdb.src/documents.json",
    "chars": 865,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbDocument\",\r\n    \"Description\": \"Database Documents Properties (DAO)\"\r\n  },\r\n  \"Items"
  },
  {
    "path": "Testing/Testing.accdb.src/forms/Form1.bas",
    "chars": 3963,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    DividingLines = NotDefault\r\n    AllowDesignChanges = NotDefault\r\n    "
  },
  {
    "path": "Testing/Testing.accdb.src/forms/frmColors.bas",
    "chars": 34336,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    RecordSelectors = NotDefault\r\n    NavigationButtons = NotDefault\r\n   "
  },
  {
    "path": "Testing/Testing.accdb.src/forms/frmColors.cls",
    "chars": 177,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Testing/Testing.accdb.src/forms/frmExtendedChars.bas",
    "chars": 3022,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    DividingLines = NotDefault\r\n    AllowDesignChanges = NotDefault\r\n    "
  },
  {
    "path": "Testing/Testing.accdb.src/forms/frmExtendedChars.cls",
    "chars": 19119,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Testing/Testing.accdb.src/forms/frmMain.bas",
    "chars": 17020,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    RecordSelectors = NotDefault\r\n    NavigationButtons = NotDefault\r\n   "
  },
  {
    "path": "Testing/Testing.accdb.src/forms/frmMain.cls",
    "chars": 10253,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Testing/Testing.accdb.src/forms/frmTestMenu.bas",
    "chars": 13368,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    PopUp = NotDefault\r\n    RecordSelectors = NotDefault\r\n    NavigationB"
  },
  {
    "path": "Testing/Testing.accdb.src/forms/frmTestMenu.cls",
    "chars": 384,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Testing/Testing.accdb.src/hidden-attributes.json",
    "chars": 227,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbHiddenAttribute\",\r\n    \"Description\": \"Database objects hidden attribute\"\r\n  },\r\n  \""
  },
  {
    "path": "Testing/Testing.accdb.src/images/1370126936_button_ok.json",
    "chars": 264,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbSharedImage\",\r\n    \"Description\": \"Shared Image Gallery Item\"\r\n  },\r\n  \"Items\": {\r\n "
  },
  {
    "path": "Testing/Testing.accdb.src/images/Colors.json",
    "chars": 236,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbSharedImage\",\r\n    \"Description\": \"Shared Image Gallery Item\"\r\n  },\r\n  \"Items\": {\r\n "
  },
  {
    "path": "Testing/Testing.accdb.src/images/button_error.json",
    "chars": 252,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbSharedImage\",\r\n    \"Description\": \"Shared Image Gallery Item\"\r\n  },\r\n  \"Items\": {\r\n "
  },
  {
    "path": "Testing/Testing.accdb.src/images/button_ok.json",
    "chars": 255,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbSharedImage\",\r\n    \"Description\": \"Shared Image Gallery Item\"\r\n  },\r\n  \"Items\": {\r\n "
  },
  {
    "path": "Testing/Testing.accdb.src/imexspecs/Linked Link Specification.json",
    "chars": 830,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbImexSpec\",\r\n    \"Description\": \"Import/Export Specification from MSysIMEXSpecs\"\r\n  }"
  },
  {
    "path": "Testing/Testing.accdb.src/imexspecs/Test 2.json",
    "chars": 811,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbImexSpec\",\r\n    \"Description\": \"Import/Export Specification from MSysIMEXSpecs\"\r\n  }"
  },
  {
    "path": "Testing/Testing.accdb.src/macros/AutoExec.bas",
    "chars": 900,
    "preview": "Version =196611\r\nColumnsShown =0\r\nBegin\r\n    Action =\"OpenForm\"\r\n    Argument =\"frmMain\"\r\n    Argument =\"0\"\r\n    Argume"
  },
  {
    "path": "Testing/Testing.accdb.src/menus/Demo Popup.json",
    "chars": 1206,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbCommandBar\",\r\n    \"Description\": \"CommandBar\"\r\n  },\r\n  \"Items\": {\r\n    \"AdaptiveMenu"
  },
  {
    "path": "Testing/Testing.accdb.src/menus/Special %5C%5C..%2F%2F Popup.json",
    "chars": 1294,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbCommandBar\",\r\n    \"Description\": \"CommandBar\"\r\n  },\r\n  \"Items\": {\r\n    \"AdaptiveMenu"
  },
  {
    "path": "Testing/Testing.accdb.src/modules/Module1.bas",
    "chars": 3176,
    "preview": "Attribute VB_Name = \"Module1\"\r\nOption Compare Database\r\nOption Explicit\r\n\r\n\r\nPrivate Type str_PRTMIP\r\n    strRGB As Str"
  },
  {
    "path": "Testing/Testing.accdb.src/modules/basExtendedChars.bas",
    "chars": 19023,
    "preview": "Attribute VB_Name = \"basExtendedChars\"\r\nOption Compare Database\r\nOption Explicit\r\n\r\n'——————————————————————————————————"
  },
  {
    "path": "Testing/Testing.accdb.src/modules/basUtility.bas",
    "chars": 7454,
    "preview": "Attribute VB_Name = \"basUtility\"\r\nOption Compare Database\r\nOption Explicit\r\n\r\n' Keep a persistent reference to file sys"
  },
  {
    "path": "Testing/Testing.accdb.src/modules/clsPerson.cls",
    "chars": 400,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsPerson\"\r\nAttribute VB_GlobalNameSpace = "
  },
  {
    "path": "Testing/Testing.accdb.src/modules/clsPopupMenu.cls",
    "chars": 16174,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsPopupMenu\"\r\nAttribute VB_GlobalNameSpace"
  },
  {
    "path": "Testing/Testing.accdb.src/modules/clsPublic.cls",
    "chars": 621,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsPublic\"\r\nAttribute VB_GlobalNameSpace = "
  },
  {
    "path": "Testing/Testing.accdb.src/nav-pane-groups.json",
    "chars": 1561,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbNavPaneGroup\",\r\n    \"Description\": \"Navigation Pane Custom Groups\"\r\n  },\r\n  \"Items\":"
  },
  {
    "path": "Testing/Testing.accdb.src/proj-properties.json",
    "chars": 166,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbProjProperty\",\r\n    \"Description\": \"Project Properties (Access)\"\r\n  },\r\n  \"Items\": {"
  },
  {
    "path": "Testing/Testing.accdb.src/project.json",
    "chars": 168,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbProject\",\r\n    \"Description\": \"Project\"\r\n  },\r\n  \"Items\": {\r\n    \"FileFormat\": 12,\r\n"
  },
  {
    "path": "Testing/Testing.accdb.src/queries/qryFormControl.bas",
    "chars": 1092,
    "preview": "Operation =1\r\nOption =0\r\nBegin InputTables\r\nEnd\r\nBegin OutputColumns\r\n    Alias =\"FormControl\"\r\n    Expression =\"[Forms"
  },
  {
    "path": "Testing/Testing.accdb.src/queries/qryFormControl.sql",
    "chars": 164,
    "preview": "SELECT\r\n  [Forms]![frmColors]![Text18] AS FormControl,\r\n  IIf(\r\n    [Forms]![frmVCSInstall]![chkUseRibbon],\r\n    Eval(\""
  },
  {
    "path": "Testing/Testing.accdb.src/queries/qryNavigationPaneGroups.bas",
    "chars": 3258,
    "preview": "Operation =1\r\nOption =0\r\nWhere =\"(((MSysNavPaneGroups.Name) Is Not Null) AND ((MSysNavPaneGroups.GroupCategoryID)\"\r\n   "
  },
  {
    "path": "Testing/Testing.accdb.src/queries/qryNavigationPaneGroups.sql",
    "chars": 821,
    "preview": "SELECT\r\n  MSysNavPaneGroups.Name AS GroupName,\r\n  MSysNavPaneGroups.Flags AS GroupFlags,\r\n  MSysNavPaneGroups.Position "
  },
  {
    "path": "Testing/Testing.accdb.src/queries/qryTestSqlFormat.bas",
    "chars": 557,
    "preview": "dbMemo \"SQL\" =\"SELECT MSysQueries.Attribute, MSysQueries.Flag\\015\\012FROM MSysQueries\\015\\012WH\"\r\n    \"ERE (((MSysQueri"
  },
  {
    "path": "Testing/Testing.accdb.src/queries/qryTestSqlFormat.sql",
    "chars": 254,
    "preview": "SELECT\r\n  MSysQueries.Attribute,\r\n  MSysQueries.Flag\r\nFROM\r\n  MSysQueries\r\nWHERE\r\n  (\r\n    (\r\n      (MSysQueries.Flag) "
  },
  {
    "path": "Testing/Testing.accdb.src/queries/qryVBAFunction.bas",
    "chars": 980,
    "preview": "Operation =1\r\nOption =0\r\nBegin InputTables\r\n    Name =\"tblInternal\"\r\nEnd\r\nBegin OutputColumns\r\n    Alias =\"DatabaseFile"
  },
  {
    "path": "Testing/Testing.accdb.src/queries/qryVBAFunction.sql",
    "chars": 72,
    "preview": "SELECT\r\n  GetDatabaseFileName() AS DatabaseFile\r\nFROM\r\n  tblInternal;\r\n"
  },
  {
    "path": "Testing/Testing.accdb.src/relations/tblInternaltblSaveXML.json",
    "chars": 354,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbRelation\",\r\n    \"Description\": \"Database relationship\"\r\n  },\r\n  \"Items\": {\r\n    \"Nam"
  },
  {
    "path": "Testing/Testing.accdb.src/reports/rptDefaultPrinter.bas",
    "chars": 2798,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Report\r\n    LayoutForPrint = NotDefault\r\n    DividingLines = NotDefault\r\n    Al"
  },
  {
    "path": "Testing/Testing.accdb.src/reports/rptDefaultPrinter.cls",
    "chars": 177,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Testing/Testing.accdb.src/reports/rptNavigationPaneGroups.bas",
    "chars": 9339,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Report\r\n    LayoutForPrint = NotDefault\r\n    DividingLines = NotDefault\r\n    Al"
  },
  {
    "path": "Testing/Testing.accdb.src/reports/rptNavigationPaneGroups.cls",
    "chars": 177,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Testing/Testing.accdb.src/reports/rptNavigationPaneGroups.json",
    "chars": 622,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbReport\",\r\n    \"Description\": \"rptNavigationPaneGroups Print Settings\"\r\n  },\r\n  \"Item"
  },
  {
    "path": "Testing/Testing.accdb.src/reports/rptNonDefaultPaperSize.bas",
    "chars": 2770,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Report\r\n    LayoutForPrint = NotDefault\r\n    DividingLines = NotDefault\r\n    Al"
  },
  {
    "path": "Testing/Testing.accdb.src/reports/rptNonDefaultPaperSize.cls",
    "chars": 177,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Testing/Testing.accdb.src/reports/rptNonDefaultPaperSize.json",
    "chars": 616,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbReport\",\r\n    \"Description\": \"rptNonDefaultPaperSize Print Settings\"\r\n  },\r\n  \"Items"
  },
  {
    "path": "Testing/Testing.accdb.src/savedspecs/Export-MSysIMEXColumns.json",
    "chars": 590,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbSavedSpec\",\r\n    \"Description\": \"Saved Import/Export Specification\"\r\n  },\r\n  \"Items\""
  },
  {
    "path": "Testing/Testing.accdb.src/tables/tblInternal.txt",
    "chars": 173,
    "preview": "ID\tObjectType\tNotes\tIndex&Test\tMyAttachment\n1\tTable\t\t\tUNSUPPORTED DATA TYPE\n2\tForm\t\t\tUNSUPPORTED DATA TYPE\n3\tQuery\t\t\tUN"
  },
  {
    "path": "Testing/Testing.accdb.src/tables/tblLinkedAccess.xml",
    "chars": 477,
    "preview": "<?xml version=\"1.0\"?>\r\n<dataroot xmlns:od=\"urn:schemas-microsoft-com:officedata\">\r\n  <tblLinkedAccess>\r\n    <ID>1</ID>\r"
  },
  {
    "path": "Testing/Testing.accdb.src/tables/tblSaveXML.xml",
    "chars": 790,
    "preview": "<?xml version=\"1.0\"?>\r\n<dataroot xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n  <tblSaveXML>\r\n    <ID>1</ID>"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/ImageFile.sql",
    "chars": 118,
    "preview": "CREATE TABLE [ImageFile] (\r\n  [FileData] VARCHAR (255),\r\n  [FileName] VARCHAR (255),\r\n  [FileType] VARCHAR (255)\r\n)\r\n"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/ImageFile.xml",
    "chars": 2316,
    "preview": "<?xml version=\"1.0\"?>\r\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:od=\"urn:schemas-microsoft-com:off"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/USysApplicationLog.sql",
    "chars": 354,
    "preview": "CREATE TABLE [USysApplicationLog] (\r\n  [ID] AUTOINCREMENT CONSTRAINT [PrimaryKey] PRIMARY KEY UNIQUE NOT NULL,\r\n  [Sour"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/USysApplicationLog.xml",
    "chars": 4899,
    "preview": "<?xml version=\"1.0\"?>\r\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:od=\"urn:schemas-microsoft-com:off"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblAttachment.sql",
    "chars": 163,
    "preview": "CREATE TABLE [tblAttachment] (\r\n  [ID] AUTOINCREMENT CONSTRAINT [PrimaryKey] PRIMARY KEY UNIQUE NOT NULL,\r\n  [ImageFile"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblAttachment.xml",
    "chars": 7542,
    "preview": "<?xml version=\"1.0\"?>\r\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:od=\"urn:schemas-microsoft-com:off"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblColors.json",
    "chars": 276,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbTableDef\",\r\n    \"Description\": \"Linked Table\"\r\n  },\r\n  \"Items\": {\r\n    \"Name\": \"tblC"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblHidden.sql",
    "chars": 106,
    "preview": "CREATE TABLE [tblHidden] (\r\n  [ID] AUTOINCREMENT CONSTRAINT [PrimaryKey] PRIMARY KEY UNIQUE NOT NULL\r\n)\r\n"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblHidden.xml",
    "chars": 1283,
    "preview": "<?xml version=\"1.0\"?>\r\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:od=\"urn:schemas-microsoft-com:off"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblInternal.sql",
    "chars": 233,
    "preview": "CREATE TABLE [tblInternal] (\r\n  [ID] AUTOINCREMENT,\r\n  [ObjectType] VARCHAR (255),\r\n  [Notes] VARCHAR (255),\r\n  [Index&"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblInternal.xml",
    "chars": 11442,
    "preview": "<?xml version=\"1.0\"?>\r\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:od=\"urn:schemas-microsoft-com:off"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblLinkedAccess.json",
    "chars": 300,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbTableDef\",\r\n    \"Description\": \"Linked Table\"\r\n  },\r\n  \"Items\": {\r\n    \"Name\": \"tblL"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblLinkedCSV.json",
    "chars": 331,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbTableDef\",\r\n    \"Description\": \"Linked Table\"\r\n  },\r\n  \"Items\": {\r\n    \"Name\": \"tblL"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblLinkedExcel.json",
    "chars": 293,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbTableDef\",\r\n    \"Description\": \"Linked Table\"\r\n  },\r\n  \"Items\": {\r\n    \"Name\": \"tblL"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblSaveXML.sql",
    "chars": 293,
    "preview": "CREATE TABLE [tblSaveXML] (\r\n  [ID] AUTOINCREMENT,\r\n  [ObjectType] VARCHAR (255),\r\n  [Notes] VARCHAR (255),\r\n  [AddDate"
  },
  {
    "path": "Testing/Testing.accdb.src/tbldefs/tblSaveXML.xml",
    "chars": 12727,
    "preview": "<?xml version=\"1.0\"?>\r\n<xsd:schema xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:od=\"urn:schemas-microsoft-com:off"
  },
  {
    "path": "Testing/Testing.accdb.src/tdmacros/tblSaveXML.xml",
    "chars": 916,
    "preview": "<?xml version=\"1.0\"?>\r\n<DataMacros xmlns=\"http://schemas.microsoft.com/office/accessservices/2009/11/application\">\r\n  <"
  },
  {
    "path": "Testing/Testing.accdb.src/vbe-project.json",
    "chars": 388,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbVbeProject\",\r\n    \"Description\": \"VBE Project\"\r\n  },\r\n  \"Items\": {\r\n    \"Name\": \"VCS"
  },
  {
    "path": "Testing/Testing.accdb.src/vbe-references.json",
    "chars": 871,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbVbeReference\",\r\n    \"Description\": \"VBE References\"\r\n  },\r\n  \"Items\": {\r\n    \"stdole"
  },
  {
    "path": "Testing/Testing.accdb.src/vbeforms/frmForm20.frm",
    "chars": 514,
    "preview": "VERSION 5.00\r\nBegin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} frmForm20 \r\n   Caption         =   \"MS Forms 2.0 Example\"\r\n  "
  },
  {
    "path": "Testing/Testing.accdb.src/vbeforms/frmForm20.json",
    "chars": 16328,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbVbeForm\",\r\n    \"Description\": \"Serialized VBE Form\"\r\n  },\r\n  \"Items\": {\r\n    \"Name\":"
  },
  {
    "path": "Testing/Testing.accdb.src/vcs-options.json",
    "chars": 1865,
    "preview": "{\r\n  \"Info\": {\r\n    \"AddinVersion\": \"4.1.2\",\r\n    \"AccessVersion\": \"14.0 32-bit\"\r\n  },\r\n  \"Options\": {\r\n    \"ExportFold"
  },
  {
    "path": "Translation/MSAccessVCS.pot",
    "chars": 23121,
    "preview": "# Version Control System Add-in for Microsoft Access\n# https://github.com/joyfullservice/msaccess-vcs-addin\n# This file "
  },
  {
    "path": "Translation/en_TEST.po",
    "chars": 31084,
    "preview": "# Version Control System Add-in for Microsoft Access\n# https://github.com/joyfullservice/msaccess-vcs-addin\n# This file "
  },
  {
    "path": "Translation/pt_BR.po",
    "chars": 24604,
    "preview": "# Version Control System Add-in for Microsoft Access\n# https://github.com/joyfullservice/msaccess-vcs-addin\n# This file "
  },
  {
    "path": "Version Control.accda.src/dbs-properties.json",
    "chars": 3906,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbProperty\",\r\n    \"Description\": \"Database Properties (DAO)\"\r\n  },\r\n  \"Items\": {\r\n    "
  },
  {
    "path": "Version Control.accda.src/documents.json",
    "chars": 487,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbDocument\",\r\n    \"Description\": \"Database Documents Properties (DAO)\"\r\n  },\r\n  \"Items"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSConflict.bas",
    "chars": 54946,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    PopUp = NotDefault\r\n    Modal = NotDefault\r\n    RecordSelectors = Not"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSConflict.cls",
    "chars": 5271,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSConflictList.bas",
    "chars": 16547,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    RecordSelectors = NotDefault\r\n    NavigationButtons = NotDefault\r\n   "
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSConflictList.cls",
    "chars": 3533,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSDatabase.bas",
    "chars": 38833,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    PopUp = NotDefault\r\n    RecordSelectors = NotDefault\r\n    AutoCenter "
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSDatabase.cls",
    "chars": 16269,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSInstall.bas",
    "chars": 131643,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    PopUp = NotDefault\r\n    Modal = NotDefault\r\n    RecordSelectors = Not"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSInstall.cls",
    "chars": 6223,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSMain.bas",
    "chars": 121892,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    PopUp = NotDefault\r\n    RecordSelectors = NotDefault\r\n    AutoCenter "
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSMain.cls",
    "chars": 20570,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSOptions.bas",
    "chars": 218258,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    PopUp = NotDefault\r\n    RecordSelectors = NotDefault\r\n    AutoCenter "
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSOptions.cls",
    "chars": 36967,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSSplitFiles.bas",
    "chars": 59906,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    PopUp = NotDefault\r\n    RecordSelectors = NotDefault\r\n    AutoCenter "
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSSplitFiles.cls",
    "chars": 6037,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSTableData.bas",
    "chars": 10272,
    "preview": "Version =20\r\nVersionRequired =20\r\nBegin Form\r\n    RecordSelectors = NotDefault\r\n    NavigationButtons = NotDefault\r\n   "
  },
  {
    "path": "Version Control.accda.src/forms/frmVCSTableData.cls",
    "chars": 1070,
    "preview": "Attribute VB_GlobalNameSpace = False\r\nAttribute VB_Creatable = True\r\nAttribute VB_PredeclaredId = True\r\nAttribute VB_Ex"
  },
  {
    "path": "Version Control.accda.src/macros/autoexec.bas",
    "chars": 1999,
    "preview": "Version =196611\r\nColumnsShown =0\r\nBegin\r\n    Action =\"SetLocalVar\"\r\n    Argument =\"__*L0_\"\r\n    Argument =\"[CurrentProj"
  },
  {
    "path": "Version Control.accda.src/modules/IDbComponent.cls",
    "chars": 9022,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"IDbComponent\"\r\nAttribute VB_GlobalNameSpace"
  },
  {
    "path": "Version Control.accda.src/modules/IDbSchema.cls",
    "chars": 4007,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"IDbSchema\"\r\nAttribute VB_GlobalNameSpace = "
  },
  {
    "path": "Version Control.accda.src/modules/clsAdpFunction.cls",
    "chars": 12638,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsAdpFunction\"\r\nAttribute VB_GlobalNameSpa"
  },
  {
    "path": "Version Control.accda.src/modules/clsAdpProcedure.cls",
    "chars": 12680,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsAdpProcedure\"\r\nAttribute VB_GlobalNameSp"
  },
  {
    "path": "Version Control.accda.src/modules/clsAdpServerView.cls",
    "chars": 12602,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsAdpServerView\"\r\nAttribute VB_GlobalNameS"
  },
  {
    "path": "Version Control.accda.src/modules/clsAdpTable.cls",
    "chars": 13937,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsAdpTable\"\r\nAttribute VB_GlobalNameSpace "
  },
  {
    "path": "Version Control.accda.src/modules/clsAdpTrigger.cls",
    "chars": 13188,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsAdpTrigger\"\r\nAttribute VB_GlobalNameSpac"
  },
  {
    "path": "Version Control.accda.src/modules/clsConcat.cls",
    "chars": 11719,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsConcat\"\r\nAttribute VB_GlobalNameSpace = "
  },
  {
    "path": "Version Control.accda.src/modules/clsConflictItem.cls",
    "chars": 4461,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsConflictItem\"\r\nAttribute VB_GlobalNameSp"
  },
  {
    "path": "Version Control.accda.src/modules/clsConflicts.cls",
    "chars": 7784,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsConflicts\"\r\nAttribute VB_GlobalNameSpace"
  },
  {
    "path": "Version Control.accda.src/modules/clsConnectionODBC.cls",
    "chars": 18282,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsConnectionODBC\"\r\nAttribute VB_GlobalName"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbCommandBar.cls",
    "chars": 34398,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbCommandBar\"\r\nAttribute VB_GlobalNameSp"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbConnection.cls",
    "chars": 18974,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbConnection\"\r\nAttribute VB_GlobalNameSp"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbDocument.cls",
    "chars": 21228,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbDocument\"\r\nAttribute VB_GlobalNameSpac"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbForm.cls",
    "chars": 14312,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbForm\"\r\nAttribute VB_GlobalNameSpace = "
  },
  {
    "path": "Version Control.accda.src/modules/clsDbHiddenAttribute.cls",
    "chars": 19293,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbHiddenAttribute\"\r\nAttribute VB_GlobalN"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbImexSpec.cls",
    "chars": 19299,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbImexSpec\"\r\nAttribute VB_GlobalNameSpac"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbMacro.cls",
    "chars": 12701,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbMacro\"\r\nAttribute VB_GlobalNameSpace ="
  },
  {
    "path": "Version Control.accda.src/modules/clsDbModule.cls",
    "chars": 19874,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbModule\"\r\nAttribute VB_GlobalNameSpace "
  },
  {
    "path": "Version Control.accda.src/modules/clsDbNavPaneGroup.cls",
    "chars": 24581,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbNavPaneGroup\"\r\nAttribute VB_GlobalName"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbProjProperty.cls",
    "chars": 17347,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbProjProperty\"\r\nAttribute VB_GlobalName"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbProject.cls",
    "chars": 14963,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbProject\"\r\nAttribute VB_GlobalNameSpace"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbProperty.cls",
    "chars": 22445,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbProperty\"\r\nAttribute VB_GlobalNameSpac"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbQuery.cls",
    "chars": 16064,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbQuery\"\r\nAttribute VB_GlobalNameSpace ="
  },
  {
    "path": "Version Control.accda.src/modules/clsDbRelation.cls",
    "chars": 18364,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbRelation\"\r\nAttribute VB_GlobalNameSpac"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbReport.cls",
    "chars": 13463,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbReport\"\r\nAttribute VB_GlobalNameSpace "
  },
  {
    "path": "Version Control.accda.src/modules/clsDbSavedSpec.cls",
    "chars": 15562,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbSavedSpec\"\r\nAttribute VB_GlobalNameSpa"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbSharedImage.cls",
    "chars": 27928,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbSharedImage\"\r\nAttribute VB_GlobalNameS"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbTableData.cls",
    "chars": 28841,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbTableData\"\r\nAttribute VB_GlobalNameSpa"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbTableDataMacro.cls",
    "chars": 14854,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbTableDataMacro\"\r\nAttribute VB_GlobalNa"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbTableDef.cls",
    "chars": 37412,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbTableDef\"\r\nAttribute VB_GlobalNameSpac"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbTheme.cls",
    "chars": 26262,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbTheme\"\r\nAttribute VB_GlobalNameSpace ="
  },
  {
    "path": "Version Control.accda.src/modules/clsDbVbeForm.cls",
    "chars": 18741,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbVbeForm\"\r\nAttribute VB_GlobalNameSpace"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbVbeProject.cls",
    "chars": 20432,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbVbeProject\"\r\nAttribute VB_GlobalNameSp"
  },
  {
    "path": "Version Control.accda.src/modules/clsDbVbeReference.cls",
    "chars": 21546,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDbVbeReference\"\r\nAttribute VB_GlobalName"
  },
  {
    "path": "Version Control.accda.src/modules/clsDevMode.cls",
    "chars": 66942,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDevMode\"\r\nAttribute VB_GlobalNameSpace ="
  },
  {
    "path": "Version Control.accda.src/modules/clsDotEnv.cls",
    "chars": 5665,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsDotEnv\"\r\nAttribute VB_GlobalNameSpace = "
  },
  {
    "path": "Version Control.accda.src/modules/clsGitIntegration.cls",
    "chars": 25897,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsGitIntegration\"\r\nAttribute VB_GlobalName"
  },
  {
    "path": "Version Control.accda.src/modules/clsJob.cls",
    "chars": 367,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsJob\"\r\nAttribute VB_GlobalNameSpace = Fal"
  },
  {
    "path": "Version Control.accda.src/modules/clsLblProg.cls",
    "chars": 20077,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsLblProg\"\r\nAttribute VB_GlobalNameSpace ="
  },
  {
    "path": "Version Control.accda.src/modules/clsLog.cls",
    "chars": 13868,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsLog\"\r\nAttribute VB_GlobalNameSpace = Fal"
  },
  {
    "path": "Version Control.accda.src/modules/clsOptions.cls",
    "chars": 33357,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsOptions\"\r\nAttribute VB_GlobalNameSpace ="
  },
  {
    "path": "Version Control.accda.src/modules/clsPerformance.cls",
    "chars": 25103,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsPerformance\"\r\nAttribute VB_GlobalNameSpa"
  },
  {
    "path": "Version Control.accda.src/modules/clsPerformanceItem.cls",
    "chars": 384,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsPerformanceItem\"\r\nAttribute VB_GlobalNam"
  },
  {
    "path": "Version Control.accda.src/modules/clsSchemaMsSql.cls",
    "chars": 26779,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsSchemaMsSql\"\r\nAttribute VB_GlobalNameSpa"
  },
  {
    "path": "Version Control.accda.src/modules/clsSchemaMySql.cls",
    "chars": 21356,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsSchemaMySql\"\r\nAttribute VB_GlobalNameSpa"
  },
  {
    "path": "Version Control.accda.src/modules/clsSourceParser.cls",
    "chars": 48273,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsSourceParser\"\r\nAttribute VB_GlobalNameSp"
  },
  {
    "path": "Version Control.accda.src/modules/clsSqlFormatter.cls",
    "chars": 77913,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsSqlFormatter\"\r\nAttribute VB_GlobalNameSp"
  },
  {
    "path": "Version Control.accda.src/modules/clsTranslation.cls",
    "chars": 59961,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsTranslation\"\r\nAttribute VB_GlobalNameSpa"
  },
  {
    "path": "Version Control.accda.src/modules/clsVCSIndex.cls",
    "chars": 34694,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsVCSIndex\"\r\nAttribute VB_GlobalNameSpace "
  },
  {
    "path": "Version Control.accda.src/modules/clsVCSIndexItem.cls",
    "chars": 859,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsVCSIndexItem\"\r\nAttribute VB_GlobalNameSp"
  },
  {
    "path": "Version Control.accda.src/modules/clsVersionControl.cls",
    "chars": 24995,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsVersionControl\"\r\nAttribute VB_GlobalName"
  },
  {
    "path": "Version Control.accda.src/modules/clsViewDiff.cls",
    "chars": 9735,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsViewDiff\"\r\nAttribute VB_GlobalNameSpace "
  },
  {
    "path": "Version Control.accda.src/modules/clsWorker.cls",
    "chars": 22044,
    "preview": "VERSION 1.0 CLASS\r\nBEGIN\r\n  MultiUse = -1  'True\r\nEND\r\nAttribute VB_Name = \"clsWorker\"\r\nAttribute VB_GlobalNameSpace = "
  },
  {
    "path": "Version Control.accda.src/modules/modAPI.bas",
    "chars": 10819,
    "preview": "Attribute VB_Name = \"modAPI\"\r\n'---------------------------------------------------------------------------------------\r"
  },
  {
    "path": "Version Control.accda.src/modules/modAddInMenu.bas",
    "chars": 1739,
    "preview": "Attribute VB_Name = \"modAddInMenu\"\r\n'----------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modComAddIn.bas",
    "chars": 13532,
    "preview": "Attribute VB_Name = \"modCOMAddIn\"\r\n'-----------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modConnect.bas",
    "chars": 8570,
    "preview": "Attribute VB_Name = \"modConnect\"\r\n'------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modConstants.bas",
    "chars": 4796,
    "preview": "Attribute VB_Name = \"modConstants\"\r\n'----------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modDatabase.bas",
    "chars": 31941,
    "preview": "Attribute VB_Name = \"modDatabase\"\r\n'-----------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modEncoding.bas",
    "chars": 25345,
    "preview": "Attribute VB_Name = \"modEncoding\"\r\n'-----------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modErrorHandling.bas",
    "chars": 6048,
    "preview": "Attribute VB_Name = \"modErrorHandling\"\r\n'------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modExportOnSaveHook.bas",
    "chars": 8878,
    "preview": "Attribute VB_Name = \"modExportOnSaveHook\"\r\n'---------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modFileAccess.bas",
    "chars": 29784,
    "preview": "Attribute VB_Name = \"modFileAccess\"\r\n'---------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modFileWinAPI.bas",
    "chars": 13749,
    "preview": "Attribute VB_Name = \"modFileWinAPI\"\r\n'---------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modFunctions.bas",
    "chars": 40213,
    "preview": "Attribute VB_Name = \"modFunctions\"\r\n'----------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modHash.bas",
    "chars": 15499,
    "preview": "Attribute VB_Name = \"modHash\"\r\n'---------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modImportExport.bas",
    "chars": 65721,
    "preview": "Attribute VB_Name = \"modImportExport\"\r\n'-------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modInstall.bas",
    "chars": 43623,
    "preview": "Attribute VB_Name = \"modInstall\"\r\n'------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modJsonConverter.bas",
    "chars": 38207,
    "preview": "Attribute VB_Name = \"modJsonConverter\"\r\n''\r\n' VBA-JSON v2.3.1\r\n' (c) Tim Hall - https://github.com/VBA-tools/VBA-JSON\r\n"
  },
  {
    "path": "Version Control.accda.src/modules/modLibReference.bas",
    "chars": 9662,
    "preview": "Attribute VB_Name = \"modLibReference\"\r\n'-------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modObjects.bas",
    "chars": 9517,
    "preview": "Attribute VB_Name = \"modObjects\"\r\n'------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modOrphaned.bas",
    "chars": 7165,
    "preview": "Attribute VB_Name = \"modOrphaned\"\r\n'-----------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modRepair.bas",
    "chars": 5684,
    "preview": "Attribute VB_Name = \"modRepair\"\r\n'-------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modResource.bas",
    "chars": 7475,
    "preview": "Attribute VB_Name = \"modResource\"\r\n'-----------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modRibbonStrings.bas",
    "chars": 6036,
    "preview": "Attribute VB_Name = \"modRibbonStrings\"\r\nOption Compare Database\r\nOption Private Module\r\nOption Explicit\r\n\r\nPrivate m_dS"
  },
  {
    "path": "Version Control.accda.src/modules/modSqlFunctions.bas",
    "chars": 6182,
    "preview": "Attribute VB_Name = \"modSqlFunctions\"\r\n'-------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modStaging.bas",
    "chars": 3560,
    "preview": "Attribute VB_Name = \"modStaging\"\r\n'------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modTimer.bas",
    "chars": 4486,
    "preview": "Attribute VB_Name = \"modTimer\"\r\n'--------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modUIAutomation.bas",
    "chars": 6336,
    "preview": "Attribute VB_Name = \"modUIAutomation\"\r\n'-------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modUnitTesting.bas",
    "chars": 16534,
    "preview": "Attribute VB_Name = \"modUnitTesting\"\r\nOption Compare Database\r\nOption Explicit\r\nOption Private Module\r\n\r\nPrivate Const "
  },
  {
    "path": "Version Control.accda.src/modules/modUtcConverter.bas",
    "chars": 42442,
    "preview": "Attribute VB_Name = \"modUtcConverter\"\r\nPrivate Const ModuleName As String = \"modUtcConverter\"\r\n\r\n''\r\n' VBA-UTC v2.0.1\r\n"
  },
  {
    "path": "Version Control.accda.src/modules/modVCSUtility.bas",
    "chars": 58726,
    "preview": "Attribute VB_Name = \"modVCSUtility\"\r\n'---------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modVbeForm.bas",
    "chars": 19721,
    "preview": "Attribute VB_Name = \"modVbeForm\"\r\n'------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modWizHook.bas",
    "chars": 2723,
    "preview": "Attribute VB_Name = \"modWizHook\"\r\n'------------------------------------------------------------------------------------"
  },
  {
    "path": "Version Control.accda.src/modules/modZip.bas",
    "chars": 5149,
    "preview": "Attribute VB_Name = \"modZip\"\r\n'---------------------------------------------------------------------------------------\r"
  },
  {
    "path": "Version Control.accda.src/nav-pane-groups.json",
    "chars": 441,
    "preview": "{\r\n  \"Info\": {\r\n    \"Class\": \"clsDbNavPaneGroup\",\r\n    \"Description\": \"Navigation Pane Custom Groups\"\r\n  },\r\n  \"Items\":"
  }
]

// ... and 48 more files (download for full content)

About this extraction

This page contains the full source code of the joyfullservice/msaccess-vcs-addin GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 248 files (2.9 MB), approximately 777.3k tokens, and a symbol index with 12 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!