Book1 第1章 ACCESS使用基础.docx

上传人:b****5 文档编号:7629324 上传时间:2023-01-25 格式:DOCX 页数:19 大小:470.79KB
下载 相关 举报
Book1 第1章 ACCESS使用基础.docx_第1页
第1页 / 共19页
Book1 第1章 ACCESS使用基础.docx_第2页
第2页 / 共19页
Book1 第1章 ACCESS使用基础.docx_第3页
第3页 / 共19页
Book1 第1章 ACCESS使用基础.docx_第4页
第4页 / 共19页
Book1 第1章 ACCESS使用基础.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Book1 第1章 ACCESS使用基础.docx

《Book1 第1章 ACCESS使用基础.docx》由会员分享,可在线阅读,更多相关《Book1 第1章 ACCESS使用基础.docx(19页珍藏版)》请在冰豆网上搜索。

Book1 第1章 ACCESS使用基础.docx

Book1第1章ACCESS使用基础

第1章ACCESS使用基础

1.1简介

MSAccess是一种运行于Windows平台上的应用数据库系统,它为开发者提供了一个功能强大、易于开发和管理的数据库工作环境。

金蝶部门级财务软件选用的后端数据库即为Access,其版本有V2.0和V8.0两种,这两个版本对数据库的管理基本类似。

Access提供了六种对象用以构成一个数据库系统,这些对象分别是表(Table)、查询(Query)、表单(Form)、报表(Report)、宏(Macro)和模块(Module)。

这六个对象高度概括了数据库应用开发中的实际需要,比如库结构的建立、数据录入、查询的制作、结果的输出等。

在日常技术支持活动中经常要接触到的主要是表和查询,本章主要从表的索引和查询两方面讲解与技术支持有关的一些Access的重要操作。

1.2索引

在Access中,索引(Index)是作为表(Table)的一个对象进行处理的,因为在表中所有的数据都是按照一定的顺序存储在表中,有时为了提高程序检索表中数据的速度,需要把数据按照某一顺序重新排列,这就引进了索引的概念。

为了给大家一个感性的认识,我们可以先看下图

索引示意图

从上面的索引示意图中可以看出:

一个索引对象,包含有索引名称、字段名称、排列次序、是否主索引、是否唯一索引、是否忽略空值等六个属性,各属性含义如下:

索引名称:

索引的标识,在索引集中具有唯一性。

字段名称:

指明索引中包含表中的那些字段。

排列次序:

指明表是按照何种方式(升序或降序)进行排序检索。

主索引:

指明数据表是否实施唯一性检索并且是否为主关键字。

唯一索引:

指明数据表是否实施唯一性检索。

忽略空值:

在索引表中是否允许包含空值。

其中,主索引和唯一索引都对数据表实施唯一性检索,两者的区别在于是否为主索引。

每个表都有自己的索引集,这个索引集中可以包含一个或多个索引,也可以没有索引,不过在一般情况下都应有索引,因为它可以加快查询、检索及排序的速度。

对于某个索引,它的索引字段可以有一个,也可以有多个。

这就是下面的单一字段索引和多字段索引。

单一字段索引:

在一个索引中,只包含一个字段的索引就是单一字段索引。

如:

索引示意图中的PrimaryKey索引就是一个单一字段索引,它只包含了EmployeeID(职员编号)字段。

多字段索引:

在一个索引中,同时包含多个字段的索引称为多字段索引。

根据索引中多个字段出现的先后顺序,分别称做第一字段、第二字段…第n字段。

如:

索引示意图中的SecondKey索引就是一个包含两个字段的多字段索引。

在多字段索引中,检索的结果的排列的顺序为第一字段、第二字段…第n字段的次序依次排列下去。

StudentID

StudentName

Chinese

Math

English

001

Li

90

80

90

002

Cheng

90

90

80

003

Wu

80

80

80

004

Zhao

100

100

100

学生分数统计表

