World Library  
Flag as Inappropriate
Email this Article

Microsoft Access

Microsoft Access
Microsoft Office Access 2013 running on Windows 8
Developer(s) Microsoft Corporation
Initial release November 1992 (1992-11)
Stable release 2013 (15.0.4420.1017) / October 2, 2012 (2012-10-02)
Development status Active
Operating system Microsoft Windows
License Trialware
Website /

Microsoft Access, also known as Microsoft Office Access, is a database management system from Microsoft that combines the relational Microsoft Jet Database Engine with a graphical user interface and software-development tools. It is a member of the Microsoft Office suite of applications, included in the Professional and higher editions or sold separately.

Microsoft Access stores data in its own format based on the Access Jet Database Engine. It can also import or link directly to data stored in other applications and databases.[1]

Software developers and data architects can use Microsoft Access to develop application software, and "power users" can use it to build software applications. Like other Office applications, Access is supported by Visual Basic for Applications (VBA), an object-oriented programming language that can reference a variety of objects including DAO (Data Access Objects), ActiveX Data Objects, and many other ActiveX components. Visual objects used in forms and reports expose their methods and properties in the VBA programming environment, and VBA code modules may declare and call Windows operating-system functions.


  • History 1
    • Project Omega 1.1
    • Project Cirrus 1.2
    • Timeline 1.3
  • Uses 2
  • Features 3
    • Access Services and Web database 3.1
    • Import or Link sources 3.2
  • Microsoft Access Runtime 4
  • Development 5
    • Split database architecture 5.1
    • Migration to SQL Server 5.2
  • Protection 6
  • File extensions 7
  • Versions 8
  • See also 9
  • References 10
  • External links 11


Project Omega

Microsoft's first attempt to sell a relational database product was during the mid 1980s, when Microsoft obtained license to sell R:Base.[2] In the late 1980s Microsoft developed its own solution codenamed Omega.[3] It was confirmed in 1988 that a database product for Windows and OS/2 was in development.[4][5] It was going to include "EB" Embedded Basic language,[3] which was going to be the language for writing macros in all Microsoft applications,[6] but the unification of macro languages did not happen until the introduction of Visual Basic for Applications (VBA). Omega was also expected to provide a front end to the Microsoft SQL Server.[7] The application was very resource-hungry, and there were reports that it was working slowly on the 386 processors that were available at the time.[8] It was scheduled to be released in the 1st quarter of 1990,[9] but in 1989 the development of the product was reset[2][10] and it was rescheduled to be delivered no sooner than in January 1991.[11] Parts of the project were later used for other Microsoft projects: Cirrus (codename for Access) and Thunder (codename for Visual Basic, where the Embedded Basic engine was used).[2][3] After Access's premiere, the Omega project was demonstrated in 1992 to several journalists and included features that were not available in Access.[12]

Project Cirrus

After the Omega project was scrapped, some of its developers were assigned to the Cirrus project (most were assigned to the team which created Visual Basic).[2] Its goal was to create a competitor for applications like Paradox or dBase that would work on Windows.[13] After Microsoft acquired FoxPro, there were rumors that the Microsoft project might get replaced with it,[14] but the company decided to develop them in parallel. It was assumed that the project would make use of Extensible Storage Engine (Jet Blue)[15] but, in the end, only support for Microsoft Jet Database Engine (Jet Red) was provided. The project used some of the code from both the Omega project and a pre-release version of Visual Basic.[3] In July 1992, betas of Cirrus shipped to developers[16] and the name Access became the official name of the product.[17]


1992: Microsoft released Access version 1.0 on 13 November 1992, and an Access 1.1 release in May 1993 to improve compatibility with other Microsoft products and to include the Access Basic programming language.

1994: Microsoft specified the minimum hardware requirements for Access v2.0 as: Microsoft Windows v3.1 with 4 MB of RAM required, 6 MB RAM recommended; 8 MB of available hard disk space required, 14 MB hard disk space recommended. The product shipped on seven 1.44 MB diskettes. The manual shows a 1994 copyright date.

Originally, the software worked well with relatively small databases but testing showed that some circumstances caused data corruption. For example, file sizes over 10 MB proved problematic (note that most hard disks held less than 500 MB at the time this was in wide use), and the Getting Started manual warns about a number of circumstances where obsolete device drivers or incorrect configurations can cause data loss. With the phasing out of Windows 95, 98 and ME, improved network reliability, and Microsoft having released 8 service packs for the Jet Database Engine, the reliability of Access databases has improved and it supports both more data and a larger number of users.

