换一批

Access

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。

经验文章 概述

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。

Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员, 在包括专业版和更高版本的office版本里面被单独出售。2012年12月4日,最新的微软Office Access 2013在微软Office 2013里发布,微软Office Access 2010 是前一个版本。

MS ACCESS以它自己的格式将数据存储在基于Access Jet的数据库引擎里。它还可以直接导入或者链接数据(这些数据存储在其他应用程序和数据库)。

基本信息

中文名称

access-微软发布的关联式数据库管理系统

外文名称

Access - Microsoft released the relational database management system

公司名称

微软

类型

软件

系统简介

MicrosoftOfficeAccess是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理

MicrosoftOfficeAccess(2张)系统。它是微软OFFICE的一个成员,在包括专业版和更高版本的office版本里面被单独出售。2012年12月4日,最新的微软OfficeAccess2013在微软Office2013里发布,微软OfficeAccess2010是前一个版本。

access

access

access

access

MSACCESS以它自己的格式将数据存储在基于AccessJet的数据库引擎里。它还可以直接导入或者链接数据(这些数据存储在其他应用程序和数据库)。

软件开发人员和数据架构师可以使用MicrosoftAccess开发应用软件,“高级用户”可以使用它来构建软件应用程序。和其他办公应用程序一样,ACCESS支持VisualBasic宏语言,它是一个面向对象的编程语言,可以引用各种对象,包括DAO(数据访问对象),ActiveX数据对象,以及许多其他的ActiveX组件。可视对象用于显示表和报表,他们的方法和属性是在VBA编程环境下,VBA代码模块可以声明和调用Windows操作系统函数。

​用途体现

MicrosoftAccess在很多地方得到广泛使用,例如小型企业,大公司的部门。

Access的用途体现在两个方面:

一、用来进行数据分析:access有强大的数据处理、统计分析能力,利用access的查询功能,可以方便地进行各类汇总、平均等统计。并可灵活设置统计的条件。比如在统计分析上万条记录、十几万条记录及以上的数据时速度快且操作方便,这一点是Excel无法与之相比的。这一点体现在:会用access,提高了工作效率和工作能力。

二、用来开发软件:access用来开发软件,比如生产管理、销售管理、库存管理等各类企业管理软件,其最大的优点是:易学!非计算机专业的人员,也能学会。低成本地满足了那些从事企业管理工作的人员的管理需要,通过软件来规范同事、下属的行为,推行其管理思想。(VB、.net、C语言等开发工具对于非计算机专业人员来说太难了,而access则很容易)。这一点体现在:实现了管理人员(非计算机专业毕业)开发出软件的“梦想”,从而转型为“懂管理+会编程”的复合型人才。[1]

另外,在开发一些小型网站WEB应用程序时,用来存储数据。例如ASP+Access。这些应用程序都利用ASP技术在InternetInformationServices运行.比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/MicrosoftSQLServer.

ACCESS的用途更多,体现在很多方面:

表格模板。只需键入需要跟踪的内容,Access便会使用表格模板提供能够完成相关任务的应用程序。Access可处理字段、关系和规则的复杂计算,以便您能够集中精力处理项目。您将拥有一个全新的应用程序,其中包含能够立即启动并运行的自然UI。

创建和运行旧数据库。尽情享用对您的现有桌面数据库(ACCDB/MDB)的支持。

使用技巧

通过使用AccessBasic可以增加应用程序的执行速度,减少编码量,同时也减少在为MicrosoftWindows应用程序接口编程时、在开发应用程序中遇到的问题的技术。谨慎地使用变量和它所占用的存储空间能有效地减少一个应用程序所消耗的资源,同时也全面提高了它的性能。

不正确地调用Windows应用程序接口可能会产生一些意想不到的副作用,以及潜在地对一个应用程序的代码及数据段的破坏。因此正确地使用一个空的32位指针在MicrosoftAccess中是十分必要的。

当对表格和报表进行操作时,MicrosoftAccess有一个无正式文本的特性。这个特性允许你从设计视窗性质sheetwindow中进行过程调用,调用的方法时同时按下shift和F2键。

使用唯一的别名