假如,现在要对上图所示的成绩单建立索引,名称为Achievement,包含字段Chinese(升序、不唯一)和Math(升序、不唯一),检索时先比较第一索引字段(Chinese),当其值相同时,比较第二索引字段(Math),则可按以下设置方式建立该索引:

图2-2学生分数表索引

建立Achievement索引后,Access将Chinese和Math两字段的数据(记录)进行排序,结果如下图所示:

StudentID

StudentName

Chinese

Math

English

003

Wu

80

80

80

001

Li

90

80

90

002

Cheng

90

90

80

004

Zhao

100

100

100

排序后的学生分数统计表

那么,如何在Access中新建索引呢?

具体讲有两种方式:

1.直接在设计表结构时,对字段的索引属性选择“有”。

2.设计表结构时选[视图|索引],然后在出现的索引对话框中添加索引名和索引的其它属性。

采用这两种方式新建索引时,在表中没有数据时是非常简单的,但当表中有数据,并且有些数据会直接影响创建索引时,处理就较为复杂。

如以下两种情况,在建立索引时就可能遇到:

CASE1:

金蝶帐套的权限表GLRight主索引丢失,在重建主索引时Access提示错误信息:

“IndexorPrimaryKeycan’tcontainaNullvalue”。

CASE2:

金蝶帐套的权限表GLRight主索引丢失,在重建主索引时Access提示错误信息:

“TheChangeyourequestedtothetablewerenotsuccessfulbecausetheywouldcreateduplicatevaluesintheindex,primarykeyorrelationship,changetheindexinthefieldorfieldsthatcontainduplicatedata,removetheindexorredefinetheindexorpermitduplicateentriesandtryagain”。

在CASE1中,明显提示索引或主关键字不能包含空值。

因此,解决的方法是首先排除含有空值的记录,然后再添加索引。

具体请参考1.3查询部分。

在CASE2中,Access提示添加索引或关系时有重复的的记录值出现。

解决的方法是利用查询排除含有重复值的记录。

具体请参考1.3查询部分。

在金蝶帐套中,有时会出现“错误号:

XXX非法的索引名”,然后系统就无条件退出。

出现这种情况,一般是因为帐套数据库中相关表的索引丢失,导致系统发生致命性错误,又无法更正或忽略,系统只有选择退出。

遇到这种情况时,若错误信息中指明发生在某个表是最好不过的了,这时可打开数据库,添加丢失的索引即可解决;否则,就只有凭经验进行判断处理了。

不过,用《金蝶帐套维护工具》检测这类问题是很方便的,而且工具中能把检测到的丢失索引自动添加到相应的表中。

1.3查询

在Access中,查询(Query)就是在数据库的表对象中根据给定的条件,筛选出有用的动态数据集。

例如,可以在金蝶帐套数据库GLBal表中要求Access为你查询检索出第12期银行存款科目的期末余额。

Access的查询可以是对一个表的信息的简单检索,也可以是对若干个相互关联的表的信息的复杂检索。

在建立了一个查询后,你可以运行它,Access可在数据表格中返回和显示你所需的记录集。

这一记录集叫做动态集(Dynaset)。

动态集在数据表格中显示,可同时显示多条记录,并带有记录行和字段列。

你可以象操纵数据表格一样浏动态集。

动态集像一个表,但并不是表。

动态集是动态的记录集,它并没有被存储到数据库中,也就是说,当关闭查询时,查询动态集将消失。

当运行查询时,Access又重新生成动态集。

需要注意的是,所谓保存查询是仅仅保存了查询的结构——表、字段、分类排序、记录限制条件、查询类型等,动态集并不被保存。

当把数据存储在数据库中,你可能需要用不同的方法浏览、使用数据库中存储的数据。

根据预期的方式用不同的方法观察数据通称为执行特定查询。

查询是伴随着数据库系统的发展而产生的灵活、强大的工具之一。

