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.

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
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
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.