With Office 95, Microsoft Access 7.0 (a.k.a. "Access 95") became part of the Microsoft Office Professional Suite, joining Microsoft Excel, Word, and PowerPoint and transitioning from Access Basic to VBA. Since then, Microsoft has released new versions of Microsoft Access with each release of Microsoft Office. This includes Access 97 (version 8.0), Access 2000 (version 9.0), Access 2002 (version 10.0), Access 2003 (version 11.5), Access 2007 (version 12.0), and Access 2010 (version 14.0).

Versions 3.0 and 3.5 of Microsoft Jet database engine (used by Access 7.0 and the later-released Access 97 respectively) had a critical issue which made these versions of Access unusable on a computer with more than 1 GB of memory.[18] While Microsoft fixed this problem for Jet 3.5/Access 97 post-release, it never fixed the issue with Jet 3.0/Access 95.

The native Access database format (the Jet MDB Database) has also evolved over the years. Formats include Access 1.0, 1.1, 2.0, 7.0, 97, 2000, 2002, 2007, and 2010. The most significant transition was from the Access 97 to the Access 2000 format; which is not backward compatible with earlier versions of Access. As of 2011 all newer versions of Access support the Access 2000 format. New features were added to the Access 2002 format which can be used by Access 2002, 2003, 2007, and 2010.

Microsoft Access 2000 increased the maximum database size to 2GB from 1GB in Access 97.

Microsoft Access 2007 introduced a new database format: ACCDB. It supports links to SharePoint lists and complex data types such as multivalue and attachment fields. These new field types are essentially recordsets in fields and allow the storage of multiple values or files in one field. Microsoft Access 2007 also introduced File Attachment field, which stored data more efficiently than the OLE (Object Linking and Embedding) field.

Microsoft Access 2010 introduced a new version of the ACCDB format supported hosting Access Web solutions on a SharePoint 2010 server. For the first time, this allowed Access solutions to be run without having to install Access on their PC and was the first support of Mac users. Any user on the SharePoint site with sufficient rights could use the Access Web solution. A copy of Access was still required for the developer to create the Access Web solution, and the desktop version of Access remained part of Access 2010. The Access Web solutions were not the same as the desktop solutions. Automation was only through the macro language (not VBA) which Access automatically converted to JavaScript. The data was no longer in an Access database but SharePoint lists. An Access desktop database could link to the SharePoint data, so hybrid applications were possible so that SharePoint users needing basic views and edits could be supported while the more sophisticated, traditional solutions could remain in the desktop Access database.

Microsoft Access 2013 offers traditional Access desktop solutions plus a significantly updated SharePoint 2013 web solution.[19] The Access Web model in Access 2010 was replaced by a new architecture that stores its data in actual SQL Server databases. Unlike SharePoint lists, this offers true relational database design with referential integrity, scalability, extensibility and performance one would expect from SQL Server.[20] The database solutions that can be created on SharePoint 2013 offer a modern user interface designed to display multiple levels of relationships that can be viewed and edited, along with resizing for different devices and support for touch. The Access 2013 desktop is similar to Access 2010 but several features were discontinued including support for Access Data Projects (ADPs), pivot tables, pivot charts, Access data collections, source code control, replication, and other legacy features.[21] Access desktop database maximum size remained 2GB (as it has been since the 2000 version).

Prior to the introduction of Access, Borland (with Paradox and dBase) and Fox (with FoxPro) dominated the desktop database market. Microsoft Access was the first mass-market database program for Windows. With Microsoft's purchase of FoxPro in 1992 and the incorporation of Fox's Rushmore query optimization routines into Access, Microsoft Access quickly became the dominant database for Windows - effectively eliminating the competition which failed to transition from the MS-DOS world.[22]

Access's initial codename was Cirrus; the forms engine was called Ruby. This was before Visual Basic. Bill Gates saw the prototypes and decided that the BASIC language component should be co-developed as a separate expandable application, a project called Thunder. The two projects were developed separately.

Access was also the name of a communications program from Microsoft, meant to compete with ProComm and other programs. This proved a failure and was dropped.[23] Years later, Microsoft reused the name for its database software.