Access提供的查询即体现了这一特点。

在技术支持活动中,为了检测某个问题或修改某些数据时,就经常要用到查询。

在Access中查询可分为选择查询(SELECTQuery)和动作查询(ACTIONQuery),在动作查询中又可分为生成表查询(Make-TableQuery)、更新查询(UpdateQuery)、追加查询(AppendQuery)、删除查询(DeleteQuery)。

选择何种查询要视乎具体的需要。

下面就针对各种查询的特点逐一讲解:

1.3.1选择查询

1.3.1.1建立单表查询

在数据库窗口界面,用鼠标选中查询(Query),然后选择[新建]就会出现添加表与查询窗口,选择需要的对象(TableorQuery)添加到查询的表区域

图3-1创建查询示范

(1)

如上图所示,在字段栏内选择需要的字段、选择总计的方式、排序的方式、是否显示该字段,准则是什么等等需要设置的内容,就可以作出一查询。

作一简单的查询是相当容易的,很多情况下,设置可以直接使用缺省值。

例如,总计栏不显示,准则栏不添或者是只是简单的数字、字符串或日期。

有了这些基础的知识之后再作些复杂的查询,也不会很难。

现解释一下出现在查询网格中的各个参数和在“总计栏”中常用的几个关键字的作用。

Field(字段)可在此行设置字段名或字段表达式,用于限定查询的作用字段。

Sort(排序)可在此行规定有关字段是否排序以及排序方式。

Show(显示)可在此行确定有关字段是否在数据表格中显示。

它以复选框形式出现,当选中(出现“╳”或“√”)时,相关字段在数据表格中显示。

Criteria(准则)可在此行输入查询的限定条件。

Or(或)可在此行输入逻辑或限定条件。

Or行以多行形式出现,相邻的Or行以及Criteria行存在逻辑或的关系。

在总计栏中出现的几个关键字分别是:

Groupby(分组)对指定字段按值进行分组,使结果集中的记录该字段值是唯一的。

Sum(求和)对各组求指定字段的总和。

Avg(求平均值)对各组求指定字段的平均值。

Min(求最小值)对各组求指定字段的最小值。

Max(求最大值)对各组求指定字段的最大值。

Count(记数)对各组求指定字段的记录数(经常与GroupBy配合使用,排除重复记录)。

First(首条记录)对各组求指定字段最头一次出现的记录。

Last(末条记录)对各组求指定字段最后一次出现的记录。

Where(条件)字段选定的条件。

Expression(表达式)用在Field行中建立计算的表达式。

在创建一个新的查询中,经常用到总计栏中的选项,往往利用它们与不同字段的组合,来生成我们所需要的结果。

请看下例:

现要在凭证表(GLVch)中,统计出第9期科目代码在”101”到”205”之间的借贷发生额,并且只统计到一级科目,假设生成的查询名为NewQuery。

图3-2创建查询示范图

(2)

在这个例子中,对FPeriod、FID(Left([FAcctID],3)的别名)这两字段使用Groupby,使查询结果中这两字段不会出现重复值,看似简单的查询,却已经运用了判断、表达式、求和等一系列的手段。

在这个例子中,整个查询是按以下步骤实现的:

1.输入查询条件:

对会计期间进行限制。

2.建立表达式:

对会计科目进行限制,使其限定在“101”至“205”之间。

3.为字段重命名:

对会计科目字段进行重命名,在此例中为FID。

4.汇总查询:

对借贷方发生额的求和汇总。

下面就可着手解决1.2索引所提到的两个问题:

CASE1:

建立索引时,Access提示索引字段中含有空值,导致建立索引失败。

SOLUTION1:

建立如下图所示的查询,查出FbinUser字段值为空的记录,然后作适当的处理(删除该记录或把FbinUser的值填上),再加索引。

CASE1查询

CASE2:

Access提示索引字段含有重复的记录。

SOLUTON2:

