Microsoft Access在不少地方獲得普遍使用,例如小型企業,大公司的部門。
Access的用途體如今兩個方面:
1、用來進行數據分析: access有強大的數據處理、統計分析能力,利用access的查詢功能,能夠方便地進行各種彙總、平均等統計。並可靈活設置統計的條件。好比在統計分析上萬條記錄、十幾萬條記錄及以上的數據時速度快且操做方便,這一點是Excel沒法與之相比的。 這一點體如今:會用access,
[2]
提升了工做效率和工做能力。
2、用來開發軟件: access用來開發軟件,好比
生產管理、
銷售管理、
庫存管理等各種企業管理軟件,其最大的優勢是:易學!非計算機專業的人員,也能學會。低成本地知足了那些從事企業管理工做的人員的管理須要,經過軟件來規範同事、下屬的行爲,推行其管理思想。(VB、.net、 C語言等開發工具對於非計算機專業人員來講太難了,而access則很容易)。 這一點體如今:實現了管理人員(非計算機專業畢業)開發出軟件的「夢想」,從而轉型爲「懂管理+會編程」的複合型人才。
[2]
另外,在開發一些小型網站WEB應用程序時,用來存儲數據。例如ASP+Access。這些應用程序都利用
ASP技術在
InternetInformation Services運行.比較複雜的WEB應用程序則使用
PHP/MySQL或者ASP/Microsoft SQL Server.
ACCESS的用途更多,體如今不少方面:
表格模板。 只需鍵入須要跟蹤的內容,Access 便會使用表格模板提供可以完成相關任務的應用程序。 Access 可處理字段、關係和規則的複雜計算,以便您可以集中精力處理項目。 您將擁有一個全新的應用程序,其中包含可以當即啓動並運行的天然 UI。
建立和運行舊數據庫。 盡情享用對您的現有桌面數據庫 (ACCDB/MDB) 的支持。
Microsoft Office Access特性
Access是一款數據庫應用的開發工具軟件,其開發對象主要是Microsoft JET數據庫和Microsoft SQLServer數據庫。因爲在Office 97及之前的版本中,Microsoft JET 3.51及之前版本的數據庫引擎是隨
Access一塊兒安裝和發佈的,JET數據庫與Access就有了天生的
血緣關係,而且Access對JET數據庫作了不少地擴充,如,在Access的環境中,能夠在查詢中使用本身編寫的VBA函數,Access的窗體、報表、宏和模塊是做爲一種特殊數據存儲在JET數據庫文件(.mdb)中,只有在Access環境中才能使用這些對象。隨着,Microsoft Windows操做系統版本的不斷升級和改良,在
Windows XP之後版本中,Microsoft將JET數據庫引擎集成在Windwos操做系統中做爲系統組件的一部分一塊兒發佈(主要緣由是Windows中還有不少組件須要使用JET引擎,
活動目錄等)。今後JET數據庫引擎從Access中分離出來,而Access也就成爲了一個專門的數據庫應用開發工具。
因爲JET數據庫引擎的分離,不少應用程序採用了JET數據庫做爲其應用的數據庫,JET數據庫符合
關係數據庫理論,有着完整的數據定義、數據處理、數據安全管理體系。在Microsoft Windows操做系統中,隨着Microsoft在ActiveX技術上的發展,Windows中不斷升級換代的數據訪問組件,這些組件包括
ODBC、
OLEDB、
DAO、
ADO、ADO,JET數據庫引擎和這些組件一塊兒已組成了免費的數據庫管理系統。
Access擁有的報表建立功能可以處理任何它可以訪問的數據源。Access提供功能參數化的查詢,這些查詢和Access表格能夠被諸如VB6和.NET的其它程序經過DAO或ADO訪問。在Access中,VBA可以經過ADO訪問參數化的存儲過程。與通常的CS關係型數據庫管理不一樣,Access不執行數據庫觸發,預存程序或交互式登陸操做。Access 2010包括了嵌入ACE數據引擎的表級觸發和預存程序,在Access 2010中,表格,查詢,圖表,報表和宏在基於網絡的應用上可以進行分別開發。Access 2010 與MicrosoftSharePoint 2010 的集成也獲得了很大改善。
它的數據文件不能突破2G的限制,它的結構化查詢語言(JET SQL)能力有限,不適合大型數據庫處理應用。受此限制,JET數據庫引擎容許用戶經過連接表和ODBC來訪問大型的數據庫系統,如Microsoft SQL Server、Oracle等,也可使用連接表訪問ISAM數據文件,如dBase、Excel、文本文件等,固然,這也給Access應用程序開發帶來了不少的靈活性。在這方式下,處理大型數據庫(服務型數據庫,如SQL Server、Oracle)時,每個連接表都有一個服務器的鏈接,在服務器端,鏈接是一種資源,除了每一個鏈接都要佔用必定服務器資源外,還要負責連接表傳遞過來的數據訪問指令的處理並返回相應的結果給客戶端的JET引擎;同時,在客戶端的JET引擎中,JET引擎要負責翻譯各類連接表的數據訪問指令傳遞給服務器,還要負責將服務器返回的結果翻譯成JET引擎的數據表現形式以Access來處理。爲了減輕這種負擔,Microsoft容許Access使用Microsoft的數據訪問組件如DAO、ADO來訪問各類數據源,但是這種方式複雜而又不直觀,給Access面對的辦公人員帶來很高的技術要求。
Microsoft不甘心它的Access軟件只能經過JET引擎使用連接表和ODBC這種既浪費服務器資源又浪費客戶端資源的方式或者經過ADO複雜的編程和不直觀的操做方式來開發大型數據庫系統應用,因而,在Access 2000(Access 9)版本中加入了一種新Access應用程序開發方式——Access數據庫項目ADP,同時在Office 2000的發行包中包括了MSDE1.0和Sharepoint1.0。
因爲ADP的引入,Access增長了新的活力。儘管同時還引入了
DAP(數據訪問頁),因爲其過於複雜的部署和不安全因素(基於互聯網部署,要啓用Remote MSADC,要作跨域訪問,部署複雜且不安全),在Access 2007中,Microsoft終於放棄了DAP。
Microsoft SQLServer的桌面版本可以與Access一塊兒使用,做爲Jet數據庫引擎的替代。這種支持是從MSDE(Miscrosoft SQL Server桌面引擎)開始的。MSDE是MSSQL服務器2000的小型版本,之後的產品是SQL Server 2005 and 2008的Express(入門級)版本。
使用惟一的別名
在Access Basic中,若是你知道
入口點(動態連接庫中函數的名字),你能夠調用動態連接庫中的外部函數。不過,使用這一方法的限制性在於你只能聲明外部函數一次。若是你安裝了調用了你的模塊調用的相同的Windows
應用程序接口,你不會獲得一個不爲人所知的錯誤:試圖用相同的函數定義安裝模塊。你嘗試安裝的模塊要麼是包含有相同的函數名,要麼是包含在已存在的模塊中有的過程名。要使你取的名字惟一,在EDIT菜單中使用FIND命令找到重複的過程名,刪除這些過程。你也能夠用初始值和下劃線優先聲明你全部從動態連接庫中調用的過程,好比,聲明getActiveWindow爲:
Declare bcb_GetActiveWindow Lib "Kernel" Alias "GetActiveWindow" () As Integer.
傳遞空指針給動態庫
一個空的32位指針是否有效是對一些動態連接庫參數要求。要指定一個空值,使用0&。當你的
函數調用一個過程並傳遞一個表達式0&,「&」指定一個32位的空指針,在函數聲明中,一個AS ANY參數指示Access Basic對那個參數不進行類型檢查,同時把值傳遞到被調用的函數。
聲明一個給動態連接庫中的過程傳遞一個空指針參數的Access Basic函數示例以下:
(ByVal lpApplicationName As Any, ByVal lpKeyName As Any, ByVal lpString As Any)
Function nFlushIniCache()
nFlushIniCache =WriteProfileString(0&, 0&, 0&)
End Function
這段聲明瞭WriteProfileString
應用程序接口函數,這個函數來自於外部Windows動態連接庫「kernel」。該函數調用了一個外部過程,爲每一個參數指定一個空值。這將使
WriteProfileString充滿它的內部高速
緩衝區,而且將WIN.INI的任何變化寫到磁盤上。
動態庫調用無符號整數
經常有這樣一種狀況,要從外部動態連接庫調用的過程當中返回一個兩個字節長的無符號整型數。然而Access Basic不支持這種數據類型。正確地計算這種數據類型須要把它從一個無符號整型數轉換程Access Basic長數據類型。
從無符號整型數到Access Basic
長整型數的相互轉換有兩種方法:第一種是最基本的數學運算。第二種是使用Bitwise操做。兩種方法效果同樣,算術方法可讀性更強,Bitwise方法執行地更快。
轉換無符號整型數的算術方法以下:第一個函數讀進一個無符號整型數同時返回一個已經轉變位長整型的值。第二個函數讀入一個長整型值,而後返回一個轉變成無符號整型的值。
Function lArithUintToInt (nUint As Integer)
If nUint < 0 Then
lArithUintToInt = nUint + 65536
Else
lArithUintToInt = nUint
End If
End Function
Function nArithIntToUnint (lBytes As Long)
If lBytes > 32767 Then
nArithIntToUnint = lBytes - 65536
Else
nArithIntToUnint = lBytes
End If
End Function
使用Bitwise方法轉換無符號整型數:第一個函數讀進一個無符號整型數,而後返回一個已經轉換成長整型的值。第二個函數讀入一個長整型值,而後返回一個已經轉換的無符號整型值。第二個函數中使用了提示框的語句是爲了防止當傳遞到函數的值大於64KB時會出現溢出信息。
The functions follow:
Function lBWIntToUint(nUint As Integer)
lBWIntToUint = nUint And &HFFFF&
End Function
Function nBWUintToInt(lBytes As Long)
Dim nTemp As Integer
If lBytes > 65535 Then
MsgBox "You passed a value larger than 65535"
Exit Function
End If
nTemp = lBytes And &H7FFF
nBWUintToInt = nTemp Or -(lBytes And &H8000)
End Function
注意:&HFFFF&要求「&」在16進制數的末尾。這樣能保證32位的16進制數經過16位的值表示出來。
SHIFT和F2鍵調用過程
在Microsoft Access 中有一些之前無正式文本的特性,它們容許你指定過程,這個過程是從一個from或report的屬性
工做表窗中調用的。要進入最小窗口,只須要同時按下SHIFT和F2鍵。
若是在一個模塊中一個函數的定義是以「Builderr Form」開始,同時包含一個相似於Onclose屬性或事件
標識符,按下SHIFT和F2鍵就能夠調用這個過程。例如,當你在一個form的設計窗口中,而當前的
光標落在屬性窗口中的Onclose事件的編輯控制上,按下SHIFT和F2鍵將能調用BuilderFormOnclose函數。這使用於form和reports的大部分屬性和全部事件。下面的代碼將說明函數的格式:
Function BuilderFormOnClose (szFormName As String,
szControlName As String, szCurrentValue As String, szReserved As String)
If szCurrentValue = "" Then
DoCmd SelectObject A_MACRO, "", True
SendKeys "%n%fs" & "New Macro" & "{Enter}"
Forms(szFormName).OnClose = "New Macro"
Else
DoCmd SelectObject A_MACRO, szCurrentValue, True
SendKeys "%d"
End If End Function
參數szFormName, szControlName, szCurrentValue, 和 szReserved必須聲明,即便你從不使用它們。當你的函數被調用時,這些參數老是要被傳遞的。若是它們沒有被聲明,那麼Microsoft Access將不會調用你的函數。若是有一個參數被分配到Onclose事件上,那麼前面的過程將打開一個宏,若是編輯控制是空,那麼代碼產生一個名爲「New Macro」的新宏,同時把編輯控制值設置爲「New Macro」。
誠然,前面的例子並非很是完美,但它的確說明了要產生一個完美而有效的程序所必須的條件。
Microsoft Office Access功能
編輯
取消傳統菜單操做方式而代之以功能區是Access2007的明顯改進之一,用戶能夠在功能區中進行絕大多數的數據庫管理相關操做。Access2007默認狀況下有如下4個功能區,每一個功能區根據命令的做用又分爲多個組。
開始
「開始」功能區中包括視圖、剪貼板、字體、格式文本、記錄、排序和篩選、查找、中文簡繁轉換8個分組,用戶能夠在「開始」功能區中對Access2007進行操做例如複製粘貼數據、修改字體和字號、排序數據等。
建立
「建立」功能區中包括表、
窗體、報表、其餘和特殊符號5個分組,「建立」功能區中包含的命令主要用於建立Access2007的各類元素。
外部數據
「
外部數據」功能區包括導入、導出、收集數據、
SharePoint列表4個分組,在「外部數據」功能區中主要對Access2007之外的數據進行相關處理。
數據庫工具
「數據庫工具」功能區包括宏、顯示/隱藏、分析、移動數據、數據庫工具5個分組,主要針對Access2007數據庫進行比較高級的操做。
除了上述4種功能區以外,還有一些隱藏的功能區默認沒有顯示。只有在進行特定操做時,相關的功能區纔會顯示出來。例如在執行建立表操做時,會自動打開「數據表」功能區。
[3]
Microsoft Office Access優缺點
編輯
Microsoft Office Access優點
Microsoft Access Basic提供了一個豐富的開發環境。這個
開發環境給你足夠的靈活性和對Microsoft Windows
應用程序接口的控制,同時保護你使你免遭用高級或低級語言開發環境開發時所碰到的各類麻煩。不過,許多優化、有效數據和模塊化方面只能是應用程序設計者才能使用。開發者應致力於謹慎地使用算法。除了通常的程序設計概念,還有一些特別的存儲空間的管理技術,正確使用這些技術能夠提升應用程序的執行速度,減小應用程序所消耗的存儲資源。
提升速度和減小代碼量
你能夠用幾種技巧來提升你的編碼速度,可是卻找不到有效的算法的替代者。接下來的這幾點建議能夠提升你的編碼速度同時又減小你的應用程序消耗的存儲空間。
用整形數進行數學運算
即便Microsoft Access 會使用一個聯合處理器來處理
浮點型算術,
整型數算術也老是要快一些。當你的計算不含有小數,儘可能使用整型或
長整型而不是變量或雙整型。整型除法一樣也要比浮點除法要快。在使用其餘一些有效的數據類型時會警告:沒有任何東西能夠替換有效的運算法則。
避免使用過程調用
避免在循環體中使用
子程序或
函數調用。每一次調用都因額外的工做和時間而給編碼增大了負擔。每一次調用都要求把函數的
局部變量和參數壓棧,而棧的大小是固定的,不能隨便加大,而且同時還要於Microsoft Access共享。
謹慎使用不定長數據類型
不定長數據類型提供了更大的靈活性,好比說容許正確處理
空值和自動處理溢出。另外這種數據類型比傳統的數據類型要大並消耗更多的存儲空間。前面還曾經提到過,不定長數據類型的變量在數學計算中比較慢。
用變量存放屬性
對變量進行查找和設置都比對屬性進行這些操做要快。若是你要獲得或查閱一個屬性值許屢次,那麼把這個屬性分配給一個變量,並用這個變量來代替屬性,那麼你的代碼將要運行快得多。例如,在一個循環中,你查閱某表格中得一個控制的屬性,那麼在循環外把屬性分配給一個變量,而後在循環中用查詢一個變量來代替查閱一個屬性的方法要比較快。
預載表格
當你的應用程序啓動而且把它們的可見屬性設置位‘false’時,若是你安裝了你全部的表格,那麼你的應用程序的性能會讓你感受挺快。當你須要顯示一個表格時,你只須要把該表格的可見屬性設置爲‘true’,這要比安裝一個表格要快得多。須要記住的是,爲你安裝的每一個表格,你都要從應用程序的全局堆中消耗存儲空間。
ASP中鏈接字符串應用
"Driver={microsoft access driver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"
dim conn
set conn = server.createobject("adodb.connection")
conn.open "provider=Microsoft.ACE.OLEDB.12.0;" & "data source = " & server.mappath("bbs.mdb")
Microsoft Office Access缺陷
1,數據庫過大時,通常ACCESS數據庫達到100M左右的時候性能就會開始降低!(例如:訪問人數過多時容易形成
IIS假死,過多消耗服務器資源等等)
2,容易出現各類因數據庫刷寫頻率過快而引發的數據庫問題。
3,ACCESS數據庫安全性比不上其餘類型的數據庫。
4,ACCESS論壇大了之後就很容易出現數據庫方面的問題,當論壇數據庫在50M以上,帖子5萬左右,在線也在100人左右的時候,你的論壇基本上都在處理數據庫上花時間,這個時候極可能就會出現數據庫慢的狀況。
通常症狀是全部涉及數據庫的頁面,忽然運行都慢的出奇(執行時間達到5秒以上甚至幾十秒),涉及
HTML和純
ASP運算的頁面都正常,等過一段時間(約10分鐘或更長)之後又忽然恢復(個人論壇有時候就會出現這樣的問題)。這個時候你能夠用通常ASP探針測試一下,若是
服務器的運算時間正常,通常就是數據庫方面的問題了。
解決方法:
因爲這是ACCESS自己的侷限性,因此解決的方法除了減小數據量和更換大型的數據庫論壇之外也沒什麼好辦法。
1。臨時解決辦法:按期刪除多餘的數據、壓縮數據庫,限制論壇灌水,甚至限制論壇註冊。
2。比較長遠辦法:更換論壇和數據庫,使用SQL數據庫等等。
此文來自百度百科!!!