推薦使用:Excel共享編輯軟件(免費下載,像Excel一樣極速上手,可靈活自定義的企業(yè)管理軟件)
Microsoft Office Access(前名Microsoft Access)是由微軟發(fā)布的關(guān)聯(lián)式資料庫管理系統(tǒng)。它結(jié)合了Microsoft Jet Database Engine和圖形用戶界面兩項特點,是Microsoft Office的系統(tǒng)程式之一。
Access能夠存取Access/Jet、Microsoft SQL Server、Oracle數(shù)據(jù)庫,或者任何ODBC相容資料庫內(nèi)的資料。熟練的軟體設(shè)計師和資料分析師利用它來開發(fā)應(yīng)用軟體,而一些不熟練的程式員和非程式員的進(jìn)階用戶則能使用它來開發(fā)簡單的應(yīng)用軟體。雖然它支援部分物件導(dǎo)向技術(shù),但是未能成為一種完整的物件導(dǎo)向開發(fā)工具。
其實Access也是微軟公司另一個通訊程式的名字,想與ProComm以及其他類似程式來競爭??墒鞘潞笪④涀C實這是個失敗計劃,并且將它中止。數(shù)年后他們把名字重新命名于此數(shù)據(jù)庫軟體。

目前最新的Access版本是Microsoft Access 2016 for Windows。
歷史
Microsoft Access 1.0版本在1992年11月發(fā)布。
微軟配置它于系統(tǒng)Windows 3.0內(nèi),并以最小8MB硬碟空間的系統(tǒng)要求,當(dāng)時該軟體以7張1.44MB軟碟儲存發(fā)售。
此軟體能夠有效地處理大量記錄。但是測試顯示在某些情況下,會導(dǎo)致數(shù)據(jù)損毀。之后,該軟體歷經(jīng)改良至今已成為微軟OFFICE商用軟體的主要系統(tǒng)之一。
Access 2007推出 .accdb的副檔名,如果電腦只有Access 2003(.mdb)的版本,無法像 Word,Excel 相容(無法開啟),必須轉(zhuǎn)換成 .mdb檔案
Access 2013中,已經(jīng)無法匯入 .dbase(DataBase)的資料庫檔案
用途
Microsoft Access在很多地方得到廣泛使用,例如小型企業(yè),大公司的部門。喜愛編程的開發(fā)人員亦利用它來制作處理數(shù)據(jù)的桌面系統(tǒng)。它也常被用來開發(fā)簡單的WEB應(yīng)用程式。
它的使用方便程度和強大的設(shè)計工具為初級程式員提供許多功能。不過,方便性的宣傳,常令人誤解。在過于樂觀的誤導(dǎo)下,讓許多沒有程式設(shè)計背景的辦公室從業(yè)人員應(yīng)用此軟體,并以為能夠創(chuàng)造可用的系統(tǒng),但此工具本身的局限性,常常使這些使用者失敗。
一些專業(yè)的應(yīng)用程式開發(fā)人員使用Access內(nèi)附的快速應(yīng)用開發(fā)功能,特別是給街道上的推銷員制作一個初型或獨立應(yīng)用程式的工具??墒侨绻峭高^網(wǎng)路存取數(shù)據(jù)的話,Access的可擴(kuò)放性并不高.因此當(dāng)程式被較多使用者使用時,他們的選擇多會是傾向于一些客戶端-伺服器為本的方案,例如Oracle、IBM DB2、Microsoft SQL Server、Windows SharePoint Services、PostgreSQL、MySQL、Alpha Five、MaxDB,或者Filemaker。無論如何,不少Access的功能(表單,報告,序列和VB代碼)可以用作其他數(shù)據(jù)庫的后期應(yīng)用,包括JET(檔案為主的數(shù)據(jù)庫引擎,Access預(yù)設(shè)使用)、Microsoft SQL Server、Oracle和任何其他跟ODBC相容的產(chǎn)品。這種方法允許開發(fā)者把一個成熟的應(yīng)用的數(shù)據(jù)移動到一臺更大功率的伺服器而不會在適當(dāng)?shù)奈恢脿奚l(fā)展。
SQL
Access查詢中使用的默認(rèn)使用“Microsoft Jet SQL”,而ADO中使用的SQL語法是“ANSI SQL”。這兩種語法存在輕微的差別(中間還包含某些特殊函數(shù)和功能)并非完全兼容。其中通配符就不一樣:對于多個字符,前者是 * 而后者是% ; 對于單個字符,前者是 ? 而后者是 _ 。 Jet SQL基本遵從了SQL ANSI-89 Level 1 compliant。對于Access的字段類型為True/False,在SQL語句中可用0對應(yīng)False,-1對應(yīng)True。不能用1對應(yīng)True。
也可以將ACCESS數(shù)據(jù)庫查詢的語法設(shè)置為兼容ANSI SQL(在ACCESS選項那里設(shè)置),但是這樣做的話,編寫SQL語句就要遵循ANSI SQL語法規(guī)則了。對于之前已經(jīng)使用過的ACCESS數(shù)據(jù)庫不建議這樣做,因為很可能會導(dǎo)致原有編寫的SQL查詢失效,進(jìn)而造成諸多不便。
Access使用的Jet SQL引擎,每次只能執(zhí)行一條SQL語句。如果成批執(zhí)行多條SQL語句,需要使用Visual Basic for Applications編程。在Access的VBA中執(zhí)行SQL語句,有三種方法。
DoCmd.RunSQL:基于Access的對象模型,使用Microsoft Jet SQL,在SQL語句中可以使用VBA函數(shù)。需要在調(diào)用前設(shè)置DoCmd.SetWarnings False關(guān)閉提示或確認(rèn)對話框。執(zhí)行時在Access狀態(tài)欄顯示進(jìn)度條,可通過Esc鍵中止執(zhí)行。不能獲取SQL語句影響的記錄行數(shù)。不能將多個SQL語句的執(zhí)行放在同一事務(wù)中。
CurrentDB.Execute:基于DAO對象模型,使用Microsoft Jet SQL,在SQL語句中可以使用VBA函數(shù)。沒有提示或確認(rèn)對話框的顯示。執(zhí)行時沒有在Access狀態(tài)欄顯示進(jìn)度條,不可以通過Esc鍵中止執(zhí)行。能獲取SQL語句影響的記錄行數(shù)。可以將多個SQL語句的執(zhí)行放在同一事務(wù)中。
CurrentProject.Connection.Execute:基于ADO對象模型,連接到不同數(shù)據(jù)庫使用不同的SQL語法。對Access使用ISO SQL標(biāo)準(zhǔn)語法并可以使用VBA函數(shù)。沒有提示或確認(rèn)對話框的顯示。執(zhí)行時沒有在Access狀態(tài)欄顯示進(jìn)度條,不可以通過Esc鍵中止執(zhí)行。能獲取SQL語句影響的記錄行數(shù)??梢詫⒍鄠€SQL語句的執(zhí)行放在同一事務(wù)中。
例如:
Dim strSQL As String
strSQL = "SELECT * INTO [excel 8.0;database=d:\gz.xls].sheet1 FROM table1 WHERE table1.city = 'gz' "
:REM 執(zhí)行該函數(shù)進(jìn)行SQL查詢
CurrentProject.Connection.Execute strSQL
編程模型
Access軟件自身提供了一套COM對象體系,可供其它軟件(如Excel)使用VBA或者C#、C++等編程語言調(diào)用Access的功能。
Application:Access應(yīng)用程序環(huán)境
DBEngine:數(shù)據(jù)庫管理系統(tǒng)
Debug:立即窗口對象,可用Print輸出文本
Forms:包含所有打開的窗口
Reports:包含所有打開的報表
Screen:屏幕
DoCmd