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数据库等等。
此文来自百度百科!!!