建立统计查询,统计出关键字段中有重复值的记录,使用GroupBy与Count的配合,可统计出重复记录的情况,如下图所示。

若记录数很多,可作一生成表查询,再配合Last或First使重复记录保持唯一。

所有这些条件的配合使用,最终的目的是要得到我们所需要的结果。

以上讲的都是单表查询,下面再看看多表查询的使用情况。

CASE2查询

1.3.1.2建立多表查询

单表查询所用的方法同样适合于对多表的查询。

Access对多表的查询同对单表的查询一样方便。

Access通过查询,可以从多表中筛选有用的字段和记录构成一个完整单一的动态集。

建立多表查询时,非常关键的一点是要确定好表与表之间的联接关系(Join),如果表间的联接关系不正确,得到的结果会与我们预期的大不相同。

如果事先表间已建立了关系(Relationship),则建立多表查询时Access会自动在这些表之间建立起联接。

如果还没有为表建立联接,可以立即着手去做。

方法很简单,只要将两个表中拥有的共同字段从一个表拖动放到另一个表的相同字段上来,Access即为表之间建立联接。

联接建立后,可以看到表间存在一条或多条连线。

这些连线有时带有箭头,有时又不带箭头,有时方向朝左,有时方向朝右,分别代表着不同的含义。

假如我们要查出ICVch表中有哪几条记录含有科目表中不存在的科目,为达到目的,可以建立了一个多表查询,包含GLAcct和ICVch两个表,输出字段为GLAcct的FAcctID字段和ICVch的FAcctID字段,先不限制任何条件。

在查询设计窗口选择完GLAcct和ICVch两表后,表间自动出现一连线。

双击此连线,可以看到如下画面:

关联属性图

Access共提供了三种选择,不同的选择得到的结果是各不一样的。

选择

(1)查询结果第一列和第二列将包含那些GLAcct和ICVch同时存在的科目代码。

选择

(2)查询结果第一列将包含GLAcct表中所有的科目,第二列将包含那些FAcctID字段值存在于GLAcct中的ICVch的记录,对那些不存在于GLAcct中的ICVch记录用Null表示。

选择(3)查询结果第一列将包含ICVch表中所有的记录,第二列将包含那些在ICVch表中FAcctID字段出现过的GLAcct表的记录,对那些在ICVch表中出现,但在GLAcct表中不存在的记录,用Null表示。

从以上描述可以看出,选择不同,得到的结果大不相同,同时也可发现在这个多表查询中若不任何限制条件,很难达到我们的目的。

在本例中,可选择第3种联接类型,再加上限制条件GLAcct.FAcctID=Null来实现我们的目的。

多表查询的灵活度较高,通过适当的练习,相信大家亦能很快掌握。

1.3.1.3建立交叉表查询

Access支持一种特殊类型的汇总查询——交叉表查询(CrosstabQuery)。

交叉表查询生成的动态集看起来像一个二维电子表格,在表格中生成汇总计算值。

为了建立一个交叉表查询,应按如下步骤操作:

1.打开选择查询设计窗口,并向表/查询输入窗口增加指定的表或查询。

2.单击工具条上的交叉表查询按钮或从Query菜单中选择Crosstab命令。

3.单击工具条上的汇总按钮或从View菜单中选择Totals命令。

4.指定一个字段或字段表达式作为行标题(至少指定一个字段作为行标题),行标题字段Total行选择Groupby选项,Crosstab行选择RowHeading选项。

5.指定一个字段或字段表达式作为列标题(至少指定一个字段作为列标题),列标题字段Total行选择Groupby选项,Crosstab字段选择ColumnHeading选项。

6.指定一个字段或表达式作为汇总计算值。

该字段的Total行选择相应的汇总计算选项(例如Avg),Crosstab行选择Value选项。

正确完成上述操作过程,Access就建立了一个交叉表查询。

