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