In addition to using its own database storage file, Microsoft Access also may be used as the 'front-end' of a program while other products act as the 'back-end' tables, such as Microsoft SQL Server and non-Microsoft products such as Oracle and Sybase. Multiple backend sources can be used by a Microsoft Access Jet Database (ACCDB and MDB formats). Similarly, some applications such as Visual Basic, ASP.NET, or Visual Studio .NET will use the Microsoft Access database format for its tables and queries. Microsoft Access may also be part of a more complex solution, where it may be integrated with other technologies such as Microsoft Excel, Microsoft Outlook, Microsoft Word, Microsoft PowerPoint and ActiveX controls.

Access tables support a variety of standard field types, indices, and referential integrity including cascading updates and deletes. Access also includes a query interface, forms to display and enter data, and reports for printing. The underlying Jet database, which contains these objects, is multi-user and handles record-locking.

Repetitive tasks can be automated through macros with point-and-click options. It is also easy to place a database on a network and have multiple users share and update data without overwriting each other's work. Data is locked at the record level which is significantly different from Excel which locks the entire spreadsheet.

There are template databases within the program and for download from their website. These options are available upon starting Access and allow users to enhance a database with predefined tables, queries, forms, reports, and macros. Database templates support VBA code but Microsoft's templates do not include VBA code.

Programmers can create solutions using VBA, which is similar to Visual Basic 6.0 (VB6) and used throughout the Microsoft Office programs such as Excel, Word, Outlook and PowerPoint. Most VB6 code, including the use of Windows API calls, can be used in VBA. Power users and developers can extend basic end-user solutions to a professional solution with advanced automation, data validation, error trapping, and multi-user support.

The number of simultaneous users that can be supported depends on the amount of data, the tasks being performed, level of use, and application design. Generally accepted limits are solutions with 1 GB or less of data (Access supports up to 2 GB) and performs quite well with 100 or fewer simultaneous connections (255 concurrent users are supported). This capability is often a good fit for department solutions. If using an Access database solution in a multi-user scenario, the application should be "split". This means that the tables are in one file called the back end (typically stored on a shared network folder) and the application components (forms, reports, queries, code, macros, linked tables) are in another file called the front end. The linked tables in the front end point to the back end file. Each user of the Access application would then receive his or her own copy of the front end file.

Applications that run complex queries or analysis across large datasets would naturally require greater bandwidth and memory. Microsoft Access is designed to scale to support more data and users by linking to multiple Access databases or using a back-end database like Microsoft SQL Server. With the latter design, the amount of data and users can scale to enterprise-level solutions.

Microsoft Access's role in

This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.

  • Official website
  • Access Blog

