Total Visual SourceBook

Total Visual SourceBook CD and Printed Manual

Microsoft Access/ Office 2016, 2013, 2010, and 2007 Version
is Shipping!

New features in Total Visual SourceBook for Access, Office 2007 and VB6

Supports Access/Office 2016, 2013, 2010 and 2007, and Visual Basic 6.0!

Separate version for Access/Office 2003, 2002, and 2000.

Separate version for:
Access 97/95

View all FMS products for Microsoft AccessAll Our Microsoft Access Products

SourceBook Info:

Why SourceBook?


"The code is exactly how I would like to write code and the algorithms used are very efficient and well-documented."

Van T. Dinh, Microsoft MVP




Microsoft Access, Office/VBA, VB6 Modules royalty-free source code libraryMicrosoft Access Modules royalty-free source code libraryMicrosoft Access VBA and VB6 Module Library Free trial of Total Visual SourceBook for Microsoft Access, Office, VB6 and VBA

Microsoft AccessNew Features of Total Visual SourceBook 2013

This version supports Microsoft Access/Office 2016, 2013, 2010, and 2007

The most popular professional source code library for Microsoft Access/Office and VB6 is now available for Microsoft Access/Office 2016, 2013, 2010 and 2007; and Visual Basic 6. Total Visual SourceBook builds on its heritage of helping VBA/VB6 developers create better solutions using it's extensive collection of powerful, consistently written, documented, and tested source code.

As before, you can insert the source code directly into your projects and use them immediately. Treat them as a black box and just call the routines, examine each line of code to learn from our techniques, or modify the code to your specific needs. The code is completely open for you to use, and you can include them in your projects royalty-free!

We've added many enhancements based on our experiences and the recommendations of our customers. Thank you very much! We hope you like the results:

Support for 32 and 64-bit Versions of VBA

Microsoft offers 32 and 64-bit versions of Office and Access 2016, 2013 and 2010. The source code in Total Visual SourceBook 2013 is compatible with both 32 and 64-bit versions of Office/Access. We've taken care of the complexity of different Windows API calls, data types, type structures and other differences between the two platforms to ensure the features you implement are compatible.

That means you can insert the code into your projects and rest assured it will work regardless of whether your users are running the 32 or 64-bit version of Office/Access today or tomorrow.

Upsize the User Code Database to Microsoft SQL Server

Total Visual SourceBook has always allowed you to save your own code and share it with others by storing it in a Microsoft Access database. You can now upsize that database to SQL Server and share your code from there. You can use your own SQL Server host or a cloud provider like SQL Azure. If you and your fellow developers can connect to your SQL Server database, you can easily search, use, and update your shared code.

Many New Modules

In total, there are 227 modules and classes (up from 194) and 125,000+ lines of code (up from 100,000), with 25,000+ lines of example code (up from 20,000), plus extensive notes so you can maximize your understanding of the content. Some legacy modules were deleted, and these 36 added:

Topic Category Module Name Description
Access Databases Database JetEngine Manage Access database characteristics such as passwords, encryption, compact, workspaces and tuning through DAO in VBA and VB6.
Fields HyperlinkFields Working with hyperlink fields in Access ACCDB databases using DAO with VBA or VB6.
Table and Records CreateTableDAO (class) Create a table in a Microsoft Access Jet database using VBA with DAO.
  JetLinkedTables From Access, work with Microsoft Jet Linked tables in the current database to link to external data sources using DAO in VBA.
  RecordsetADO Use the ADODB database object to create recordsets from data objects and SQL strings in Microsoft Access for the current project (ACCDB, MDB, or ADP) using Access VBA.
  RecordsetDAO Use DAO to create recordsets for Microsoft Access database objects from VBA or VB6.
  TableModifyDAO Modify Microsoft Access tables to add, delete and rename fields, set starting number of autonumber fields, set table property for performance, and set field properties using VBA and VB6.