在AccessBasic中,如果你知道入口点(动态链接库中函数的名字),你可以调用动态链接库中的外部函数。不过,使用这一方法的限制性在于你只能声明外部函数一次。如果你安装了调用了你的模块调用的相同的Windows应用程序接口,你不会得到一个不为人所知的错误:试图用相同的函数定义安装模块。

你尝试安装的模块要么是包含有相同的函数名,要么是包含在已存在的模块中有的过程名。删除这些过程,在EDIT菜单中使用FIND命令找到重复的过程名,要解决这一问题,你需要使用一种叫做“别名使用“的技术。这种技术允许你给你的过程一个独一无二的名字。但是,你选择的别名也有可能不是独一无二的,所以要使你取的名字唯一,你可以用初始值和下划线优先声明你所有从动态链接库中调用的过程,比如,声明getActiveWindow为:

Declarebcb_GetActiveWindowLib"Kernel"Alias"GetActiveWindow"()AsInteger.

传递空指针给动态库

一个空的32位指针是有效的或是为一些动态链接库要求具有参数。要指定一个空值,使用0&。当你的函数调用一个过程并传递一个表达式0&,“&”指定一个32位的空指针,在函数声明中,一个ASANY参数指示AccessBasic对那个参数不进行类型检查,同时把值传递到被调用的函数。

下面的编码示范了一个正确的方法,告诉你如何声明一个给动态链接库中的过程传递一个空指针参数的AccessBasic函数。这段声明了WriteProfileString应用程序接口函数。这个函数来自于外部Windows动态链接库“kernel”。

DeclareFunctionWriteProfileStringLib"Kernel"

(ByVallpApplicationNameAsAny,ByVallpKeyNameAsAny,ByVallpStringAsAny)

接下来的函数调用了一个外部过程,为每个参数指定一个空值。这将使WriteProfileString充满它的内部高速缓冲区,并且WIN.INI的任何变化写到磁盘上。

重要的对这个函数不正确的使用会引起一般性的保护故障或修改你的WIN.INI文件。

FunctionnFlushIniCache()

nFlushIniCache=WriteProfileString(0&,0&,0&)

EndFunction

动态库调用无符号整数

常常有这样一种情况,要从外部动态链接库调用的过程中返回一个两个字节长的无符号整型数。然而AccessBasic不支持这种数据类型。正确地计算这种数据类型需要把它从一个无符号整型数转换程AccessBasic长数据类型。

AccessBasic整型数的范围使从-32768到32767。一个无符号整型数的范围是从0到65535。AccessBasic用最明显的一位来放置数值的符号位,所以当数值超过32767,第16位将被置成负数符号。要计算一个无符号整型数,你必须人工调整第16位。

从无符号整型数转换到AccessBasic长整型数或从AccessBasic的长整型转换成无符号整型数有两种方法。第一种方法用到了最基本的数学运算(65535被无符号整型值加或减)。第二种方法使用Bitwise操作。实际上,算术方法和Bitwise方法工作起来效果一样,只不过,算术方法可能可读性更强一些,而Bitwise方法在执行时可能更快一些。

算术方法

下面的lArithUintToInt(nUint)和lArithIntToUnint(lBytes)过程示范了如何使用转换无符号整型数的算术方法。第一个函数读进一个无符号整型数同时返回一个已经转变位长整型的值。第二个函数读入一个长整型值,然后返回一个转变成无符号整型的值。

FunctionlArithUintToInt(nUintAsInteger)

IfnUint<0Then

lArithUintToInt=nUint+65536

Else

lArithUintToInt=nUint

EndIf

EndFunction

FunctionnArithIntToUnint(lBytesAsLong)

IflBytes>32767Then

nArithIntToUnint=lBytes-65536

Else

nArithIntToUnint=lBytes

EndIf

EndFunction

按位操作方法

下面的nBWUintToInt(lBytes)和lBWIntToUint(nUint)过程示范了如何使用Bitwise方法转换无符号整型数。第一个函数读进一个无符号整型数,然后返回一个已经转换成长整型的值。第二个函数读入一个长整型值,然后返回一个已经转换的无符号整型值。第二个函数中使用了提示框的语句是为了防止当传递到函数的值大于64KB时会出现溢出信息。

1010001111100000(41952)

Thefunctionsfollow:

FunctionlBWIntToUint(nUintAsInteger)