External links

  1. ^ a b "Introduction to importing and exporting data". Microsoft. Retrieved 15 October 2010. 
  2. ^ a b c d Goodhew, Tony (11 1996). "Jet Engine: History". Retrieved 2011-01-02. 
  3. ^ a b c d Ferguson, Scott. "The Birth of Visual Basic". 
  4. ^ Brownstein, Mark; Johnston, Stuart J. (November 14, 1988). "Microsoft Works on SAA Database". InfoWorld. p. .5. 
  5. ^ Brownstein, Mark (February 13, 1989). "Microsoft Puts Finishing Touches on Windows Applications". InfoWorld. p. 5. 
  6. ^ Flynn, Laurie (May 8, 1989). "Microsoft Applications to Share Macro Language". InfoWorld. p. 1. 
  7. ^ Flynn, Laurie (August 21, 1989). "Microsoft Waits on SQL Front Ends". InfoWorld. p. 109. 
  8. ^ Cringely, Robert X. (September 4, 1989). "Gates Claims That 80286 Systems Are No Longer His Babies". InfoWorld. p. 82. 
  9. ^ Cringely, Robert X. (July 31, 1989). "No Way, the PC Industry Will Always Be Dominated By Doritos". InfoWorld. p. 86. 
  10. ^ Cringely, Robert X. (October 16, 1989). """Lotus Exec Tells of Ordeal: "Aliens Force Me to Use MS Windows. InfoWorld. p. 106. 
  11. ^ Cringely, Robert X. (November 20, 1989). "Elvis, Now a Vegas Parking Lot Attendant, Further Delays Intel 486". InfoWorld. p. 106. 
  12. ^ Mace, Scott (November 30, 1992). "Microsoft demos its ill-fated Omega". InfoWorld. p. 16. 
  13. ^ Picarille, Lisa; Mace, Scott (March 30, 1992). "Microsoft's Fox purchase stirs up the XBase market". InfoWorld. p. 1. Cirrus (...) will go head-to-head with Paradox and Metaphor Computer Systems' Metaphor program. 
  14. ^ Cringely, Robert X. (November 4, 1991). "Whatever costume Eckhard wears is likely to scare Silicon Graphics". InfoWorld. p. 118. (...) rumor (...) that FoxPro might replace Redmond's long-delayed database, now code-named Cirrus. 
  15. ^ Mace, Scott (June 29, 1992). "Microsoft creating API to complement ODBC". InfoWorld. p. 1. Open ISAM support will be in Microsoft's forthcomming Cirrus DBMS for Windows. 
  16. ^ "Developers get beta version of Microsoft DBMS". InfoWorld. July 13, 1992. p. 3. 
  17. ^ Johnston, Stuart J. (July 20, 1998). "Cirrus dubbed Access; faster beta released". InfoWorld. p. 1. 
  18. ^ "Out of memory" error starting Microsoft Access
  19. ^ Changes in Access 2013
  20. ^ What's new for Access 2013 developers
  21. ^ Discontinued features and modified functionality in Access 2013
  22. ^ Microsoft Access History
  23. ^ Where did the name for Microsoft Access come from?
  24. ^ Using Terminal Services and RemoteApp to Extend Your Microsoft Access and other Windows Applications Over the Internet
  25. ^ "Creating Web Databases with Access 2010 and Access Services". 2009-07-22. Retrieved 2013-04-24. 
  26. ^ What's new for Access 2013 developers
  27. ^ a b "Discontinued features and modified functionality in Access 2010".  
  28. ^ Sinclair, Russell (2000). From access to SQL server. Apress Series. Apress. p. 340.  
  29. ^ Aleksandar Jakšić (August 2008). "Developing Access 2007 Solutions with Native C or C++". Microsoft Corporation. Retrieved 2008-09-22. 
  30. ^ Naming Conventions for Microsoft Access
  31. ^ Naming Conventions for Visual Basic
  32. ^ Kevin Collins (Microsoft Jet Program Management), "Microsoft Jet 3.5 Performance Overview and Optimization Techniques", MSDN. Retrieved July 19, 2005.
  33. ^ a b c Very slow Access 2002 query with Windows 7
  34. ^ Microsoft Access 2010 Runtime
  35. ^ "Microsoft Access Split Database Architecture to Support Multiuser Environments, Improve Performance, and Simplify Maintainability". Retrieved 2013-04-24. 
  36. ^ "Database Server & Data Management Software | SQL Server 2012". Retrieved 2013-04-24. 
  37. ^ Access Upsizing Project
  38. ^ Security Considerations and Guidance for Access 2007
  39. ^ "Microsoft Access Life-cycle Information". Retrieved 2011-10-23. 
  40. ^ "Chapter 5 - System Requirements for MS Office". Office 97 Resource Kit. Microsoft. Retrieved 2 May 2013. 
  41. ^ "Office 2000 Systems Requirements".  
  42. ^ "Office XP System Requirements".  
  43. ^ "Office 2003 Licensing and System Requirements".  
  44. ^ "Getting started with the 2007 Office system".  
  45. ^ "System requirements for Office 2010".  
  46. ^ "System requirements for Office 2013".  


See also

Version number 13 was skipped.
There are no Access versions between 2.0 and 7.0 because the Office 95 version was launched with Word 7. All of the Office 95 products have OLE 2 capabilities, and Access 7 shows that it was compatible with Word 7.
Version Version
Release Date[39] Jet version Supported OS Office suite version
Access 1.1
Windows 3.0
Access 2.0
Windows 3.1x Office 4.3 Pro
Access for Windows 95
Aug. 24, 1995
Windows 95 Office 95 Professional
Access 97
Jan. 16, 1997
Windows 95, Windows NT 3.51 SP5, Windows NT 4.0 SP2[40] Office 97 Professional and Developer
Access 2000
June 7, 1999
4.0 SP1
Windows 95, Windows NT 4.0, Windows 98, Windows 2000[41] Office 2000 Professional, Premium and Developer
Access 2002
May 31, 2001
4.0 SP1
Windows NT 4.0 SP6, Windows 98, Windows 2000, Windows Me[42] Office XP Professional and Developer
Access 2003
Nov. 27, 2003
4.0 SP1
Windows 2000 SP3 or later, Windows XP, Windows Vista, Windows 7[43] Office 2003 Professional and Professional Enterprise
Access 2007
Jan. 27, 2007
Windows XP SP2, Windows Server 2003 SP1, or newer operating system[44] Office 2007 Professional, Professional Plus, Ultimate and Enterprise
Access 2010
July 15, 2010
Windows XP SP3, Windows Server 2003 SP2, Windows Server 2003 R2, Windows Vista SP1, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows Server 2012, Windows 8[45] Office 2010 Professional, Professional Academic and Professional Plus
Access 2013
Jan. 29, 2013
Windows 7, Windows Server 2008 R2, Windows Server 2012, Windows 8[46] Office 2013


File format Extension
Protected Access Data Project (not supported in Access 2013) .ade
Access Data Project (not supported in Access 2013) .adp
Access Blank Project Template .adn
Access Database (2007) .accdb
Access Database Runtime (2007) .accdr
Access Database Template (2007) .accdt
Access Add-In (2007) .accda
Access Database (2003 and earlier) .mdb
Access Database (Pocket Access for Windows CE) .cdb
Access Database, used for addins (2,95,97), previously used for workgroups (2). .mda
Access Blank Database Template (2003 and earlier) .mdn
Access Add-in Data (2003 and earlier) .mdt
Access Workgroup, database for user-level security. .mdw
Access (SQL Server) detached database (2000) .mdf
Protected Access Database, with compiled VBA and/or macros (2003 and earlier) .mde
Protected Access Database, with compiled VBA and/or macros (2007) .accde
Windows Shortcut: Access Macro .mam
Windows Shortcut: Access Query .maq
Windows Shortcut: Access Report .mar
Windows Shortcut: Access Table .mat
Windows Shortcut: Access Form .maf
Access lock files (associated with .mdb) .ldb
Access lock files (associated with .accdb) .laccdb
: file formatsMicrosoft Access saves information under the following

File extensions

Additionally, if the database design needs to be secured to prevent changes, Access databases can be locked/protected (and the source code compiled) by converting the database to a .MDE file. All changes to the VBA project (modules, forms, or reports) need to be made to the original MDB and then reconverted to MDE. In Access 2007 and Access 2010, the ACCDB database is converted to an ACCDE file. Some tools are available for unlocking and "decompiling", although certain elements including original VBA comments and formatting are normally irretrievable.

Databases can also be encrypted. The ACCDB format offers significantly advanced encryption from previous versions.[38]

A higher level of protection is the use of workgroup security requiring a user name and password. Users and groups can be specified along with their rights at the object type or individual object level. This can be used to specify people with read-only or data entry rights but may be challenging to specify. A separate workgroup security file contains the settings which can be used to manage multiple databases. Workgroup security is not supported in the Access 2007 and Access 2010 ACCDB database format, although Access 2007 and Access 2010 still support it for MDB databases.

The most basic is a database password. Once entered, the user has full control of all the database objects. This is a relatively weak form of protection which can be easily cracked.

Microsoft Access offers several ways to secure the application while allowing users to remain productive.


While all Access data can migrate to SQL Server directly, some queries cannot migrate successfully. In some situations, you may need to translate VBA functions and user defined functions into T–SQL or .NET functions / procedures. Crosstab queries can be migrated to SQL Server using the PIVOT command.

In many cases, developers build direct web-to-data interfaces using ASP.NET, while keeping major business automation processes, administrative and reporting functions that don't need to be distributed to everyone in Access for information workers to maintain.

Finally, some Access databases are completely replaced by another technology such as ASP.NET or Java once the data is converted. However any migration may dictate major effort since the Access SQL language is a more powerful superset of standard SQL. Further, Access application procedures, whether VBA and macros, are written at a relatively higher level versus the currently available alternatives that are both robust and comprehensive. Note that the Access macro language, allowing an even higher level of abstraction than VBA, was significantly enhanced in Access 2010 and again in Access 2013.

In previous versions of Access, including Access 2010, databases can also be converted to Access Data Projects (ADP) which are tied directly to one SQL Server database. This feature was removed from Access 2013. ADP's support the ability to directly create and modify SQL Server objects such as tables, views, stored procedures, and SQL Server constraints. The views and stored procedures can significantly reduce the network traffic for multi-table joins. Fortunately, SQL Server supports temporary tables and links to other data sources beyond the single SQL Server database.

A variety of upgrading options are available.[37] After migrating the data and queries to SQL Server, the Access database can be linked to the SQL database. However, certain data types are problematic, most notably "Yes/No". In Microsoft Access there are three states for the Yes/No (True/False) data type: empty, no/false (zero) and tes/true (-1). The corresponding SQL Server data type is binary, with only two states, permissible values, zero and 1. Regardless, SQL Server is still the easiest migration, and most appropriate especially if the user does not have rights to create objects such as stored procedures on SQL Server. Retrieving data from linked tables is optimized to just the records needed, but this scenario may operate less efficiently than what would otherwise be optimal for SQL Server. For example, in instances where multi-table joins still require copying the whole table across the network.

Access 2010 included a feature called the Upsizing Wizard that allowed users to upgrade their databases to Microsoft SQL Server, an ODBC client–server database. This feature was removed from Access 2013. An additional solution, the SQL Server Migration Assistant for Access (SSMA), continues to be available for free download from Microsoft.[36]

To scale Access applications to enterprise or web solutions, one possible technique involves migrating to Microsoft SQL Server or equivalent server database. A client–server design significantly reduces maintenance and increases security, availability, stability, and transaction logging.

Migration to SQL Server

For very large Access databases, this may have performance issues and a SQL backend should be considered in these circumstances. This is less of an issue if the entire database can fit in the PC's RAM since Access caches data and indexes.

Linked tables in Access use absolute paths rather than relative paths, so the development environment either has to have the same path as the production environment or a "dynamic-linker" routine can be written in VBA.

Microsoft Access applications can adopt a split-database architecture. The single database can be divided into a separate "back-end" file that contains the data tables (shared on a file server) and a "front-end" (containing the application's objects such as queries, forms, reports, macros, and modules). The "front-end" Access application is distributed to each user's desktop and linked to the shared database. Using this approach, each user has a copy of Microsoft Access (or the runtime version) installed on their machine along with their application database. This reduces network traffic since the application is not retrieved for each use. The "front-end" database can still contain local tables for storing a user's settings or temporary data. This split-database design also allows development of the application independent of the data. One disadvantage is that users may make various changes to their own local copy of the application and this makes it hard to manage version control. When a new version is ready, the front-end database is replaced without impacting the data database. Microsoft Access has two built-in utilities, Database Splitter[35] and Linked Table Manager, to facilitate this architecture.

Split database architecture

In previous versions of Microsoft Access the ability to distribute applications required the purchase of the Developer Toolkit; in Access 2010 and Access 2013 the "Runtime Only" version is offered as a free download, making the distribution of royalty-free applications possible on Windows 7 and Windows 8.x.[34]

In July 2011, Microsoft acknowledged an intermittent query performance problem with all versions of Access and Windows 7 and Windows Server 2008 R2 due to the nature of resource management being vastly different in newer operating systems.[33] This issue severely affects query performance on both Access 2003 and earlier with the Jet Database Engine code, as well as Access 2007 and later with the Access Database Engine (ACE).[33] Microsoft has issued hotfixes KB2553029 for Access 2007 and KB2553116 for Access 2010, but will not fix the issue with Jet 4.0 as it is out of mainstream support.[33]

As data from a Microsoft Access database can be cached in RAM, processing speed may substantially improve when there is only a single user or if the data are not changing. In the past, the effect of packet latency on the record-locking system caused Access databases to run slowly on a Virtual Private Network (VPN) or a Wide Area Network (WAN) against a Jet database. As of 2010 broadband connections have mitigated this issue. Performance can also be enhanced if a continuous connection is maintained to the back-end database throughout the session rather than opening and closing it for each table access. If Access database performance over VPN or WAN suffers, then a client using Remote Desktop Protocol (such as Microsoft Terminal Services) can provide an effective solution. Access databases linked to SQL Server or to Access Data Projects work well over VPNs and WANs.

Developers deploy Microsoft Access most often for individual and workgroup projects (the Access 97 speed characterization was done for 32 users).[32] Since Access 97, and with Access 2003 and 2007, Microsoft Access and hardware have evolved significantly. Databases under 1 GB in size (which can now fit entirely in RAM) and 50 simultaneous users are well within the capabilities of Microsoft Access. Of course, performance depends on the database design and tasks. Disk-intensive work such as complex searching and querying take the most time.

In the database container or navigation pane in Access 2007 and later versions, the system automatically categorizes each object by type (e.g., table, query, macro). Many Access developers use the Leszynski naming convention, though this is not universal; it is a programming convention, not a DBMS-enforced rule.[30][31] It is particularly helpful in VBA where references to object names may not indicate its data type (e.g. tbl for tables, qry for queries).

As well as DAO and ADO, developers can also use OLE DB and ODBC for developing native C/C++ programs for Access.[29] For ADPs and the direct manipulation of SQL Server data, ADO is required. DAO is most appropriate for managing data in Access/Jet databases, and the only way to manipulate the complex field types in ACCDB tables.

  1. Data Access Objects (DAO) (32-bit only), which is included in Access and Windows and evolved to ACE in Microsoft Access 2007 for the ACCDE database format
  2. ActiveX Data Objects ActiveX Data Objects (ADO) (both 32-bit and 64-bit versions)

To manipulate data in tables and queries in VBA or macros, Microsoft provides two database access libraries of COM components:

In common with other products in the Microsoft Office suite, the other programming language used in Access is Microsoft VBA. It is similar to Visual Basic 6.0 (VB6) and code can be stored in modules, classes, and code behind forms and reports. To create a richer, more efficient and maintainable finished product with good error handling, most professional Access applications are developed using the VBA programming language rather than macros, except where web deployment is a business requirement.

Non-programmers can use the macro feature to automate simple tasks through a series of drop-down selections. Macros allow users to easily chain commands together such as running queries, importing or exporting data, opening and closing forms, previewing and printing reports, etc. Macros support basic logic (IF-conditions) and the ability to call other macros. Macros can also contain sub-macros which are similar to subroutines. In Access 2007, enhanced macros included error-handling and support for temporary variables. Access 2007 also introduced embedded macros that are essentially properties of an object's event. This eliminated the need to store macros as individual objects. However, macros were limited in their functionality by a lack of programming loops and advanced coding logic until Access 2013. With significant further enhancements introduced in Access 2013, the capabilities of macros became fully comparable to VBA. They made feature rich web-based application deployments practical, via a greatly enhanced Microsoft SharePoint interface and tools, as well as on traditional Windows desktops.

When developing reports (in "Design View") additions or changes to controls cause any linked queries to execute in the background and the designer is forced to wait for records to be returned before being able to make another change. This feature cannot be turned off.

Access also supports the creation of "pass-through queries". These snippets of SQL code can address external data sources through the use of ODBC connections on the local machine. This enables users to interact with data stored outside the Access program without using linked tables or Jet.[28] Users construct the pass-through queries using the SQL syntax supported by the external data source.

For query development, Access offers a "Query Designer", a graphical user interface that allows users to build queries without knowledge of structured query language. In the Query Designer, users can "show" the datasources of the query (which can be tables or queries) and select the fields they want returned by clicking and dragging them into the grid. One can set up joins by clicking and dragging fields in tables to fields in other tables. Access allows users to view and manipulate the SQL code if desired. Any Access table, including linked tables from different data sources, can be used in a query.

Access stores all database tables, queries, forms, reports, macros, and modules in the Access Jet database as a single file.


Microsoft offers free runtime versions of Microsoft Access: Access 2013 Runtime, Access 2010 Runtime, Access 2007 Runtime, which allow users to run an Access desktop application without needing to purchase or install a full version of Microsoft Access. This allows Access developers to create databases that can be freely distributed to an unlimited number of end-users. The runtime version allows users to view, edit and delete data, along with running queries, forms, reports, macros and VBA module code. But the runtime version does not allow users to change the design of Microsoft Access objects or code. The runtime versions are similar to their corresponding full version of Access and usually compatible with earlier versions; for example Access Runtime 2010 allows a user to run an Access application made with the 2010 version as well as 2007 through 2000. Due to deprecated features in Access 2013, its runtime version is also unable to support those older features.

Microsoft Access Runtime

Microsoft Access can also import or link directly to data stored in other applications and databases.[1] Microsoft Office Access 2007 and newer can import from or link to:

Import or Link sources

Access 2013 offers the ability to publish Access web solutions on SharePoint 2013. Rather than using SharePoint lists as its data source, Access 2013 uses an actual SQL Server database hosted by SharePoint or SQL Azure. This offers a true relational database with referential integrity, scalability, maintainability, and extensibility compared to the SharePoint views Access 2010 used.. The macro language is enhanced to support more sophisticated programming logic and database level automation.[26]

SharePoint Server 2010 via Access Services allows for Access 2010 databases to be published to SharePoint, thus enabling multiple users to interact with the database application from any standards-compliant Web browser. Access Web databases published to SharePoint Server can use standard objects such as tables, queries, forms, macros, and reports. Access Services stores those objects in SharePoint.[25]

ASP.NET web forms can query a Microsoft Access database, retrieve records and display them on the browser.

Access Services and Web database

Microsoft Access is a file server-based database. Unlike client–server relational database management systems (RDBMS), Microsoft Access does not implement database triggers, stored procedures, or transaction logging. Access 2010 includes table-level triggers and stored procedures built into the ACE data engine. Thus a Client-server database system is not a requirement for using stored procedures or table triggers with Access 2010. Tables, queries, forms, reports and macros can now be developed specifically for web base application in Access 2010. Integration with Microsoft SharePoint 2010 is also highly improved.

The desktop editions of Microsoft SQL Server can be used with Access as an alternative to the Jet Database Engine. This support started with MSDE (Microsoft SQL Server Desktop Engine), a scaled down version of Microsoft SQL Server 2000, and continues with the SQL Server Express versions of SQL Server 2005 and 2008.

Microsoft Access offers parameterized queries. These queries and Access tables can be referenced from other programs like VB6 and .NET through DAO or ADO. From Microsoft Access, VBA can reference parameterized stored procedures via ADO.

One of the benefits of Access from a programmer's perspective is its relative compatibility with SQL (structured query language) — queries can be viewed graphically or edited as SQL statements, and SQL statements can be used directly in Macros and VBA Modules to manipulate Access tables. Users can mix and use both VBA and "Macros" for programming forms and logic and offers object-oriented possibilities. VBA can also be included in queries.

There is also the Jet Database format (MDB or ACCDB in Access 2007) which can contain the application and data in one file. This makes it very convenient to distribute the entire application to another user, who can run it in disconnected environments.

The original concept of Access was for end users to be able to access data from any source. Other features include: the import and export of data to many formats including Excel, Outlook, ASCII, dBase, Paradox, FoxPro, SQL Server, Oracle, ODBC, etc. It also has the ability to link to data in its existing location and use it for viewing, querying, editing, and reporting. This allows the existing data to change while ensuring that Access uses the latest data. It can perform heterogeneous joins between data sets stored across different platforms. Access is often used by people downloading data from enterprise level databases for manipulation, analysis, and reporting locally.

Users can create tables, queries, forms and reports, and connect them together with macros. Advanced users can use VBA to write rich solutions with advanced data manipulation and user control. Access also has report creation features that can work with any data source that Access can access.


Microsoft also offers developer extensions for download to help distribute Access 2007 applications, create database templates, and integrate source code control with Microsoft Visual SourceSafe.

A compiled version of an Access database (File extensions: .MDE /ACCDE or .ADE; ACCDE only works with Access 2007 or later) can be created to prevent user from accessing the design surfaces to modify module code, forms, and reports. An MDE/ACCDE file is a Microsoft Access database file with all modules compiled and all editable source code removed. An ADE file is an Access project file with all modules compiled and all editable source code removed. Both the .MDE/ACCDE and .ADE versions of an Access database are used when end-user modifications are not allowed or when the application’s source code should be kept confidential.

Access 2013 can create web applications directly in SharePoint 2013 sites running Access Services. Access 2013 web solutions store its data in an underlying SQL Server database which is much more scalable and robust than the Access 2010 version which used SharePoint lists to store its data.

Access 2010 allows databases to be published to SharePoint 2010 web sites running Access Services. These web-based forms and reports run in any modern web browser. The resulting web forms and reports, when accessed via a web browser, don't require any add-ins or extensions (e.g. ActiveX, Silverlight).

This technique does not scale the way a web application would but is appropriate for a limited number of users depending on the configuration of the host. [24]

This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Hawaii eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.