Error Handling VBA ErrorHandlerAccess Global error handler for Microsoft Access VBA. Added to every procedure, these routines will trap, document, email, and gracefully exit your application when unexpected errors occur. A global error handler will help you improve the quality of your application by providing developers with the information necessary to diagnose problems and minimize the need for users to report crashes.
Excel Automation ExcelExport Basic data routines to export data from Microsoft Access to an Excel spreadsheet from a table, query, or SQL statement using DAO and ADO from VBA or VB6.
General VBA/VB6 Data Type and Unit Conversion AsciiBinaryHex Convert ASCII characters, numbers, and hexadecimal values, encode URL characters and generate HTML colors using VBA and VB6.
  EBCDIC Convert between ASCII characters and Extended Binary Coded Decimal Interchange Code (EBCDIC) using VBA and VB6. EBCDIC is an 8-bit character encoding used mainly on IBM mainframe and IBM midrange computer operating systems.
Date and Time BusinessDatesTableDAO
Business day math (taking holidays into account) with holidays stored in a Microsoft Access/Jet table using DAO for VBA and VB6 (does not support ADPs).
  AgeBirthdays Calculations for age, birthdays, anniversaries, and days since the last one or until the next one using VBA and VB6.
  Waiting Routines for wait for a period of time or until a particular time using VBA and VB6.
Uses the Windows API Sleep command to avoid the DoEvents command in a loop that eats up all your CPUs. Includes support for 32 and 64 bit API calls.
Encryption and Compression Encryption Encrypt and decrypt a Unicode or ASCII string using XOR password encryption in VBA and VB6.
Similar to class modEncryption but simplified for function calls and no progress events.
  ZipFile Create compressed zip files, list the files in a zip file, and extract/unzip all files or individual files from zip files with file overwrite options using VB6 and VBA in 32 and 64-bit.
Searching and Sorting SortCollection Sort a Collection using a BubbleSort algorithm in ascending or descending order in VBA and VB6.
String Handling EmailValidation Verify an email address or set of email addresses conforms to standards in VBA and VB6.
  PhoneButtonLetters Convert between phone numbers and their corresponding button letters using VBA and VB6.
  StringNumbers Convert currency numbers to full word text for check writing and Roman numerals with VBA and VB6.
Geospatial Addresses and Distances Distance Measure the distance between two latitude and longitude coordinates using the spherical law of cosines or Haversine formula in VBA or VB6. Due to the curvature of the earth, the distance between two points is not a straight line.
  GoogleMapsAPI Use the Google Maps web service API to translate street address to GPS latitude and longitude coordinates, and other address components using VBA or VB6.
Google Earth GoogleEarthPoints
Create a Google Earth KML file by adding location placemarks, advanced custom HTML descriptions, icons, and colored line segments, then launch Google Earth with it using VBA or VB6.
Requires Google Earth to be installed and the default program when a KML file is opened.
  GoogleEarthTour (class) Create a Google Earth KML file to generate an animated tour by adding locations and wait times, then launch Google Earth with it using VBA or VB6.
Mapping MappingBing Use Bing Maps to show addresses, directions (driving, transit, walking), and display options in VBA or VB6
  MappingGoogle Use Google Maps to show addresses, directions (driving, transit, walking, biking), and display options in VBA and VB6.
  MappingMapquest Use Mapquest to show addresses and driving directions in VBA and VB6
Internet/Web Internet/Web Bitly (class) is used by Twitter to shorten URLs in tweets. Use the web service to convert a long Internet URL string to a short one and vice versa with VBA and VB6.
  InternetSearch Internet search using VB6 and VBA to launch a web browser with Bing, Google, Yahoo, and YouTube to perform global searches and specific searches for books, finance, images, news, sports, videos, weather, etc. while properly formatting the URL search string.