lBWIntToUint=nUintAnd&HFFFF&

EndFunction

FunctionnBWUintToInt(lBytesAsLong)

DimnTempAsInteger

IflBytes>65535Then

MsgBox"Youpassedavaluelargerthan65535"

ExitFunction

EndIf

nTemp=lBytesAnd&H7FFF

nBWUintToInt=nTempOr-(lBytesAnd&H8000)

EndFunction

注意:&HFFFF&要求“&”在16进制数的末尾。这样能保证32位的16进制数通过16位的值表示出来。

AccessBasic中的技巧

在MicrosoftAccess中有一些以前无正式文本的特性,它们允许你指定过程,这个过程是从一个from或report的属性工作表窗中调用的。要进入最小窗口,只需要同时按下SHIFT和F2键。

BUILDERFORM函数

如果在一个模块中一个函数的定义是以“BuilderrForm”开始同时包含一个类似于Onclose属性或事件标识符,按下SHIFT和F2键就可以调用这个过程。例如,当你在一个form的设计窗口中,而当前的光标落在属性窗口中的Onclose事件的编辑控制上,按下SHIFT和F2键将能调用BuilderFormOnclose函数。这使用于form和reports的大部分属性和所有事件。下面的代码将说明函数的格式:

FunctionBuilderFormOnClose(szFormNameAsString,

szControlNameAsString,szCurrentValueAsString,szReservedAsString)

IfszCurrentValue=""Then

DoCmdSelectObjectA_MACRO,"",True

SendKeys"%n%fs"&"NewMacro"&"{Enter}"

Forms(szFormName).OnClose="NewMacro"

Else

DoCmdSelectObjectA_MACRO,szCurrentValue,True

SendKeys"%d"

EndIfEndFunction

参数szFormName,szControlName,szCurrentValue,和szReserved必须声明,即使你从不使用它们。当你的函数被调用时,这些参数总是要被传递的。如果它们没有被声明,那么MicrosoftAccess将不会调用你的函数。如果有一个参数被分配到Onclose事件上,那么前面的过程将打开一个宏,如果编辑控制是空,那么代码产生一个名为“NewMacro”的新宏,同时把编辑控制值设置为“NewMacro”。诚然,前面的例子并不是非常完美,但它的确说明了要产生一个完美而有效的程序所必须的条件。

系统优势

MicrosoftAccessBasic提供了一个丰富的开发环境。这个开发环境给你足够的灵活性和对MicrosoftWindows应用程序接口的控制,同时保护你使你免遭用高级或低级语言开发环境开发时所碰到的各种麻烦。不过,许多优化、有效数据和模块化方面只能是应用程序设计者才能使用。开发者应致力于谨慎地使用算法。除了一般的程序设计概念,还有一些特别的存储空间的管理技术,正确使用这些技术可以提高应用程序的执行速度,减少应用程序所消耗的存储资源。

提高速度和减少代码量

你可以用几种技巧来提高你的编码速度,但是却找不到有效的算法的替代者。接下来的这几点建议可以提高你的编码速度同时又减少你的应用程序消耗的存储空间。

用整形数进行数学运算

即使MicrosoftAccess会使用一个联合处理器来处理浮点型算术,整型数算术也总是要快一些。当你的计算不含有小数,尽量使用整型或长整型而不是变量或双整型。整型除法同样也要比浮点除法要快。在使用其他一些有效的数据类型时会警告:没有任何东西可以替换有效的运算法则。

避免使用过程调用

避免在循环体中使用子程序或函数调用。每一次调用都因额外的工作和时间而给编码增大了负担。每一次调用都要求把函数的局部变量和参数压栈,而栈的大小是固定的,不能随便加大,并且同时还要于MicrosoftAccess共享。

谨慎使用不定长数据类型

不定长数据类型提供了更大的灵活性,比如说允许正确处理空值和自动处理溢出。另外这种数据类型比传统的数据类型要大并消耗更多的存储空间。前面还曾经提到过,不定长数据类型的变量在数学计算中比较慢。

用变量存放属性

对变量进行查找和设置都比对属性进行这些操作要快。如果你要得到或查阅一个属性值许多次,那么把这个属性分配给一个变量,并用这个变量来代替属性,那么你的代码将要运行快得多。例如,在一个循环中,你查阅某表格中得一个控制的属性,那么在循环外把属性分配给一个变量,然后在循环中用查询一个变量来代替查阅一个属性的方法要比较快。