在金蝶数据库,有几个工资模块的查询都用到交叉表查询,例如PASummary和PADataTextCross。

1.3.2更新查询

更新查询是将指定表中的指定记录进行更新修改。

这种对表中记录进行更新修改的工作可以在数据表格中由人逐条进行更新修改,但是这种方法不仅消耗时间,效率低,而且也容易出现错误,特别是大数据量时更是如此。

由人逐条地对大批记录进行相同的更新修改也是枯燥乏味的。

要解决这个问题,正确的方法是使用更新查询。

下面以一个例子说明如何作更新查询。

例:

应用户要求,现在要把凭证库(GLVch)所有摘要(FExp)为“应收款”的修改为“应收帐款”。

执行步骤如下:

1.首先建立相应的选择查询:

查出摘要为“应收款”的记录

2.从查询工具条中,选择更新查询

3.在摘要字段下,在“更新到”栏填入“应收帐款”

更新查询建立完毕,运行或保存刚建立的查询即可。

1.3.3追加查询

追加查询可以把当前正在使用的表的记录添加到另一个表中去。

准备增加的记录的表必须是已经存在的表。

这个表可以是当前的数据库,也可以是另一个数据库的。

追加查询对于从表中筛选记录添加到另一个表中是很有用的。

在使用追加查询时,必须遵循以下规则:

1.如果准备追加记录的表有主关键字字段,追加的记录不能有空值或重复主关键字值,否则,Access不能追加该记录。

2.如果追加记录到另一个数据库,必须指明数据库的路径和名字。

3.如果在数据网格的Field(字段)行中使用星号(*),不能再在Field行中使用同一表的单个字段。

Access将不添加该记录,认为是试图两次增加同一字段内容到同一记录。

4.添加有Counter数据类型字段的记录时,如果被添加的表也有该字段和记录内容,就不要包括该Counter字段。

如果要增加到新表并且准备让新表有基于该准则的新Counter号,也不要使用Counter字段。

如果遵循上述规则,就可正确执行追加查询,使它成为一个有用的工具。

1.3.4删除查询

删除查询可以把当前正在使用的表的有关记录删除掉,在所有查询中,删除查询是最危险的,因为删除查询永久地和不可逆地从表中删除记录。

删除查询可以从单个表中删除记录,也可以从多个相互关联的表中删除记录。

然而,要从多个表中删除相关记录,必须做到以下几点:

1.在Relationships(关系)建立窗口中定义相关表之间的关系。

2.在Relationships对话框中选中EnforceReferentialIntegrity(强制应用完整性)选项。

3.在Relationships对话框中选中CascadeDeleteRelatedRecords(级联删除)选项。

在金蝶数据库中做删除查询时一定要非常小心,因为表与表之间存在很多关系。

例如,删除固定资产卡片(FACard)会将固定资产余额记录(FABal)一并删除。

1.3.5生成表查询

在选择查询的基础上从查询工具条中选择查询的种类,切换到生成表查询就会弹出一生成表对话框,输入要生成的表(可以是其它数据库的表),按确定就建好了一个生成表查询。

很多情况下,生成表查询是为了减少程序设计的复杂度,在一段程序中生成表,然后供另一段程序直接使用,在这种情况下生成表只是中间的过度。

通过生成表查询建立新表时,新表的字段从查询的基础表中继承数据类型和字段大小,然而不传送其它字段或表属性。

如果需要定义主关键字或其它属性,可在表设计窗口中进行。

需要注意的是,若产生的新表与已有数据库中的表重名时会把已有的表覆盖,因此,作生成表查询必须小心。

1.4常见问题

1.4.1Access初步

1.4.1.1为什么Access97安装时没有创建工作组管理员图标?

和Access2.0不同,Access97不自动在Windows桌面上创建工作组管理员图标。

这是微软为了从Access内部管理工作组安全性考虑而有意设置的。

但是如果你习惯于使用图标,仍然可以在Windows95任务栏上的程序菜单中增加一项。