Outlook Automation OutlookFolders (class) Working with Microsoft Outlook Folders through Automation using VB6 and VBA. Compatible with 32 and 64-bit VBA. This is similar to COutlookFolders32 without the use of the 32-bit Common Controls of MSComCtl32.ocx.
Windows Common Dialogs FileDialog Displaying the File Open/Save Common Dialog in VB6 and VBA with 32 and 64 bit Windows API calls. A set of pre-defined File Masks are included to simplify the selection of file types.
  FileDialogVBA Use the File Open, File Save, and Folder Open Dialogs using the built-in VBA FileDialog command without using the Windows API calls. Supports 32 and 64-bit VBA. The VBA FileDialog command is not as full featured as the Windows API approach but are much easier to use. A set of pre-defined File Masks are included to simplify the selection of file types.
Word Automation WordMerge (class) Use Microsoft Word Automation to combine data from a Microsoft Access data source (table, query, or SQL string) to a Word file for mail merge from VBA and VB6.
  WordConversion Convert word documents from one format to another using VBA and VB6.
XML Files XML Files XMLFileCreate (class) Create an XML file using the DOMDocument MSXML.DLL object with encoding to support Unicode from VBA and VB6. Easily specify the root, add items, add elements (nodes), and add items and elements to elements
  XMLFileRead (class) Read an XML file or text string using the DOMDocument MSXML.DLL object from VBA and VB6.
Easily read the root, elements (nodes) for children and sibling nodes. Examples show how to read the entire file and search for specific nodes.

Lots of Enhancements to Existing Modules

In addition to every existing module that had a Declare statement adjusted to support 64 bit versions of VBA, many modules were significantly enhanced

  • Access
    • CAccessAutomation adds code to output reports to PDF, printer, preview, etc.; option to Access without opening a database
    • modAccessInformation determines if the current database is an ACCDB, MDB, or Jet Database
    • modApplication now lets you hide (or unhide) a single object, all objects by type, and the Search Bar so that it doesn't appear in the Navigation Pane
    • modPrinterAccess now checks form/report printer if it's set to the default printer; get/set report orientation; get/set report page margins
    • modStartup to create linked tables and set/get the startup form
    • modAttachmentFields lists the information of all the file of an attachment field.
  • Access Databases
    • CJetLinkedTables now has DSN-less SQL Server database and SharePoint list connections
    • modADOJetData creates a table with the duplicate values or records from a data source
    • modJetTableInfo determines if a field exists in a table or recordset
  • Error Handling enhanced for VBA error logging
  • Excel now autofits individual columns or ranges; creates data ranges; gets range of cells within a range; converts columns to letters; handles the current workbook; gets/sets cell and range colors and fonts; set horizontal and vertical cell alignment; spell checks
  • General VBA/VB6
    • CBoyerMoore offers search reset
    • modDateTime enhanced to add hours; get first or last day of last or next week; first or last day of last or next month
    • modMathGeneral offers rounding up a number to a specified number of decimal places
    • modUnitConversion provides year without century
    • modStrings adds extracting a text section; reading a file; replacing line breaks; trimming nulls; trimming spaces, tabs and carriage return line feeds
  • Internet/Web
    • CInternetFTP can now check if a file or folder exists, delete a file or files based on a mask, delete all files in a folder, delete a folder, delete a folder and all its contents including subfolders, download all files from a folder, and rename files.
    • modTwitterSearch offers improved Twitter searching for strings and hashtags.
  • Outlook
    • COutlookAddressBook gets address lists and their items; gets distribution lists and their members; checks if a name is in an address list
    • COutlookContacts can now create a new distribution list
    • COutlookFolder now supports 32 and 64-bit Outlook/Office. COutlookFolder32 is for 32-bit only.
  • PowerPoint now supports presentation themes, applying styles over themes, setting slide colors and patterns, importing data directly into slides, etc.
  • Windows
    • CPageSetupDialog gets the paper size ID and description
    • CPrintDialog can set information from the print dialog for All, Collate and Print Range.
    • modBrowseForFolder validates folder exists
    • modFileDisk can now get a list of all files including subfolders; get file name portions and file size; determine if a file or folder exists; delete files, all files in a folder, folders, empty folders only; create incremental file names based on next available name.
    • modFonts checks if a font is installed
    • modRegistry supports reading from and writing to the local user and machine branches based on permissions.
    • CComputerInfo determines if 20+ new processor features exist
    • CMemoryStatus adjusts memory scale and units
    • COSInfo creates GUIDs; pad HEX values; Windows version
    • modPrinterWindows gets information regarding the specified printer within Microsoft Access, VB6 or both
  • Word can create a Word table from Access data; save as PDF; preview documents; insert page breaks; insert paragraphs; go to start or end of document
  • XML Files settings gets notes and node values

