History: Microsoft Access Is A
History: Microsoft Access Is A
Contents
1History
o 1.1Project Omega
o 1.2Project Cirrus
o 1.3Timeline
2Uses
3Features
o 3.1Access Services and Web database
o 3.2Import or link sources
4Microsoft Access Runtime
5Development
o 5.1Split database architecture
o 5.2Migration to SQL Server
6Protection
7File extensions
8Versions
9See also
10References
11External links
History[edit]
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.[4]
Project Omega[edit]
Microsoft's first attempt to sell a relational database product was during the mid 1980s, when
Microsoft obtained the license to sell R:Base.[5] In the late 1980s Microsoft developed its own solution
codenamed Omega.[6] It was confirmed in 1988 that a database product for Windows and OS/2 was
in development.[7][8] It was going to include the "EB" Embedded Basic language,[6] which was going to
be the language for writing macros in all Microsoft applications,[9] 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.[10] 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.[11] It was scheduled to be released in the 1st quarter of 1990,[12] but in 1989 the
development of the product was reset[5][13] and it was rescheduled to be delivered no sooner than in
January 1991.[14] 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).[5][6] After Access's premiere, the Omega project was demonstrated in 1992 to several
journalists and included features that were not available in Access.[15]
Project Cirrus[edit]
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).[5] Its goal was to create a competitor
for applications like Paradox or dBase that would work on Windows.[16] After Microsoft
acquired FoxPro, there were rumors that the Microsoft project might get replaced with it,[17] but the
company decided to develop them in parallel. It was assumed that the project would make use
of Extensible Storage Engine (Jet Blue)[18] 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.[6] In July 1992, betas of Cirrus shipped to developers[19] and
the name Access became the official name of the product.[20] "Access" was originally used for an
older terminal emulation program from Microsoft. Years after the program was abandoned, they
decided to reuse the name here.[21]
Timeline[edit]
1992: Microsoft released Access version 1.0 on November 13, 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.
As a part of the Microsoft Office 4.3 Professional with Book Shelf, Microsoft Access 2.0 was included
with first sample databases "NorthWind Trader" which covered every possible aspect of
programming your own database. The Northwind Traders sample first introduced the Main
Switchboard features new to Access 2.0 for 1994. The photo of Andrew Fuller, record #2 of that
sample database was the individual that presented and worked with Microsoft to provide such an
outstanding example database.
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), Access 2010
(version 14.0), and Access 2013 (version 15.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.[22] 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, and 2007. 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 services on a SharePoint 2010 server. For the first time, this allowed Access applications 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 service. A copy of Access was
still required for the developer to create the Access Web service, and the desktop version of Access
remained part of Access 2010. The Access Web services were not the same as the desktop
applications. 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 applications could remain in the desktop Access
database.
Microsoft Access 2013 offers traditional Access desktop applications plus a significantly updated
SharePoint 2013 web service.[23] 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.[24] 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.[25] Access desktop database maximum size remained
2GB (as it has been since the 2000 version).
Uses[edit]
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 Microsoft's 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 it 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 web development prior to version 2010 is limited. User interface features
of Access, such as forms and reports, only work in Windows. In versions 2000 through 2003 an
Access object type called Data Access Pages created publishable web pages. Data Access Pages
are no longer supported. The Microsoft Jet Database Engine, core to Access, can be accessed
through technologies such as ODBC or OLE DB. The data (i.e., tables and queries) can be
accessed by web-based applications developed in ASP.NET, PHP, or Java. With the use of
Microsoft's Terminal Services and Remote Desktop Application in Windows Server 2008 R2,
organizations can host Access applications so they can be run over the web.[26] 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.
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).
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 Services in SharePoint has since been retired.[27]
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 or ADE file is a Microsoft Access database file
with all modules compiled and all editable source code removed. Both the .MDE 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.
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.
Features[edit]
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.
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 and Oracle. 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.
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.
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.
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.
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 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 based applications in Access 2010. Integration with
Microsoft SharePoint 2010 is also highly improved.
The 2013 edition of Microsoft Access introduced a mostly flat design and the ability to install apps
from the Office Store, but it did not introduce new features. The theme was partially updated again
for 2016, but no dark theme was created for Access.
Access Services and Web database[edit]
See also: Web form
ASP.NET web forms can query a Microsoft Access database, retrieve records and display them on
the browser.[28]
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.[29]
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.[30] 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.[24]
Microsoft Access
Excel
SharePoint lists
Plain text
XML
Outlook
HTML
dBase (dropped in Access 2013; restored in Access 2016)[31]
Paradox (with Access 2007; dropped in Access 2010[32])
Lotus 1-2-3 (dropped in Access 2010[32])
ODBC-compliant data containers, including:
o Microsoft SQL Server
o Oracle
o MySQL
o PostgreSQL
o IBM Lotus Notes
o AS 400 DB2
Development[edit]
Access stores all database tables, queries, forms, reports, macros, and modules in the Access Jet
database as a single file.
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 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.[35] Users construct the pass-through queries using the SQL syntax supported by the external data
source.
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.
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.
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.
To manipulate data in tables and queries in VBA or macros, Microsoft provides two database access
libraries of COM components:
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)
As well as DAO and ADO, developers can also use OLE DB and ODBC for developing native C/C++
programs for Access.[36] 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.
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