预载表格

当你的应用程序启动并且把它们的可见属性设置位‘false’时,如果你安装了你所有的表格,那么你的应用程序的性能会让你感觉挺快。当你需要显示一个表格时,你只需要把该表格的可见属性设置为‘true’,这要比安装一个表格要快得多。需要记住的是,为你安装的每个表格,你都要从应用程序的全局堆中消耗存储空间。

ASP中连接字符串应用

"Driver={microsoftaccessdriver(*.mdb)};dbq=*.mdb;uid=admin;pwd=pass;"

dimconn

setconn=server.createobject("adodb.connection")

conn.open"provider=Microsoft.ACE.OLEDB.12.0;"&"datasource="&server.mappath("bbs.mdb")

​版本历史

MicrosoftAccess1.0版本在1992年11月发布。

微软指定它对系统最小要求为视窗3.0配以4兆节内存。6兆节内存配以最小8兆节硬盘空间(建议最好有14兆节硬盘空间)则为建议的系统要求。当时软件以7张1.44兆节软碟发布的载体。

这个软件能够有效地处理大量记录但是测试显示在某些情况下会导致数据损毁。Forexample,filesizesover700MBwereproblematic.(Notethatmostharddisksweresmallerthan700MBatthetimethiswasinwideuse.)TheGettingStartedmanualwarnsaboutanumberofcircumstanceswhereobsoletedevicedriversorincorrectconfigurationscancausedataloss.

Access'initialcodenamewasCirrus.ThiswasdevelopedbeforeVisualBasicandtheformsenginewascalledRuby.BillGatessawtheprototypesanddecidedthattheBasiclanguagecomponentshouldbeco-developedasaseparateexpandableapplication.ThisprojectwascalledThunder.Thetwoprojectsweredevelopedseparatelyastheunderlyingformsengineswereincompatiblewitheachother;however,theseweremergedtogetheragainafterVBA.

年份

版本

版本

代号

支援系统

Office

1992年

Access 1.1

1

Windows 3.0


1993年

Access 2.0

2.0

Windows 3.1x

Office 4.3 Pro

1995年

Access for Windows 95

7.0

Windows 95

Office 95 Professional

1997年

Access 97

8.0

Windows 9x,NT3.51/4.0

Office 97

1999年

Access 2000

9.0

Windows 9x, NT 4.0, 2000

Office 2000

2001年

Access 2002

10

Windows 98, Me, 2000, XP

Office XP

2003年

Access 2003

11

Windows 2000, XP,Vista

Office 2003

2007年

Microsoft Office Access 2007

12

Windows XP SP2, Vista

Office 2007

2010年

Microsoft Office Access 2010

14

Windows 7

Office 2010

2012年Microsoft Office Access 201315Windows 7 & Windows 8Office 2013Professional,plus

发展过程

进入可提供的编程语言,当时在另一个内产品MicrosoftOffice家族,微软公司应用的VisualBasic。两个数据库进入讯息库COM组成部分被提供:这笔遗产数据存取物体(DAO),用进入和新只可提供ActiveX数据对象(忙乱)。

MicrosoftAccess容易被应用于小的工程但是对大规模的工程无效,如果设计不好很难被应用。

全部数据库质问,形式和报告被储存在数据库里,并且与相关的模型的理想协调,没有与他们做一个身体上组织的阶层的可能性。