Code Browser Enhancements

Improved Code Management

The code browser is enhanced to improve the way code is managed:

  • Category editing lets you move a category to another topic
  • Module/class editing allows you to reassign it to another category, including categories in another topic
  • New code and edit dialogs can be resized and maximized to simplify viewing and editing your code, notes, and examples
  • When viewing code, the Details tab shows the editor name with date and time of creation and modification
  • Toolbar and menus are simplified to edit the currently selected item

Select Default Error Handling Code

Under Options, error handling default settings can be selected for the error handling module or class you add to your application. This simplifies the specification of the Error Enabler, Re-Enabler, and Handler, plus the use of a global constant to turn error handling off or on.

User Interface Enhancements

  • More modern user interface with modern looking controls, improved graphics and Windows themes
  • Most screens are enlarged, display more data with more readable fonts, use larger fonts sizes, and show longer dropdown lists
  • Improved support for shortcut keys on forms and menus

Import/Export and Source Code Exchange

  • Larger Export and Import form to display the module list with wider column widths
  • Import user code from Total Visual SourceBook 2007 and assign them automatically to the same topics and categories
  • Source Code Exchange feature revamped to support non-standard and Unicode characters
  • Source Code Exchange Export form retains the previous entries

Improved Setup Program

The Setup program offers user or machine installation options respecting user access control (UAC) permissions and online activation of the product. Supports from Windows XP through Windows 8.x.

Updated Documentation

New user manual and context sensitive help file.

Pricing and Versions

Total Visual SourceBook is available in different versions depending on your version of MS Office/Access. The 2013 version runs in Office/Access 2000 through 2016 with source code expecting Access/Office 2007 or newer. If you are using Office/Access 2003 or earlier and don't have plans to migrate to 2007 or later, you may prefer the 2003 version.

Total Visual SourceBook Products
for Microsoft Access/Office/VBA and Visual Basic 6

License Price 2016, 2013,
2010 and VB6
2007 2003, 2002,
and 2000
97 & 95

Single $399 Buy Now Buy Now Buy Now Buy Now
5 Seat $1299 Buy Now Buy Now Buy Now Buy Now


Single $299 Buy Now Buy Now Buy Now N/A
5 Seat $899 Buy Now Buy Now Buy Now N/A

Premium Support Subscription

Single $299 More Information
5 Seat $999

Also Available as part of:

Total Access Ultimate Suite
Total Access Developer Suite
Total Visual Developer Suite
Total VB Enterprise Suite

Source Code for 32 and 64-bit Versions of Office/VBA

Microsoft Office 2016, 2013 and 2010 are available in 32 and 64-bit versions. The source code library in Total Visual SourceBook 2013 is compatible with 32 and 64-bit Office/VBA. Unless explicitly specified, all of the source code can be inserted into your projects and will work for users running either the 32 or 64-bit version of Office/VBA. This makes it easy to support your users without worrying about which version of Access/Office they installed.

Note the Visual Basic 6 specific code is only 32-bit compatible since VB6 does not have a 64-bit version.

Integration with the Module Code Editor (IDE)

Total Visual SourceBook 2013 runs as a standalone program or as an add-in to your VBA/VB6 IDE. The add-in can only run within the 32-bit version of the IDE. If you are using the 64-bit version of Office, Total Visual SourceBook still works on its own, but not within your IDE. 

Runtime/Redistributable Version

Source code library material is redistributable royalty-free as long as it is contained in an application that is compiled and the Total Visual SourceBook library code is not redistributed in a readable form.

Licensing Information

Total Visual SourceBook is licensed on a per developer basis. Each developer who runs the program and uses the code must have a license. Read the License Agreement for details.