Microsoft Access

Microsoft Office Access（前名Microsoft Access）是由微软发布的关联式资料库管理系统。它结合了Microsoft Jet Database Engine和图形用户界面两项特点，是Microsoft Office的系统程式之一。
Access能够存取Access/Jet、Microsoft SQL Server、Oracle数据库，或者任何ODBC相容资料库内的资料。熟练的软体设计师和资料分析师利用它来开发应用软体，而一些不熟练的程式员和非程式员的进阶用户则能使用它来开发简单的应用软体。虽然它支援部分物件导向技术，但是未能成为一种完整的物件导向开发工具。
其实Access也是微软公司另一个通讯程式的名字，想与ProComm以及其他类似程式来竞争。可是事后微软证实这是个失败计划，并且将它中止。数年后他们把名字重新命名于此数据库软体。

**历史**
Microsoft Access 1.0版本在1992年11月发布。
微软配置它于系统Windows 3.0内，并以最小8MB硬碟空间的系统要求，当时该软体以7张1.44MB软碟储存发售。
此软体能够有效地处理大量记录。但是测试显示在某些情况下，会导致数据损毁。之后，该软体历经改良至今已成为微软OFFICE商用软体的主要系统之一。
Access 2007推出 .accdb的副档名，如果电脑只有Access 2003(.mdb)的版本，无法像 Word,Excel 相容(无法开启)，必须转换成 .mdb档案。
Access 2013已经无法汇入 .dbase(DataBase)的资料库档案。

**用途**
Microsoft Access在很多地方得到广泛使用，例如小型企业，大公司的部门。喜爱编程的开发人员亦利用它来制作处理数据的桌面系统。它也常被用来开发简单的WEB应用程式。
它的使用方便程度和强大的设计工具为初级程式员提供许多功能。不过，方便性的宣传，常令人误解。在过于乐观的误导下，让许多没有程式设计背景的办公室从业人员应用此软体，并以为能够创造可用的系统，但此工具本身的局限性，常常使这些使用者失败。
一些专业的应用程式开发人员使用Access内附的快速应用开发功能，特别是给街道上的推销员制作一个初型或独立应用程式的工具。可是如果是透过网路存取数据的话，Access的可扩放性并不高．因此当程式被较多使用者使用时，他们的选择多会是倾向于一些客户端-伺服器为本的方案，例如Oracle、IBM DB2、Microsoft SQL Server、Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB，或者Filemaker。无论如何，不少Access的功能（表单，报告，序列和VB代码）可以用作其他数据库的后期应用，包括JET（档案为主的数据库引擎，Access预设使用）、Microsoft SQL Server、Oracle和任何其他跟ODBC相容的产品。这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率的伺服器而不会在适当的位置牺牲发展。

**SQL**
Access查询中使用的默认使用“Microsoft Jet SQL”，而ADO中使用的SQL语法是“ANSI SQL”。这两种语法存在轻微的差别（中间还包含某些特殊函数和功能）并非完全兼容。其中通配符就不一样:对于多个字符，前者是 *  而后者是%  ； 对于单个字符，前者是 ?  而后者是 _  。  Jet SQL基本遵从了SQL ANSI-89 Level 1 compliant。对于Access的字段类型为True/False，在SQL语句中可用0对应False，-1对应True。不能用1对应True。
也可以将ACCESS数据库查询的语法设置为兼容ANSI SQL（在ACCESS选项那里设置），但是这样做的话，编写SQL语句就要遵循ANSI SQL语法规则了。对于之前已经使用过的ACCESS数据库不建议这样做，因为很可能会导致原有编写的SQL查询失效，进而造成诸多不便。
Access使用的Jet SQL引擎，每次只能执行一条SQL语句。如果成批执行多条SQL语句，需要使用Visual Basic for Applications编程。在Access的VBA中执行SQL语句，有三种方法。
*DoCmd.RunSQL：基于Access的对象模型，使用Microsoft Jet SQL，在SQL语句中可以使用VBA函数。需要在调用前设置DoCmd.SetWarnings False关闭提示或确认对话框。执行时在Access状态栏显示进度条，可通过Esc键中止执行。不能获取SQL语句影响的记录行数。不能将多个SQL语句的执行放在同一事务中。
*CurrentDB.Execute：基于DAO对象模型，使用Microsoft Jet SQL，在SQL语句中可以使用VBA函数。没有提示或确认对话框的显示。执行时没有在Access状态栏显示进度条，不可以通过Esc键中止执行。能获取SQL语句影响的记录行数。可以将多个SQL语句的执行放在同一事务中。
*CurrentProject.Connection.Execute：基于ADO对象模型，连接到不同数据库使用不同的SQL语法。对Access使用ISO SQL标准语法并可以使用VBA函数。没有提示或确认对话框的显示。执行时没有在Access状态栏显示进度条，不可以通过Esc键中止执行。能获取SQL语句影响的记录行数。可以将多个SQL语句的执行放在同一事务中。 
例如：

Dim strSQL As String
strSQL = "SELECT * INTO excel 8.0;database=d:\gz.xls.sheet1 FROM table1 WHERE table1.city = 'gz' " 
:REM 执行该函数进行SQL查询 
CurrentProject.Connection.Execute strSQL

**编程模型**
Access软件自身提供了一套COM对象体系，可供其它软件（如Excel）使用VBA或者C#、C++等编程语言调用Access的功能。- Application：Access应用程序环境- DBEngine：数据库管理系统- Debug：立即窗口对象，可用Print输出文本- Forms：包含所有打开的窗口- Reports：包含所有打开的报表- Screen：屏幕- DoCmd

**延伸阅读**
"Microsoft Office Access 2003 Inside Out" by John L. Viescas
*"Database Design for Mere Mortals" by Michael J. Hernandez
*"Access Database Design & Programming" by Steven Roman
*"Access 2002 Developer's Handbook™ Set By Paul Litwin; Ken Getz; Mike Gunderloy
*"Succeeding in Business with Microsoft Office Access 2003: A Problem-Solving Approach" by  Karin Bast, Leon Cygman, Gerard Flynn, Rebekah Tidwell
*"Access 2003 VBA Programmer's Reference" by Patricia Cardoza, Teresa Hennig, Graham Seach, Armen Stein
*"SQL Access to SQL Server" Published by Apress - Susan Sales Harkins and Martin WP Reid
*"Mastering Microsoft Office Access 2003" Published by Sams - Alison Balter

**参见**
Microsoft SQL Server
*Microsoft Office
*Microsoft
*List of relational database management systems
*Xbase
*Comparison of relational database management systems- Data Normalization Basics date=20150130082430 
*Visual Basic

**外部连结**
 Why Use Microsoft Access- Microsoft Access Articles and Tutorials date=20201127005315 - Utter Access Forums date=20210128012917 - Access知识库/程式设计俱乐部 date=20110405162706 - A FAQ site about Microsoft Access date=20110424232657 - Microsoft Access Linklist date=20181215174301 - Microsoft Access Newsgroups- Microsoft Access for Beginners- Articles on Microsoft Access date=20170606161042 - Blog about Microsoft Access Tips and Tricks date=20080524221753 - History of JET database date=20170808093446 - Additional info on history of Access- Access Opener utility manages multiple versions date=20161202210138 - Access术语表 date=20171208035254