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月,當時該軟體以7張1.44 MB磁片形式發售。

為了配合Word的版本號碼,Access版本號自Office 95開始與Word同步,版本號配合Word 7訂為7.0。

Access 2007起資料庫改以新檔案格式.accdb儲存。由於與舊Access版本不相容,若需在較舊的Access版本裡讀取,需要先轉存回.mdb。

Access 2013起已不再支援dBase資料庫,無法匯入.dbase的資料庫檔案。

由於Office 2024不再提供Professional版本,故Access不再於零售賣斷的Microsoft Office版本中出現;但Microsoft 365訂閱版本中仍設有Access。

用途
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。对于Access的字段类型为True/False,在SQL语句中可用0对应False,-1对应True。不能用1对应True。

,但是这样做的话,编写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
*[http://support.microsoft.com/kb/283878/EN-US/ Data Normalization Basics]
*Visual Basic

外部連結
*[https://web.archive.org/web/20060218040314/http://www.enflow.com/WhyUseAccess.htm Why Use Microsoft Access]
*[http://www.databasedev.co.uk/ Microsoft Access Articles and Tutorials]
*[http://www.utteraccess.com Utter Access Forums]
*[http://www.programmer-club.com.tw/kb/access.html Access知識庫/程式設計俱樂部]
*[http://www.mvps.org/access A FAQ site about Microsoft Access]
*[http://www.yaccess.com Microsoft Access Linklist]
*[https://web.archive.org/web/20060207094430/http://www.pcreview.co.uk/forums/forum-250.php Microsoft Access Newsgroups]
*[https://web.archive.org/web/20060216122103/http://www.drewslair.com/desk/access_series/Intro.htm Microsoft Access for Beginners]
*[http://www.BlueClaw-DB.com/ Articles on Microsoft Access]
*[http://alexdyb.blogspot.com Blog about Microsoft Access Tips and Tricks]
*[http://www.avdf.com/nov96/acc_jet.html History of JET database]
*[https://web.archive.org/web/20121022033051/http://groups.google.com/group/comp.databases.ms-access/browse_thread/thread/479834e0f8c4adc2/ae679534627a4ff9%23ae679534627a4ff9?sa=X&oi=groupsr&start=0&num=3 Additional info on history of Access]
*[http://www.openaccess.co.za/BlackAndWhiteInc/AccessOpener.htm Access Opener utility manages multiple versions]
*[https://support.office.com/zh-cn/article/Access-%e6%9c%af%e8%af%ad%e8%a1%a8-29ab26b7-1f36-4da4-9e75-479f8e6e3c35?CorrelationId=d1b01e74-d206-4ca0-9832-083f0604c153&ui=zh-CN&rs=zh-CN&ad=CN Access术语表]

评论 (0)

  • 还没有评论,来抢沙发吧。