作法如下:

1.单击Windows任务栏上的“开始”,然后选择“设置”中的“任务栏”。

2.在“任务栏属性”中,选择“开始菜单程序”选项卡。

3.单击“高级”按钮。

4.在打开的Windows资源管理器中,双击“Programs”文件夹。

5.从“文件”菜单中选择“新建”\“快捷方式”。

6.在创建快捷方式对话框中,单击“浏览”。

7.找到文件“Wrkgadm.exe”。

此文件位于你的Windows目录中的“System”文件夹中。

8.选择文件Wrkgadm.exe并单击“打开”。

9.单击“下一步”。

10.给你创建的快捷方式取一个名字,如“Access工作组管理员”,然后单击“完成”。

11.关闭资源管理器窗口和任务栏属性对话框。

12.单击“开始”,选择“程序”,你会看到工作组管理员图标已经加到程序菜单中了。

1.4.1.2为什么用Access不能直接打开金蝶帐套数据库?

金蝶帐套数据库是一个具有口令保护的Access数据库,用Access打开之前必须做如下工作:

1.若是Access2.0,在Windows的程序菜单中选择“Access工作组管理员”,若是Access97,可按前一个问题的方法建立工作组管理员菜单项。

2.在“工作组管理员”对话框选择“联接…”

3.在“工作组信息文件”对话框的“数据库”文本框中输入金蝶系统数据库System.mda的完整路径,例如c:

\Kdwin\system.mda。

4.单击“确定”,再单击“退出”。

5.运行Access,用金蝶系统管理员的用户名及口令登录即可打开金蝶数据库。

1.4.1.3能否把Access97与Access2.0同时安装在一台机器上?

只要把各个版本的Access安装在不同的目录中,就可以在同一台机器上运行Access的多个版本。

如果你想在一台安装了Access旧版本的计算机上运行Access97,并且保留旧版本,应注意把Access97安装在一个单独的目录下。

同时,应该知道Windows已经把所有数据库文件(扩展名为.MDB)关联到Access旧版本上,而不管它是由哪个版本的Access创建的。

因此,在Windows资源管理器上双击一个.MDB文件将会启动旧版本的Access。

如果你想改变与.MDB文件关联的Access版本,需要改变Windows文件的关联类型,详细做法可以从Windows帮助的索引中查找“关联”项。

1.4.1.4在我保存数据库的目录中有两个文件,哪一个是数据库?

以.MDB为扩展名(在金蝶软件中则为.AIS)的文件是数据库文件。

和它文件名相同,扩展名为.LDB的文件是Access用来保存数据库表中的记录锁定信息的文件。

当你在网络上使用数据库时,Access使用.LDB文件中的数据确定哪一个记录被锁定以及哪一个用户锁定了记录。

这使Access能防止文件竞争错误及数据库被多用户所破坏。

在多用户环境中,每一个打开数据库的用户都有一个.LDB文件条目。

当你打开数据库时,将自动创建.LDB文件。

如果你在单机上使用Access,在你打开数据库时,不可能有别人也在使用,这时可把这个文件删除。

1.4.1.5在网络中可以有多少个用户同时打开一个数据库?

在一个网络中,至多可以有255个用户同时打开一个数据库。

但是,随着用户数的增多,Access的性能将显著地下降。

1.4.1.6为什么Access数据库会损坏?

如何修复?

Access数据库有可能因偶然原因而损坏,如电源电压不稳、没有正确关闭应用程序、病毒、由硬件(如网线、网卡)引起的网络通讯不稳定、网络服务中断等。

Word文档及其它Windows文件也可能因此而损坏。

任何影响计算机稳定工作的非正常因素都有可能破坏数据库文件。

如果Access因某种原因而非正常退出,也可能导致数据库损坏。

因为数据库文件可能遭到破坏,Access提供了一个修复工具作为程序的一部分。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1