一种设计技术是把进入应用在数据和计划之间进行分发。一数据库应该只包含表和关系,当另一个将有全部计划时,形式,报告和质问和对第一个数据库表的连接。令人遗憾,当连结时,进入允许没有有关的道路,因此那些发展环境作为这种生产环境有相同的道路应该(虽然你写你们自己的能"动态连接程序"常规在里VBA那搜出能一定背面结束档案以透过这个

系统特性

用户可以创建表,进行查询,创建图表和报告,并且可以通过宏把他们联系在一起。高级用户能够使用宏命令做出拥有高级数据操作和用户控制权的较完善的方案。Access拥有的报表创建功能能够处理任何它能够访问的数据源。

Access提供功能参数化的查询,这些查询和Access表格可以被诸如VB6和.NET的其它程序通过DAO或ADO访问。在Access中,VBA能够通过ADO访问参数化的存储过程。

MicrosoftSQLServer的桌面版本能够与Access一起使用,作为Jet数据库引擎的替代。这种支持是从MSDE(MiscrosoftSQLServer桌面引擎)开始的。MSDE是MSSQL服务器2000的小型版本,以后的产品是SQLServer2005and2008的Express(入门级)版本。

与一般的CS关系型数据库管理不同,Access不执行数据库触发,预存程序或交互式登录操作。Access2010包括了嵌入ACE数据引擎的表级触发和预存程序,因此,客户-服务器数据库系统对于Access2010就不是必需的了。在Access2010中,表格,查询,图表,报表和宏现在基于网络的应用上能够进行分别开发。Access2010与MicrosoftSharePoint2010的集成也得到了很大改善。

主要功能

取消传统菜单操作方式而代之以功能区是Access2007的明显改进之一,用户可以在功能区中进行绝大多数的数据库管理相关操作。Access2007默认情况下有以下4个功能区,每个功能区根据命令的作用又分为多个组。

开始

“开始”功能区中包括视图、剪贴板、字体、格式文本、记录、排序和筛选、查找、中文简繁转换8个分组,用户可以在“开始”功能区中对Access2007进行操作例如复制粘贴数据、修改字体和字号、排序数据等。

创建

“创建”功能区中包括表、窗体、报表、其他和特殊符号5个分组,“创建”功能区中包含的命令主要用于创建Access2007的各种元素。

外部数据

“外部数据”功能区包括导入、导出、收集数据、SharePoint列表4个分组,在“外部数据”功能区中主要对Access2007以外的数据进行相关处理。

数据库工具

“数据库工具”功能区包括宏、显示/隐藏、分析、移动数据、数据库工具5个分组,主要针对Access2007数据库进行比较高级的操作。

除了上述4中功能区之外,还有一些隐藏的功能区默认没有显示。只有在进行特定操作时,相关的功能区才会显示出来。例如在执行创建表操作时,会自动打开“数据表”功能区。

相关信息

1,数据库过大时,一般ACCESS数据库达到100M左右的时候性能就会开始下降!(例如:访问人数过多时容易造成IIS假死,过多消耗服务器资源等等)

2,容易出现各种因数据库刷写频率过快而引起的数据库问题。

3,ACCESS数据库安全性比不上其他类型的数据库。

4,ACCESS论坛大了以后就很容易出现数据库方面的问题,当论坛数据库在50M以上,帖子5万左右,在线也在100人左右的时候,你的论坛基本上都在处理数据库上花时间,这个时候很可能就会出现数据库慢的情况。

一般症状是所有涉及数据库的页面,突然运行都慢的出奇(执行时间达到5秒以上甚至几十秒),涉及HTML和纯ASP运算的页面都正常,等过一段时间(约10分钟或更长)以后又突然恢复(我的论坛有时候就会出现这样的问题)。这个时候你可以用一般ASP探针测试一下,如果服务器的运算时间正常,一般就是数据库方面的问题了。

解决方法:

由于这是ACCESS本身的局限性,所以解决的方法除了减少数据量和更换大型的数据库论坛以外也没什么好办法。

1。临时解决办法:定期删除多余的数据、压缩数据库,限制论坛灌水,甚至限制论坛注册。

2。比较长远办法:更换论坛和数据库,使用SQL数据库等等。

考试用书

全国计算机等级考试教程——二级Access

作者:全国计算机等级考试教材编写组,未来教育学与研究中心

编著出版社:人民邮电出版社

内容推荐

本书是依据教育部考试中心最新发布的《全国计算机等级考试大纲》以及作者多年对等级考试的研究编写成的,旨在帮助考生(尤其是非计算机专业初学者)学习相关内容,顺利通过考试。

全书共分9章,主要内容包括:数据库的基础知识、数据库和表的基本操作、查询、窗体、报表、数据访问页、宏、模块和VBA数据库编程等。

本书所配光盘提供笔试和上机考试的模拟系统。

本书可作为全国计算机等级考试培训用书和自学用书,也可作为学习Access的参考书。

相关文章

手机页面
收藏网站 回到头部