返回列表 回复 发帖
补充内容


补充一:怎样在数据表中输入图片、声音和影像
  要想在数据表中插入图片、声音和影像,首先要在设计视图中把需要输入这些数据的字段的数据类型定义为“OLE对象”,然后在数据表视图中用鼠标右键单击该字段下的一个记录,在弹出的菜单中选择“插入对象”,这时出现“插入对象”窗口,在窗口中选择要插入的对象的类型或要插入的对象的文件名,要插入图片就保持“新建”选栏被选,并在对象类型这个列表栏中选择一种图片格式;如果要插入声音就在这个列表栏中选择“声音”;如果要插入影像就在这个列表框中选择“影像剪辑”,然后单击确定按钮。如果要在这个值中加入特定的一个图片、声音或影像文件,就需要在“插入对象”窗口中选择“由文件创建”,并通过单击“浏览”按钮,在浏览窗口中找到需要放置的文件,双击将它选定。单击“确定”按钮退出“插入对象”窗口,这时表的相应位置就出现了要插入的文件的文件名,双击文件名,就可以看到或听到相应的文件了。
补充二:在表中建立超级链接
  在表中想插入超级链接,需要将相应字段的字段类型定义为超级链接,然后在表的数据表视图中单击要建立超级链接的值将它选定,再单击鼠标右键,在弹出的菜单中选择“超级链接”,并在弹出的更下一级菜单中选择单击“编辑超级链接”选项。这时弹出“插入超级链接”的窗口,在“请输入文件名称和WEB页名称”下面的方框中输入想要链接的文件名称和WEB页的名称。单击“确定”按钮就可以在表中建立一个超级链接了。这时用鼠标单击超级链接的名称系统就会调出INTERNET浏览器访问WEB页面了。
补充三:怎样设置数据表格形式
  Access的数据表可以有很多种格式,用鼠标单击“格式”菜单中的“数据表...”命令,弹出“设置数据表格式”对话框,在这个对话框中就可以设置数据表的格式,像“单元格效果”、“网格线显示方法”、“背景颜色”、“网格线颜色”、“边框及线条样式”五个主要选项,通过这些选项所做的修改可以在“示例”栏预览结果。单击“确定”按钮就可以看到Access数据表的格式已经改变了。
补充四:使用查找按钮。
  在使用数据库的时候有时需要查看或修改一些表中的数据,如果表很大,一行行地找相应的数据项会非常麻烦。这时就要求有一个查找工具能帮助我们快速地找到需要的数据内容位置,在Access2000中,“查找”命令可以帮助实现这个功能。在一个表中,当我们需要查找某个值时,用鼠标单击工具栏上的“望远镜”按钮,弹出一个对话框,在对话框中先要选择需要查找的数据值的“查找范围”,然后选择匹配的内容,之后再输入相应的查找“内容”,输入完以后单击“查找下一个”按钮,这样就可以在整个表中找出第一个相应的数据值,如果这个数据值不是所需要的,再单击“查找下一个”按钮,反复执行就可以找到所需要的数据值的位置。单击“取消”按钮,就可以对找到的值进行操作了。在单击“查找”按钮后,会看到弹出的对话框中还有一个“替换”选项卡,切换到这一页,就可以在数据表中查找某个数据并用其他的数据替换它。在替换文本框中输入的就是替换的内容,当只要替换一个数据值时,只要单击对话框上的“替换”按钮就可以了,如果要将具有这个数据值的所有记录都替换,则要单击“全部替换”按钮,这样所有的数据值都被新数据值替换了。


提问题时注意版块要与你所要问的问题相对应,
怎样使用表设计器来创建表?


  我们已经知道怎样用表向导来设计表了,这一课学习怎样使用表设计器来建立表。 表设计器是Access中设计表的工具,用表向导建立表的时候,它自动定义了各种字段的属性,而在表的设计器中则可以自己设计生成各种各样的表,并能对表中任何字段的属性进行设置,比如将表中的某个字段定义为数字类型而不是文本类型,那么这个字段就只能输入数字,而不能输入其他类型的数据。现在我们用表设计器来建立一个表。
  要使用表设计器来创建一个表,首先要打开表设计器。在数据库窗口中,将鼠标移动到“创建方法和已有对象列表”上双击“使用设计器创建表”选项,弹出“表1:表”对话框。

  对话框分为两个部分,上半部分是表设计器,下半部分用来定义表中字段的属性。表的设计器其实就是一个数据表,只是在这个数据表中只有“字段名称”、“数据类型”和“说明”三列,当我们要建立一个表的时候,只要在设计器“字段名称”列中输入表中需要字段的名称,并在“数据类型”列中定义那些字段的“数据类型”就可以了。设计器中的“说明”列中可以让表的制作人对那些字段进行说明,以便以后修改表时能知道当时为什么设计这些字段。
  现在我们就用表设计器来建立一个记录订单信息的表。首先要知道在“订单”表中需要包括的信息,在这个表中一定要有“订单号”、“订货单位”、“货物名称”、“订货数量”、“经手人”、“订货日期”等信息,在表设计器的“字段名称”列中按顺序输入这些字段的名称,表就初步建好了。
  现在切换到“数据表”视图来看看用表设计器建立的表。单击工具栏上“视图”按钮,这时在屏幕上会出现一个提示框,提示“必须先保存表”,并询问“是否立即保存表”,由于我们还没有保存过这个表,所以单击“是”按钮来保存这个表,这时弹出另一个“另存为”对话框,在“表名称”文本框中输入“订单信息表”,单击“确定”按钮,将这个表保存为“订单信息表”。又弹出一个对话框说“没有添加主键”,因为每个表中都至少应该有一个主键,而我们还没有设定把哪个字段作为这个表的主键。如果选择“是”按钮,Access就会在刚才建立的表上添加一个字段,并把这个字段作为表的主键,我们单击“否”按钮,不让Access添加主键。现在看到的这个表就是我们刚才利用表设计器生成的表了。

  在表中,这种由表格构成的窗口叫做表的“数据表视图”,是表最直观的一种表现方法。不管用什么方法生成的表最终都要切换到这个视图下才能进行数据的输入,而一个表建立得是否合理也会在这个视图中反映出来。但要为表设置主键,为字段设置数据类型和属性,就必须切换回“设计视图”才能实现相应的操作。




怎样为表设置主键?


  单击工具栏上的“视图”按钮,切换回表的设计视图,开始为表设置主键。第五课的课后补充里曾经说过主键是什么。
  设置表的主键非常简单,比如要将“订单信息表”中的“订单号”字段作为表的“主键”,只要单击“订单号”这一行中的任何位置,将这行设为当前行,然后单击工具栏上的“主键”按钮,按钮会凹陷进去,在“订单号”一行最左面的方格中出现了一个“钥匙”符号,表示“订单号”这一字段成为表的主键了。

  用这种方法设置了新的主键以后,原来的主键就会消失。如果要将表中的多个字段设置成主键,要先把鼠标移动到表最左边的方格内,当鼠标光标变成一个“向右箭头”形状时,单击鼠标左键将这行选定,然后按住键盘上的“CTRL”键,选定其它要设置成主键的行,都选好以后,单击工具栏上的“主键”按钮,选中的字段都设成“主键”了。如果想取消主键,先选中字段,然后单击工具栏上的“主键”按钮,这时字段前面的“钥匙”图标就消失了,表示这个字段不再是“主键”了。




怎样为表中的字段设置数据类型?


  设置完主键,我们再看看字段的数据类型,在Access中有“文本”、“备注”、“数字”、“日期/时间”、“货币”、“自动编号”、“是/否”、“OLE对象”、“超级链接”、“查阅向导”十种数据类型。各种数据类型中输入的是不同的数据。
  在计算机中,数据有很多种类型,它们有着不同的用处,比如文本类型和备注类型,虽然都是用来存储文本,但是“文本”类型存储的字符数最多只能255个,而“备注”类型却可以存储64000个字符,如选氨缸ⅰ崩嘈突怀伞拔谋尽崩嘈停蛭薹ū4嫦氯康氖菪畔ⅲ选拔谋尽崩嘈偷氖荽娣旁凇氨缸ⅰ崩嘈椭校质票卦斐珊艽蟮睦朔选T贏ccess中,不同的数据类型分配不同大小的数据空间,而每种数据类型的大小却是固定的。所以当我们在一个字段中输入一个值时,这个字段的大小不会随里面值的内容而变化。如果输入一个字符“A”,使用“文本”类型,这个值空出来的字符空间不会很多,但如果使用“备注”类型,则会空出63999个字符空间,这些空间不能再输入其它值的内容,就白白浪费了。
  不同类型的数据在使用时也有差别,比如两个值“1234”和“2345”,在“数字”类型中是数字,在“文本”类型中就是文本了。如果将这两个值相加求和,那么用数字类型计算出来的结果是“3579”,而用文本类型相加的结果则是将两个数据联在一起成为“12342345”,可见它们的差别还是很大的。
  现在我们已经知道了正确设置数据类型的重要性,就开始为“订单信息表”中的各个字段设置数据类型吧。先定义“订单号”字段的数据类型,用鼠标单击订单号的“数据类型”项,方格内出现一个下拉箭头,单击它,在弹出的下拉列表框中选定“自动编号”项,就把这个字段的数据类型定为“自动编号”类型了。“自动编号”类型的数据是从1开始不重复的整数,这样可以保证在表中的每个记录都可以区分开来。所以一个表的主键常常建立在拥有这种数据类型的字段上。“订货单位”、“货物名称”和“经手人”定义为“文本”类型,“货物单价”和“订货金额”定义为“货币”类型,“订货数量”应是“数字”类型,“订货日期”则是“日期/时间”类型。关于不同的类型各自的特点,我们将在课后补充中进行比较详细的讲解。现在来看看修改过“数据类型”后的表,表示钱数的地方都用标准的货币符号引出来了,而且输入数字的地方也变的一目了然了。
提问题时注意版块要与你所要问的问题相对应,
怎样设置字段的属性(一)?


  设置完字段的“数据类型”,现在来设置字段的“属性”。表设计器的下半部分都是用来设置表中字段的“字段属性”的,字段属性包括有“字段大小”、“格式”、“输入法模式”等,设置它们会对表中的数值产生影响。
  先设置“订货单位”文本字段的各种属性,默认的“字段大小”为“50”,表示这个字段中最多可以输入50个字符。通常只需要十几个文字就足够表达一个“订货单位”的名称了,所以可将字段大小定为“25”。只要选中字段大小文本框,然后修改里面的数值就可以了。

  字段大小是字段的属性之一。现在设置另一个属性:输入时的“格式”。在Access 2000中,有几种文本格式符号,使用这些符号可以将表中的数据按照一定的格式进行处理。具体格式符号及其用法将在课后补充中介绍。在“格式”文本框中输入“-”则“订货单位”的名称会向右对齐。如果在“格式”输入“!”符号,名称就会自动向左对齐。
  “输入法模式”属性是个选择性的属性,它共有三个选项“随意”、“输入法开启”、“输入法关闭”,选中“输入法开启”项,当光标移动到这个字段内的时候,屏幕上就会自动弹出首选的中文输入法,而选择“输入法关闭”时,则只能在这个字段内输入英文和数字。不同的字段采用不同的“输入法模式”可以减少启动或关闭中文输入法的次数。而选择“随意”就可以启动和关闭中文输入法。
  下面的“输入掩码”可以控制输入到字段中的值,比如输入值的哪几位才能输入数字,什么地方必须输入大写字母等。如果要把某个字段输入的值作为密码,不让别的人看到时,就要在输入时将数据的每个字符显示成星号。这些都需要由设置字段的“输入掩码”属性来实现。设置字段的输入掩码,只要单击“输入掩码”文本框右面的“生成”按钮,就会出现“输入掩码向导”对话框,对话框上有一个列表框,比如要让这个文本字段的输入值以密码的方式输入,则单击列表框中的“密码”选项,然后单击“完成”按钮。
  下面的“标题”属性一般情况下都不设,让它自动取这个字段的字段名,这样当在窗体上用到这个字段的时候就会把字段名作为它的标题来显示。“默认值”属性只要在它的文本框中输入某段文字,那么这个字段的值在没有重新输入之前,就会以所输入的文字作为该字段中的值。




怎样设置字段的属性(二)?


  “有效性规则”是为了检查字段中的值是否有效,可以在该字段的“有效性规则”框中输入一个表达式,Access会判断输入的值是否满足这个表达式,如果满足才能输入。输入违反该规则的字段值就无法将值输入到表中,并会提示我们不能输入与有效性规则相悖的数值。当然我们也可以单击这个属性输入文本框右面的“生成”按钮激活“表达式生成器”来生成这些表达式。而“有效性文本”这个属性中所填写的文字则是用来当用户输入错误的值时给用户的提示信息。

  在Access中“表达式生成器”就是用来生成表达式的一段特殊的程序模块。通过它可以很方便地编写数据库中的各种表达式。它的用法在以后的课程中会有比较详细的讲解。在填写一个表的时候,常常会遇到一些必须填写的重要字段,像这个表中的“订货数量”字段就必须填写,不然我们就无法知道这份订单究竟订了多少货,所以要将这个字段的“必填字段”属性设为“是”。而对于那些要求得不那么严格的数据就可以设定对应字段的“必填字段”属性为“否”。它下面的“允许空字符串”属性问我们是否让这个字段里存在“零长度字符串”,通常将它设置为“否”。
  索引属性是表中一个重要的属性,当我们建立一个很大的数据库的时候,就会发现通过查询在表中检索一个数据信息很慢。通过分析发现,如果当我们要在一个表中的查询“订货单位”字段内的某个值时,会从整个表的开头一直查到末尾,如果能将表中额值进行排序,那同样的查询工作对“订货单位”字段检索的记录数就可以少很多,速度也自然会变得更快,所以很多表都需要建立索引,而“索引”字段就是为了定义是否将这个字段定义为表中的索引字段。“无”是不把这个字段作为索引,“有(有重复)”和“有(无重复)这两个选项都表示这个字段已经是表中的一个索引了,而“有(有重复)”允许在表的这个字段中存在同样的值,“有(无重复)”字段则表示在这个字段中绝对禁止相同的值。对于“订单信息表”,由于一个订货单位会多次订货,也就要签订多份订单,所以当我们要把这个字段作为表的索引时就需要将它的“索引”属性设为“有(有重复)”了。
  最后一个是“UNICODE”属性,“UNICODE”是微软公司为了使一个产品在不同的国家各种语言情况下都能正常运行而编写的一种文字代码,使用这种16位代码时只需要一个UNICODE就可以存储一个中文文字或英文字符。这样虽然很方便,但实际上在计算机中本来只要8位就可以存储一个英文字符,所以使用这种“UNICODE”方式实际上是比较浪费空间的。为了解决这个问题微软又想出了一个方法就是对数字或英文字符进行“UNICODE压缩”,所以对字段的这个属性我们一般都选择“有”,这样可以节省很多空间。字段属性栏右面的提示文字可以随时提供一些帮助。
  结束语:现在你也能使用表的设计器来设计或修改一个表了吧。那就证明你对表的操作已经上了一个台阶了。但是你知不知道表与表之间的数据究竟是怎样联系的?如果你还回答不上,那就到下一课去看一看。




补充内容


补充一:各种数据类型的含义和使用方法
  在表的设计视图中,每一个字段都有设计类型,Access允许九种数据类型:文本、备注、数值、日期/时间、货币、自动编号、是/否、OLE对象、超级链接、查询向导。
 文本:这种类型允许最大255个字符或数字,Access默认的大小是50个字符,而且系统只保存输入到字段中的字符,而不保存文本字段中未用位置上的空字符。可以设置“字段大小”属性控制可输入的最大字符长度。
 备注:这种类型用来保存长度较长的文本及数字,它允许字段能够存储长达64000个字符的内容。但Access不能对备注字段进行排序或索引,却可以对文本字段进行排序和索引。在备注字段中虽然可以搜索文本,但却不如在有索引的文本字段中搜索得快。
 数字:这种字段类型可以用来存储进行算术计算的数字数据,用户还可以设置“字段大小”属性定义一个特定的数字类型,任何指定为数字数据类型的字型可以设置成“字节”、“整数”、“长整数”、“单精度数”、“双精度数”、“同步复制ID”、“小数”五种类型。在Access中通常默认为“双精度数”。
日期/时间:这种类型是用来存储日期、时间或日期时间一起的,每个日期/时间字段需要8个字节来存储空间。
 货币:这种类型是数字数据类型的特殊类型,等价于具有双精度属性的数字字段类型。向货币字段输入数据时,不必键入人民币符号和千位处的逗号,Access会自动显示人民币符号和逗号,并添加两位小数到货币字段。当小数部分多于两位时,Access会对数据进行四舍五入。精确度为小数点左方15位数及右方4位数。
 自动编号:这种类型较为特殊,每次向表格添加新记录时,Access会自动插入唯一顺序或者随机编号,即在自动编号字段中指定某一数值。自动编号一旦被指定,就会永久地与记录连接。如果删除了表格中含有自动编号字段的一个记录后,Access并不会为表格自动编号字段重新编号。当添加某一记录时,Access不再使用已被删除的自动编号字段的数值,而是重新按递增的规律重新赋值。
 是/否:这种字段是针对于某一字段中只包含两个不同的可选值而设立的字段,通过是/否数据类型的格式特性,用户可以对是/否字段进行选择。
 OLE对象:这个字段是指字段允许单独地“链接”或“嵌入”OLE对象。添加数据到OLE对象字段时,可以链接或嵌入Access表中的OLE对象是指在其他使用OLE协议程序创建的对象,例如WORD文档、EXCEL电子表格、图像、声音或其他二进制数据。OLE对象字段最大可为1GB,它主要受磁盘空间限制。
 超级链接:这个字段主要是用来保存超级链接的,包含作为超级链接地址的文本或以文本形式存储的字符与数字的组合。当单击一个超级链接时,WEB浏览器或Access将根据超级链接地址到达指定的目标。超级链接最多可包含三部分:一是在字段或控件中显示的文本;二是到文件或页面的路径;三是在文件或页面中的地址。在这个字段或控件中插入超级链接地址最简单的方法就是在“插入”菜单中单击“超级链接”命令。
 查阅向导:这个字段类型为用户提供了一个建立字段内容的列表,可以在列表中选择所列内容作为添入字段的内容。
补充二:在表中建立索引
  在一个比较小的数据库中,检索数据是比较快捷的。但是当数据库表中的数据越来越多后,直接搜索数据的工作变得非常繁重,速度也就变得非常慢,这个时候就需要建立索引来帮助Access更有效地搜索数据。要在一个表中建立索引,首先用设计视图打开一个表,用鼠标选中一个字段,然后将鼠标移动到这个字段的属性框,然后单击“索引”属性框,框的右面就出现向下箭头,单击它并在弹出的下拉框中选择相应的选项,“无”表示此字段建立索引,“有(无重复)”表示字段有索引,但是此索引不能重复,而“有(无重复)”也表示此字段建立索引,但是却有可能重复。这些就是建立单字段索引的过程。如果经常在搜索大型表时提供多重准则,则需要建立几个字段索引,要在表中建立多字段索引,就要将鼠标移动到工具栏上的“索引”按钮上,单击这个按钮,弹出“索引”对话框,在它上面的表格中,最左面的是要建立的索引名,用来输入索引的名称,中间的是字段名,表示将要建立索引的相应字段的字段名,最右面的是排序次序,这里输入字段中各个记录的排序方式。
补充三:怎样用大写字母显示英文文本字段
  用设计器打开一个表,用鼠标单击选中字段,然后移动鼠标到该字段的属性处,单击“格式”属性右面的文本框,当文本框中出现闪烁的“|”符号时,输入“〉”符号,再切换回数据表格式,这时就会发现原来大小写混排的字段中所有的字母都变成大写的了。如果在“格式”栏中输入“〈”符号,则这个字段的所有字母将以小写排列。


提问题时注意版块要与你所要问的问题相对应,
定义表之间的关系





“关系”简介


  在Access数据库中,不同表中的数据之间都存在一种关系,这种关系将数据库里各张表中的每条数据记录都和数据库中唯一的主题相联系,使得对一个数据的操作都成为数据库的整体操作,正所谓“牵一发而动全身”。
  就拿上几课建立的表来说吧,“客户信息表”中的“公司名称”和“订单信息表”中的“订货单位”所包含的值有很多是相同的。因为签了订单的“订货单位”肯定已经是公司的客户了,这些客户的名称也被记载在“客户信息表”的“公司名称”字段中。当我们已知一个客户的名称时,既可以通过“客户信息表”知道它的“客户信息”,也可以通过“订单信息表”了解它所签订的“订单信息”,所以说“公司名称”作为纽带将“客户资料表”和“订单信息表”中的相应字段信息连接在了一起,为了把数据库中表之间的这种数据关系体现出来,Access提供一种建立表与表之间“关系”的方法。用这种方法建立了关系的数据只需要通过一个主题就可以调出来使用,非常方便。
  当我们在“客户信息表”和“订单信息表”中建立这样的关系以后,只需要看看“客户信息表”,在不增加表内容的情况下,就可以看到所有客户的信息及其所有“订单”的情况,使这些数据一目了然。







表之间的三种关系


  在建立表之间的关系前,我们还是要提一下“关系”的三种类型“一对一”、“一对多”和“多对多”。在Access中,可以在两个表之间直接建立“一对一”和“一对多”关系,而“多对多”关系则要通过“一对多”关系来实现。我们分别来说说这三种“关系”。
  首先是“一对一”关系,比如下面的两个表:某学校学生月副食补助:

和某学校学生月助学金:

  我们降这两个表中的数据进行汇总生成新的表:“某学校学生月实发金额汇总”:

  由于姓名字段可能会出现重复的情况,所以只有通过不可能出现重复的值的字段“学号”,才能将这两个表唯一地联系起来,保证“副食补贴”和“助学金”不至于错误地发放,这样“月副食补助表”中的一个学号就只对应“月助学金”中的一个学号,绝对不会弄错。这样两个表的关系很明显就是“一对一”了。
  下面来看看“一对多”关系。在“客户信息表”和“订单信息表”中,“订单信息表”中的“订货单位”字段和“客户信息表”中的“公司名称”字段中的值都是一样的。其实只有那些订货了的单位才是公司的客户,所以这两个表之间是靠客户公司的名字联系在一起的。但是每个客户都可以订很多份订单。所以在“客户信息表”中的一个“公司名称”就能对应“订单信息表”中的几份“订单”。这样的关系就是“一对多”。
  最后使“多对多”关系,我们知道,书店中有很多书,同时一种书也可以在很多书店里找到。这时“书”和“书店”的关系就是“多对多”关系了。




怎样在表之间建立关系


  现在我们就开始在表之间建立“关系”,首先单击“工具”菜单下的“关系”命令,弹出“关系”对话框,上面还有一个“显示表”对话框如下图,通过“显示表”对话框可以把需要建立关系的“表”或“查询”加到“关系”对话框中去。

  将两个表“客户信息表”和“订单信息表”都选中,单击“添加”按钮把它们都添加到“关系”对话框上,单击“关闭”按钮把“显示表”对话框关闭。以后再需要打开它时,只要在“关系”对话框上单击鼠标右键,选择“显示表”命令就可以了。

  在“关系”对话框中只有“客户信息表”和“订单信息表”的字段列表。怎么建立关系呢?其实表都是由字段构成的,表之间的关系也由字段来联系。让不同表中的两个字段建立联系以后,表中的其他字段自然也就可以通过这两个字段之间的关系联系在一起了。也就是说在“客户信息表”中的“公司名称”和“订单信息表”中的“订货单位”两个字段之间建立关系就可以了。先在“客户信息表”字段列表中选中“公司名称”项,然后按住鼠标左键并拖动鼠标到“订单信息表”中的“订货单位”项上,松开鼠标左键,这时在屏幕上出现“编辑关系”对话框。

  这个对话框可以帮助我们编辑所建立的关系,通过左面的列表框可以改变建立关系的两个字段的来源。可以单击“新建...”按钮创建新的关系,或者单击“联接类型”为联接选择一种联接类型。单击“联接类型”按钮,在弹出的新对话框中选择第三项,然后单击“确定”按钮就可以了。回到“编辑关系”对话框后单击“创建”按钮。

  现在在两个列表框间就出现了一条“折线”,将“订货公司”和“公司名称”两个选项联接在一起。关闭“关系”对话框,并保存对“关系”布局的修改。在表间建立关系就是这样的。
提问题时注意版块要与你所要问的问题相对应,
“关系”与“子数据表”


  打开“客户信息表”,你会发现这个表中增加了一些新的表,它们是“客户信息表”的子表,也就是“订单信息表”。

  在这种“一对多”的情况下,完全可以通过“客户信息表”中的“公司名称”信息将这两个表的内容都串起来。在主表中的每一个记录下面都会带着一个甚至几个子表中的“订单”记录。具有“一对一”关系的两个表之间互为对方的“子表”。
  通常在建立表之间的关系以后,Access会自动在主表中插入子表。但这些子表一开始都是不显示出来的。在Access中,让子表显示出来叫做“展开”子数据表,让子表隐藏叫做将子数据表“折叠”。展开的时候方便查阅订单信息,而折叠起来以后有可以比较方便的管理“客户信息表”。
  要“展开”子数据表,只要用鼠标单击主表第一个字段前面一格,对应记录的子记录就“展开”了,并且格中的小方框内“加号”变成了“减号”。如果再单击一次,就可以把这一格的子记录“折叠”起来了,小方框内的“减号”也变回“加号”。如果主表很大的话,这样一个一个地“展开”和“折叠”子数据表就显得太麻烦了,Access为我们提供了一种操作方式,它可以一下子“展开”或“折叠”当前数据表的所有子数据表。打开一个带有子数据表的表时,在“格式”菜单“子数据表”项的子菜单中,有三个命令“全部展开”、“全部折叠”和“删除”,“全部展开”命令可以将主表中的所有子数据表都“展开”,“全部折叠”命令可以将主表中的所有子数据表都“折叠”起来。不需要在主表中显示子数据表的这种方式来反映两个表之间的“关系”时,就可以使用“删除”命令来把这种用子数据表显示的方法删除。但这时两个表的“关系”并没有被删除。如果想恢复在主表上显示“子数据表”的形式,可以先打开主表,比如“客户信息表”,单击“插入”菜单下的“子数据表”命令,弹出“插入子数据表”对话框如下图:

  在列表框中选取“表”----“订单信息表”,然后在“链接子字段”组合框中选取“订货单位”字段,并在“链接主字段”组合框中选取“公司名称”字段,单击“确定”按钮就可以在主数据表“客户信息表”中重新插入子数据表“订单信息表”了。必须要注意的是在任何一个数据表中插入子数据表都需要在两个表之间建立“关系”,如果这两个表的“主链接字段”和“子链接字段”之间还没有建立联结的话,在单击“确定”按钮插入“子数据表”的时候就会询问是否要在这两个表之间建立相应的“关系”,只有建立“关系”以后,才能完成“插入子数据表”过程。用这样的方式在表之间建立“关系”不像在“关系”对话框中建立的“关系”那样直观。所以我们提倡在关系对话框中建立好表与表之间的“关系”,由Access自动地创建子数据表。
  结束语:这一课通过“客户信息表”和“订单信息表”将表与表之间的“关系”展现在我们面前,如果你已经掌握了表的操作,那就开始看下一课;如果你还没有完全掌握“表”,就将这四课再好好看一看,因为表是数据库中最重要的一个部分了。




实施参照完整性


  在我们建立表之间的关系时,窗口上有一个复选框“实施参照完整性”,单击它之后,“级联更新相关字段”和“级联删除相关字段”两个复选框就可以用了。
  如果选定“级联更新相关字段”复选框,则当更新父行(一对一、一对多关系中“左”表中的相关行)时,Access就会自动更新子行(一对一、一对多关系中的“右”表中的相关行),选定“级联删除相关字段”后,当删除父行时,子行也会跟着被删除。而且当选择“实施参照完整性”后,在原来折线的两端会出现“1”或“OO”符号,在一对一关系中“1”符号在折线靠近两个表端都会出现,而当一对多关系时“OO”符号则会出现在关系中的右表对应折线的一端上。
  设置了实施参照完整性就可以使我们在表中修改了一个记录的时候,不会影响到查询的操作。特别是在有很多表,而且各个表之间都有关系联接时,“实施参照完整性”会带来更多的方便。


提问题时注意版块要与你所要问的问题相对应,
建立简单的查询





查询与表


  现在我们已经会建立表了,还能在表中输入各种数据,包括图片和声音数据。 下面我们就开始来学习Access中另一个非常重要的内容…… 查询!
  用“查找”按钮来找数据说的是查找,并不是查询。在回答“查询究竟是什么?”这个问题之前,我们首先要知道,并不需要将所有可能用到的数据都罗列在表上,即使是一些需要计算的值,也统统先算好以后才填到表中,仍然像在纸上使用表格及其里面的数据那样,完全没有觉得Access数据库中的表和纸上的表格有什么区别。这是很多刚刚接触Access数据库的人通常会出现的情况。其实在Access数据库中的表并不是一个百宝箱,不需要将所有的数据都保存在一张表中。不同的数据可以分门别类地保存在不同的表中,就像在“客户信息表”中保存和客户资料有关的信息,而在“订单信息表”中保存和订单内容相关的信息。
  在使用表存储数据的时候我们都有侧重点,通过它们的名字就可以看出这个表是用来做什么的,这样很容易就可以知道哪些表中存储有什么数据内容。很少有人会把表的名字起成“表一”、“表二”的。如果有很多表的话,这样根本就不知道这些表存储了什么内容。所以我们在建立表的时候,首先想的就是要把同一类的数据放在一个表中,然后给这个表取个一目了然的名字,这样管理起来会方便得多。但是另一方面,我们在实际工作中使用数据库中的数据时,并不是简单地使用这个表或那个表中的数据,而常常是将有“关系”的很多表中的数据一起调出使用,有时还要把这些数据进行一定的计算以后才能使用。如果再建立一个新表,把要用到的数据拷贝到新表中,并把需要计算的数据都计算好,再填入新表中,就显得太麻烦了,用“查询”对象可以很轻松地解决这个问题,它同样也会生成一个数据表视图,看起来就像新建的“表”对象的数据表视图一样。“查询”的字段来自很多互相之间有“关系”的表,这些字段组合成一个新的数据表视图,但它并不存储任何的数据。当我们改变“表”中的数据时,“查询”中的数据也会发生改变。计算的工作也可以交给它来自动地完成,完全将用户从繁重的体力劳动中解脱出来,充分体现了计算机数据库的优越性。让我们在数据库中建立一个“查询”,看看“查询”究竟有什么用,该怎么用。







为建立查询做准备


  我们现在用的“查询”是“选择查询”,这种查询很好学,而且用得也很普遍,很多数据库查询功能都可以用它来实现。顾名思义,“选择查询”就是从一个或多个有关系的表中将满足要求的数据提取出来,并把这些数据显示在新的查询数据表中。而其他的方法,像“交叉查询”、“操作查询”和“参数查询”等,都是“选择查询”的扩展,课后的补充内容中会专门讲到。
  这次建立查询我们不用向导,而是直接用“查询设计视图”来建立新的查询。直接使用查询设计视图建立查询可以帮助你理解数据库中表之间的关系,让你看到要查询的字段之间是如何联系的。这些对建立一个优秀的数据库非常有帮助。其实查询向导的使用和表向导基本一样,也非常简单。
  现在我们建立一个“订单”查询,建立这个查询就是为了将每份订单中的各项信息都显示出来,包括“订单号”、“订货公司”、“货品名称”、“货物单价”、“订货数量”、“订货金额”、“经办人”和“订货时间”这些字段。
  首先要在Access中打开“客户订单数据库”,然后单击“对象”列表中的“查询”项,并在创建方法列表中单击“在设计视图中创建查询”项。

  因为下面的操作都是在对“查询”这个对象进行操作,所以要将当前的对象切换到“查询”对象上。在第二课和第四课中讲过,执行任何操作都必须先选择这个操作所针对的对象。




选择需要查询的表


  单击“在设计视图中创建查询”后,屏幕上出现“查询”窗口,它的上面还有一个“显示表”对话框。在上一课“建立表之间的关系”中曾经提到过“显示表”对话框。单击“显示表”对话框上的“两者都有”选项,在列表框中选择需要的表或查询。“表”选项卡中只列出了所有的表,“查询”选项卡中只列出了所有的查询,而选择“两者都有”就可以把数据库中所有“表”和“查询”对象都显示出来,这样有助于我们从选择的表或查询中选取新建查询的字段。
  单击所需要的表或查询,然后单击对话框上的“添加”按钮,这个表的字段列表就会出现在查询窗口中。将“客户订单数据库”中的“订单信息表”和“产品信息表”都添加到查询窗口中。添加完提供原始数据的表后,就可以把“显示表”窗口关闭,回到“查询窗口”中准备建立“查询”了。





认识查询设计视图


  查询窗口可以分为两大部分,窗口的上面是“表/查询显示窗口”,下面是“示例查询设计窗口”,“表/查询显示窗口”显示查询所用到的数据来源,包括表、查询。窗口中的每个表或查询都列出了它们的所有字段,这样一目了然,方便了我们选择查询字段。下方的示例查询窗口则是用来显示查询中所用到的查询字段和查询准则。
  现在Access窗口中的菜单、工具栏都发生了变化,在Access数据库窗口中每单击一种对象都会将原来的菜单做一些相应的调整,以便在使用这种对象时能更加方便,操作更加快捷。创建查询后的菜单和工具栏就比较适合进行“查询”操作。首先是添加了“查询”菜单,它包含了一些查询操作专用的命令,比如“执行”、“显示表”、“查询类型”、“合计”等。同样这些特殊的命令也表现在工具栏上,新增加的按钮和菜单命令就能实现这些查询专用的功能。

  现在“表/查询显示窗口”中有我们添加的几个表,下面的“示例查询窗口”中有很多的网格,看起来很像表格,它们是查询设计表格,需要制定的查询字段就要放在查询设计表格里。表格左面的文字提示我们每行都是做什么用的,像第一行左面有“字段”字样,那这行就要输入需要查询字段的字段名。
提问题时注意版块要与你所要问的问题相对应,
为查询添加和删除目标字段


  现在我们就要往查询设计表格中添加字段了。所添加的字段叫做“目标字段”,向查询表格中添加目标字段有两种方法:
  第一种方法可以在表格中选择一个空白的列,单击第一行对应的一格,格子的右边出现一个带下箭头的按钮,单击这个按钮出现下拉框,在下拉框中就可以选择相应的目标字段了,选中表“订单信息表”中的“订单号”字段。
  如果在几个表中都有同样的字段,要怎么区分呢?当我们在查询表格的第一格的下拉框中寻找对应目标字段时,在字段前面都有字段所在的表格/查询名,像“订单信息表.产品名称”字段就表示它是“订单信息表”中的“产品名称”字段。而不是别的表或查询中的“产品名称”字段。这样就不会混淆了。
  第二种方法更简单,如果要添加“订单信息表”中的“订货单位”字段,就先选中“订单信息表”这个表,然后在它的列表框中找到需要的字段“订货单位”,将鼠标移动到列表框中标有这个字段的选项上,按住鼠标左键,这时鼠标光标变成一个长方块,拖动鼠标将长方块拖到下方查询表格中的一个空白列,放开鼠标左键,这样就完成了将“订单信息表”中的“订货单位”字段添加到查询表格中了。在“表/查询”窗口中如果有很多对象时,这种方法就比第一种方法显得方便多了。
  如果要删除一个目标字段,将鼠标移动到要删除的目标字段所在列的选择条上,光标会变成一个向下的箭头,单击鼠标左键将这一列都选中,敲击键盘上的“DELETE”键,选中的目标字段就被删除了。







查询的数据表视图


  我们已经把需要的字段都添加到查询中了,现在来看看建立的“查询”的结果。
  上一课中讲过“表”可以在设计视图和数据表视图中切换,“查询”同样也可以在设计视图和数据表视图中切换。将表切换到数据表视图,就可以看到“查询”结果了。在Access中,在几个视图之间切换是非常简单的。只要将鼠标移动到工具栏左上角的第一个工具按钮处,就会弹出一个“视图”提示标签,单击它就可以从查询设计视图切换到数据表视图。  查询的数据表视图看起来很像上一课讲的表,但它们之间还是有很多差别的。
  在查询数据表中无法加入或删除列,而且不能修改查询字段的字段名。这是因为由查询所生成的数据值并不是真正存在的值,而是动态地从表对象中调来的,是表中数据的一个镜像。查询只是告诉Access需要什么样的数据,而Access就会从表中查出这些数据的值,并将它们反映到查询数据表中来罢了,也就是说这些值只是查询的结果。我们刚才选择目标字段就是告诉Access需要哪些表、哪些字段,而Access会把字段中的数据列成一个表反馈给我们。当然在查询中我们还可以运用各种表达式来对表中的数据进行运算生成新的查询字段。
  在查询的数据表中虽然不能插入列,但是可以移动列,移动的方法和上一课中在表中移动列的方法是相同的,而且在查询的数据表中也可以改变列宽和行高,还可以隐藏和冻结列。







汇总数据


  现在的数据表还没算出每份订单所涉及的“销售总金额”,我们可以在查询中使用表达式来计算。先在查询的设计窗口中添加一个目标字段,就是查询数据表中最后的“销售总金额”字段,因为这个字段不在任何一个表中,所以必须手动将它输入到查询表格的一个空列中。
  在列的字段行首先输入“销售金额”,然后输入“:”(注意必须输入英文模式下的“:”),接着输入“[产品信息表]![产品单价]*[订单信息表]![订货数量]”,现在再切换到查询的数据表视图看看结果,查询新增了“销售总金额”列,并且自动算出了每份订单中涉及的金额。

  我们在写计算表达式的时候必须注意它的格式,首先是字段名称,接着是“:”然后是表达式的右边部分,在用到本查询中的目标字段时,必须将字段名用方括号括起来,在字段名前面加上“[所用表的表名]!”符号来表示它是哪个表中的字段。刚才说的都是一些简单的计算,如果要对数据进行一些复杂的计算,要计算十几个值,都这么写会很麻烦,而且如果要取某个值开方后的值,就写不出了。为了完成更多更复杂的计算,Access提供了一个专用的“表达式生成器”,它的具体使用方法将在下一课里讲。




保存新建的查询


  该做的差不多都做完了,我们把新建的查询保存起来吧。在主菜单上单击“文件”菜单中的“保存”命令,如果是第一次存储这个查询,在屏幕上就会弹出一个对话框,询问如何命名这个查询:

  先将原来标签栏中Access默认的名字删去,然后将自己取的名字添进去,单击“确定”按钮就可以了。如果在完成的时候忘了保存直接退出了,不用担心,在Access中,为了防止出现没有保存而直接退出的事情发生,会在退出查询窗口的时候自动弹出一个对话框,提示你是否保存刚才所做的工作,这时应该单击“是”按钮保存查询。如果不想保存刚才的工作,就单击“否”按钮。
  本课结束语:这一课讲了怎样利用查询设计视图建立一个“订单”的查询,怎样将表添加到查询窗口中,怎样将表中的字段添加为查询的目标字段,怎样在目标字段中进行汇总计算。如果你掌握了这些内容,但在使用中还有一些问题的话,可以看看本课课后的补充内容,会使你使用“查询”时能力更强。




补充内容


补充一:利用简单表查询向导建立查询
  首先用鼠标单击数据库窗口的新建按钮,屏幕上弹出“新建查询”窗口,在列表框中选择“简单查询向导”,然后单击“确定”按钮。在出现的简单查询向导窗口上,选择新建查询中需要用到的字段名称。由于这些字段可能在不同的表或查询中,先要在表/查询下拉框的下拉菜单中选择需要的表或查询,这时在可用字段列表框中的字段就是所选择的表或查询中的全部可用字段了。用鼠标单击选中需要的“字段”,再单击“向左移”或“向右移”按钮就可以将这个选项作为新建查询中的一个选定的字段了。将所有需要的字段都选定以后,单击窗口上的下一步按钮,在下一个窗口中为新建的查询取名,并单击“完成”按钮,就可以创建一个新的查询了。
补充二:利用交叉表查询向导建立查询
  Access支持一种特殊类型的总计查询,叫做交叉表查询。利用该查询,你可以在类似电子表格的格式中查看计算值。要创建一个交叉表查询,首先在数据库窗口中单击“新建”按钮,并在弹出的窗口中单击选中“交叉表查询向导”项,然后单击“确定”按钮。在出现的“交叉表查询向导”窗口中,第一步要求选择含有交叉表的表或查询的名称。第二步要选择在交叉表中哪些字段的值用来做行标题。最多只能选择三个字段。第三步要选择在交叉表中哪些字段的值用来做列标题。第四步要选择在表中的交叉点计算出什么数值。第五步中需要为新建的查询取名,并单击“完成”按钮。这样一个交叉表查询就完成了。可以看到,交叉表查询功能是用来计算汇总值的。
补充三:使用查找重复项查询向导建立查询
  在Access中,可能需要对数据表中某些具有相同的值的记录进行检索、分类。利用系统提供的“查找重复查询向导”可以快速地完成一个“查找重复项”查询。首先在数据库窗口中单击“查询”选项卡,然后单击“新建”按钮,在“新建查询”对话框中,单击“查找重复查询向导”,单击“确定”按钮。“查找重复项查询向导”的第一步与前面的两种查询向导一样,根据需要选取查询的对象,第二步选取设为重复值的字段,系统会按照选取的字段自动对数据表中的记录进行检索,按照设定的字段分类检索。第三步选择另外查询的字段。其实,在此处选择的查询内容是用户想了解的信息,即有哪些记录具有相同的内容。在最后一个向导对话框中输入新建查询的标题,或者接受系统提供的默认值,并且选择生成查询之后的操作,即可以选择在“数据表”视图中打开查询查看信息或在“设计”视图中修改查询设计。单击“完成”按钮结束查询的建立。
补充四:使用查找不匹配项查询向导建立查询
  在Access中,可能需要对数据表中的记录进行检索,查看它们是否与其他记录相关,是否真正具有实际意义。利用“查找不匹配查询向导”可以快速地完成。首先在数据库窗口单击“新建”按钮。在“新建查询”对话框中,单击“查找不匹配查询向导”,单击“确定”按钮。向导的第一步要用户选取查询的两个对象,即记录相关的两个数据表。选定之后,单击“下一步”按钮。在下一步中,选定前面选取的两个表间匹配的字段。系统会自动根据匹配的字段进行检索,查看不匹配的记录。第三步选取能够代表查询记录的字段。可以从对话框左侧的可用字段列表向右侧窗口中选取用户需要的字段,选取没有特定的要求。在最后一个向导对话框中输入新建查询的标题,或者接受系统提供的默认值,并且选择生成查询之后的操作,单击“完成”按钮结束查询的建立。
补充五:建立SQL查询
  SQL查询是用户使用SQL语句直接创建的一种查询。实际上,Access所有的查询都可以认为是一个SQL查询,因为Access查询就是以SQL语句为基础来实现查询的功能。不过在建立Access查询时并不是所有的查询都可以在系统所提供的查询“设计”视图中进行创建。由于查询只能通过SQL语句来实现,SQL查询可以分为以下四类:联合查询、传递查询、数据定义查询和子查询。要想在Access中建立SQL查询,首先要建立一个新的查询,然后单击“视图”菜单,选择“SQL视图”命令,这样在屏幕上就出现了一个文本框,用来书写SQL语句。将用到的SQL语句输入完毕后,再单击“视图”菜单,选择“数据表视图”命令,就可以看到刚才SQL语句所起的作用了。
补充六:创建参数查询
  参数查询可以在运行查询的过程中自动修改查询的规则,用户在执行参数查询时会显示一个输入对话框以提示用户输入信息,这种查询叫做参数查询。当需要对某个字段进行参数查询时,首先切换到这个查询的设计视图,然后在作为参数使用的字段下的“准则”单元格中,在方括号内键入相应的提示文本。此查询运行时,Access将显示该提示。输入完毕后,将查询切换到数据表视图,这时在屏幕中就会出现一个对话框,提问你需要限制哪个参数。此时输入一定的条件就可以看到查出的满足条件的记录。Access 的参数查询是建立在选择查询或交叉查询的基础之上的,是在运行选择查询或交叉查询之前,为用户提供了一个设置准则的参数对话框,可以很方便地更改查询的限制或对象。当然不仅仅可以建立单个参数的查询,还可以同时为其他字段建立准则提示的查询。
补充七:设置查询属性
  要设置查询的属性,首先打开一个查询,然后点击工具栏上的“属性”按钮,在弹出的查询属性列表框中修改查询的属性。在各种查询属性中,很多都容易理解,现在介绍几种不常用但却很有用的属性:
运行权限:将这个属性设置为“所有者的”。设置了此属性后,所有用户都具有查询所有者的查看和执行查询权限,这样查询所有者才能保存更改的查询,只有查询所有者才能更改查询的所有权。
记录集类型:记录集类型包括动态集、动态集(不一致的更新)、快照三个类型。选择动态集,那么查询的数据表中的值可以修改,而且会动态的改动相应的计算值,而快照状态时则不能修改数据表中的数据。


提问题时注意版块要与你所要问的问题相对应,
为查询添加选择准则


  这个查询已经建立起来了,但如果只想看看北京地区的客户订单情况,应当该怎么办吗?其实只需要在这个查询中再添加一个字段,然后再为这个字段添加一条准则就可以解决这个问题,这个查询的数据表中就只有北京地区的客户订单情况了。
  添加的字段和准则到底是怎么回事呢?其实在这个查询中添加的字段是“客户信息表”中的“城市”字段,因为这个表和“订单信息表”有关系。所以当我们在查询中添加“城市”字段后,这个字段就会自动将签单公司所在城市的名称信息反映出来。有了这个前提我们只要再添加一个限制条件,也就是让“城市”字段中的值等于“北京”。这时再看查询的数据表视图就会发现,只有满足了这些条件的记录才会显示出来。
  往查询里添加选择准则,有两个问题应该考虑,
  首先是为哪个字段添加“准则”,其次就是要在这个字段添加什么样的“准则”。 就拿刚才的这个例子来说吧,很明显就是为“城市”字段添加“准则”,而添加的准则就是限制“城市”字段中的值只能等于“北京”。限定了这两个条件,就可以很容易地实现任何一种选择准则了。
  如何在查询中添加准则呢?我们就将刚才的例子做一遍吧。首先我们要通过“显示表”对话框添加“客户信息表”到查询窗口中,然后选取这个表中的“城市”字段作为查询中的一个字段,由于我们不想让这个字段中的值显示在数据表中,就取消此字段的可见性,将它的“显示”属性定为“否”。添加完这个字段就可以添加条件规则了,现在我们就可以在“城市”字段的“规则”属性中写上“="北京"”,这样就可以了,如下图所示。

  但有时候,当我们需要对查询记录中的几种信息同时进行限制的时候,就需要将所有这些限制规则一一添加到需要的字段上,这样只有完全满足限制条件的那些记录才能显示出来。现在我就在“订货数量”和“总金额”上都添加一个规则,让“订货数量”大于“200”,“总金额”小于“100000”,这个查询的数据表,只有同时满足这三个条件限制的记录才被选了出来,如下图所示。

  除此之外,一个字段还可以有多条限制“规则”。每条“规则”之间可以用逻辑符号来连接。比如要为“总金额”字段添加“150000”的规则,只要在“规则”栏内输入“150000”就可以了。




使用表达式生成器


  在我们制定规则的时候,有时会用到很多函数或表中的字段名。直接来写的话会很麻烦。
  为了解决这种问题,ACCESS提供了一个名叫“表达式生成器”的工具,在这个工具中,给我们提供了数据库中所有的“表”或“查询”中“字段”名称、窗体、报表中的各种控件,还有很多函数、常量及操作符和通用表达式。将它们进行合理搭配,就可以书写任何一种表达式,十分方便。
  现在我们就打开“表达式生成器”,在查询的规则行中单击鼠标右键,在弹出的菜单中可以看到一个“生成器...”的命令,单击它以后就会弹出一个“表达式生成器”。

  在这个“表达式生成器”中,上方的这个方框用来输入“表达式”,是“表达式编辑框”,下面的一排“按钮”是操作符的快捷按钮,因为在表达式中,操作符出现的频率是最高的,我们单击任何一个按钮,“表达式编辑框”中就会出现相应的操作符 。在这排按钮的下面是三个列表框,最左面的这个框中是最基本的选项,选中这些选项以后,第二个列表框中就会出现次一级的列表。再选中第二个列表中的某一项,第三个列表框中就会出现更下一级的列表,在第三个列表中单击某一项,就可以将这一项加到表达式编辑器中了。
  举个例子,现在我要在表达式编辑器中输入“[客户信息表]![公司名称]”,可以在编辑器中直接输入这行字,也可以先单击第一个列表框上的“表”项,这时就会弹出三个表“客户信息表”、“订单信息表”和“产品信息表”。选择“客户信息表”就会发现在第二个列表框中出现了这个表中的所有字段列表。再选择“公司名称”项,并双击第三个列表框中的“值”,这时在表达式编辑框中就出现了“[客户信息表]![公司名称]”。 结果如下图所示。

  可以在ACCESS中任何需要表达式的位置上使用,只要单击鼠标右键,然后在弹出的菜单上单击“生成器...”命令,就可以打开它编辑表达式了。




达式生成器中的几种常用符号


  表达式生成器上的这些快捷按钮都有什么用途呢?
  “+”、“-”、“*”、“/”这几个符号就代表数学运算中的“加”、“减”、“乘”、“除”四种运算符号。使用“&”符号可以使两个表达式强制连接在一起,比如: "数据库"&"使用指南" 将返回: "数据库使用指南",也就是将这两个字符串连接在一起,左面的字符串在前面,右面的字符串在后面。 如下图所示。

  “=”、“>”、“”这四个符号分别表示“等于”、“大于”、“小于”、“不等于”,它们都是用来判断某个条件是否为满足,例如: “ =34 ” 表示当某个值等于34时才算满足这个条件。 “"北京" ” 表示当某个值不等于字符串“北京”时才算满足了条件。
  “And”、“Or”、“Not”这三个逻辑运算符是用来连接上面的这些条件表达式的。比如: “ >100 And 100 Or 100 ” 这个表达式则表示只要这个值不大于100 ,这个条件就算满足了。
  还有一个“Like ”, 这个符号又怎么用呢?这个符号常常用在对一个字符型的值进行逻辑判断,是否这个值满足某种格式类型。所以通常“Like”并不单独使用,常常还要跟一些别的符号: “?”表示任何单一字符; “*”表示零个或多个字符; “#”表示任何一个数字; “[字符列表]”表示字符列表中的任何单一字符; “[!字符列表]”表示不在字符列表中的任何单一字符。 我们一起看几个例子, Like "中国?" 则字符串“中国人”、“中国字”都满足这个条件; Like "中国*" 则字符串“中国”、“中国人”、“中国人民银行”这些都满足这个条件; Like "表#" 则字符串“表1”、“表2”都满足这个条件; Like "[北京,上海,广州]" 则只有字符串“北京”、“上海”、“广州”可以满足条件; Like "[!北京,上海,广州]" 则只有字符串“北京”、“上海”、“广州”不能满足条件。
提问题时注意版块要与你所要问的问题相对应,
补充一


Asc(字符串表达式)
  代表字符串中首字母的字符代码,返回一个 Integer,。 但是 这个字符串表达式不能没有,不然会出错。
  例如: Asc("A") 返回 65 Asc("a") 返回 97 Asc("Apple") 返回 65。
Chr(字符码)
  使用 Chr 函数来返回指定所代表的字符。 0 到 31 之间的数字与标准的非打印 ASCII 代码相同。字符码 的正常范围为 0 – 255。 ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。
  例子: Chr(65) 返回 A Chr(97) 返回 a。







补充二


DAvg (数值数据字段, 表或查询)
  可用于计算特定记录集中(一个域)一组数的平均值;
  例如: DAvg(产品单价,产品信息表) 返回“产品信息表”中的“产品单价”的平均值。
DCount(数值数据字段, 表或查询)
  可用于确定特定记录集中的记录数(一个域);
  例如: DCount (产品单价,产品信息表) 返回“产品信息表”中的“产品单价”中的记录数。
DLookup(数值数据字段, 表或查询)
  用于从指定记录集(一个域)获取特定字段的值;
  例如: DLookup (产品单价,产品信息表) 返回“产品信息表”中的“产品单价”中的值。
DMin(数值数据字段, 表或查询); DMax(数值数据字段, 表或查询);
  DMin 和 DMax 函数用于确定指定记录集(一个域) 中的最小值和最大值;
  例如:DMin(产品单价,产品信息表) 返回“产品信息表”中的“产品单价”中的最小值。
DSum(数值数据字段, 表或查询)
  用于计算指定记录集(一个域)中的一组值的总和;   
  例如:DMin(产品单价,产品信息表) 返回“产品信息表”中的“产品单价”中的和。
DVar(数值数据字段, 表或查询) DVarP(数值数据字段, 表或查询)
  用于估算特定记录集(一个域)中一组值的方差, DVarp用于计算总体的方差,而 DVar 函数用于计算总体抽样的方差; 如果引用的记录少于两条,DVar 和 DVarP 函数将返回Null,表示不能计算方差。
数值数据字段
  可以是用来标识表或查询中字段的字符串表达式,也可以是执行在域合计函数中计算字段的表达式。在 expr 中可以使用表中字段的名称、窗体上的控件、常量或函数。函数可以是内置的,也可以是用户自定义的,但不能是另一个域合计函数或 SQL 合计函数。 表或查询:用来标识组成域的记录集的字符串表达式。 







补充三


DDB(cost, salvage, life, period[, factor])
  指定一笔资产在一特定期间内的折旧,可使用双下落收复平衡方法或其它指定的方法进行计算。 cost 必要。Double 指定资产的初始成本。 salvage 必要。Double.指定使用年限结束时的资产价值。 life 必要。 Double 指定资产可用的可用年限。 period 必要。Double 指定计算资产折旧所用的那一期间。 factor 可选。Variant 指定收复平衡下落时的速度。如果省略的话,缺省值为2(双下落方法)。
FV(rate, nper, pmt[, pv[, type]])
  返回一个 Double,指定未来的定期定额支付且利率固定的年金。
  rate 必要。Double,指定每一期的利率。例如,如果有一笔贷款年百分率 (APR) 为百分之十且按月付款的汽车贷款,则利率为 0.1/12 或 0.0083。
  nper 必要。Integer,指定一笔年金的付款总期限。例如,如果对一笔为期四年的汽车贷款选择按月付款方式,则贷款期限共有 4 * 12(或 48)个付款期。
  pmt 必要。Double 指定每一期的付款金额。付款金额通常包含本金和利息,而且此付款金额在年金的有效期间是不会改变的。
  pv 可选。Variant,指定未来一系列付款(或一次付清款项)的现值。例如,当借钱买一辆汽车时,向贷方所借的金额为未来每月付款给贷方的现值。如果省略的话,缺省值为 0。 type 可选。Variant,指定贷款到期时间。如果贷款在贷款周期结束时到期,请使用 0。如果贷款在周期开始时到期,请使用 1。如果省略的话,缺省值为 0。
  说明:年金是一段时间内一系列固定现金支付。年金可以是贷款(如房屋抵押贷款),也可以是一笔投资(如按月储蓄计划)。 在支付期间,必须用相同的单位来计算 rate 和 nper 参数。
  例如,如果 rate 用月份来计算,则 nper 也必须用月份来计算。 对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如红利支票)。




补充四


IPmt(rate, per, nper, pv[, fv[, type]])
  返回一个 Double,指定在一段时间内对定期定额支付且利率固定的年金所支付的利息值。
  rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分率 (APR) 为百分之十且按月付款的汽车贷款,则每一期的利率为 0.1/12,或 0.0083。
  per 必要。Double 指定在 nper 间范围 1 中的付款周期。
  nper 必要。Double 指定一笔年金的付款总期数。例如,如果在一笔为期四年的汽车贷款中选择按月付款方式,则贷款共有 4 * 12(或 48)个付款期。
  pv 必要。Double,指定未来一系列付款或收款的现值。例如,当借钱买汽车时,向贷方所借金额为将来每月偿付给贷方款项的现值。
  fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存。例如,贷款的未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
  type 可选。Variant 指定贷款到期时间。如果贷款在贷款周期结束时到期,请使用 0。如果贷款在周期开始时到期,请使用 1。如果省略的话,缺省值为 0。
  说明:年金是指在一段时间内的一系列固定现金支付。年金可以是贷款(如房屋抵押贷款),也可以是一笔投资(如按月储蓄计划)。在支付期间必须用相同的单位计算 rate 和 nper 参数。例如,如果 rate 用月份计算,则 nper 也必须用月份计算。 对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如红利支票)。   




补充五


IRR(values()[, guess])
  返回一个 Double,指定一系列周期性现金流(支出或收入)的内部利率。
  values() 必要。Double 数组,指定现金流值。此数组必须至少含有一个负值(支付)和一个正值(收入)。
  Guess 可选。Variant,指定 IRR 返回的估算值。如果省略,guess 为 0.1 (10%)。
  说明:返回的内部利率是在正常的时间间隔内,一笔含有支出及收入的投资得到的利率。 IRR 函数使用数组中数值的顺序来解释支付和收入的顺序。要确保支付和收入的顺序正确,每一时期的现金流不必像年金那样固定不变。 IRR 是利用叠代进行计算。先从 guess 的值开始,IRR 反复循环进行计算,直到精确度达到 0.00001%。如果经过 20 次反复叠代测试还不能得到结果,则 IRR 计算失败。
MIRR(values(), finance_rate, reinvest_rate)
  返回一个 Double,指定一系列修改过的周期性现金流(支出或收入)的内部利率。
  values() 必要。Double 数组,指定现金流值。此数组至少要包含一个负值(支付)和一个正值(收入)。
  finance_rate 必要。Double 指定财务成本上的支付利率。
  reinvest_rate 必要。Double 指定由现金再投资所得利率。
  说明:修改过的返回内部利率是指在用不同的利率计算支出和收入时的内部利率。MIRR 函数既考虑投资成本 (finance_rate),也考虑现金再投资所得利率 (reinvest_rate)。 finance_rate 和 reinvest_rate 参数是用十进制数值表示的百分比。例如,0.12 表示百分之十二。 MIRR 函数用数组中的数值顺序来解释支付和收入的顺序。要确保支付和收入的输入顺序正确。




补充六


NPer(rate, pmt, pv[, fv[, type]]) 
  返回一个 Double,指定定期定额支付且利率固定的总期数。
  rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分率 (APR) 为百分之十并按月付款的汽车贷款,则每一期的利率为 0.1/12 或 0.0083。
  pmt 必要。Double 指定每一期所付金额。付款金额通常包含本金和利息,且付款金额在年金的有效期间不变。
  pv 必要。Double 指定未来一系列付款或收款的现值。例如,当贷款买一辆汽车时,向贷方所借贷的金额为将来每月偿付给贷方款项的现值。
  fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存。例如,贷款的未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
  type 可选。Variant 指定贷款到期时间。如果贷款是在贷款周期结束时到期,请使用 0,如果贷款是在周期开始时到期,请使用 1。如果省略的话,缺省值为 0。
  说明 年金是在一段时间内一系列固定现金支付。年金可以是贷款(如房屋抵押贷款),也可以是一笔投资(如按月储蓄计划)。 对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如红利支票)。
提问题时注意版块要与你所要问的问题相对应,
补充七


NPV(rate, values()) 
  返回一个 Double,指定根据一系列定期的现金流(支付和收入)和贴现率而定的投资净现值。
  rate 必要。Double 指定在一期间内的贴现率,用十进制表示。
  values() 必要。Double 数组 指定现金流值。此数组至少要包含一个负值(支付)和一个正值(收入)。
  说明:资的净现值是未来一系列支付或收入的当前价值。 NPV 函数使用数组中数值的顺序来解释支付和收入的顺序。要确保支付和收入值是用正确的顺序输入的。 NPV 投资在第一笔现金流值之前开始计算周期,而结束于数组中最后的现金流值。 净现值是根据未来的现金流进行计算的。如果第一笔现金流在第一期开始时发生,那么 NPV 返回的值必须加上第一笔值才是净现值。而且 values() 数组不可包含第一笔值。 NPV 函数与 PV 函数(现值)相似,只是 PV 函数在一个期间的开始或结束时才允许有现金流。与可变的 NPV 现金流值不同, PV 的现金流在整个投资期间必须固定。




补充八


Pmt(rate, nper, pv[, fv[, type]]) 
  返回一个 Double,指定根据定期定额支付且利率固定的年金支付额。
  rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分比率 (APR) 为百分之十且按月付款的汽车贷款,则每一期的利率为 0.1/12 或 0.0083。
  nper 必要。Integer 指定一笔年金的付款总期数。例如,如果对一笔为期四年的汽车贷款选择按月付款,则贷款共有 4 * 12(或 48)个付款期。
  pv 必要。Double 指定未来一系列付款或收款的现值。例如,当贷款买一辆汽车时,向贷方所借贷的金额为将来每月偿付给贷方款项的现值。
  fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存。例如,贷款的未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
  type 可选。Variant,指定贷款到期时间。如果贷款是在贷款周期结束时到期,请使用 0。如果贷款是在周期开始时到期,则请使用 1。如果省略的话,缺省值为 0。
  说明:年金是在一段时间内一系列固定现金支付,年金可以是贷款(如房屋抵押贷款),也可以是一笔投资(如按月储蓄计划)。 在支付期间必须用相同的单位计算 rate 和 nper 参数。
  例如,如果 rate 用月份计算,则 nper 也必须用月份计算。 对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如红利支票)。




补充九


PPmt(rate, per, nper, pv[, fv[, type]])
  rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分比率 (APR) 为百分之十且按月付款的汽车贷款,则每一期的利率为 0.1/12 或 0.0083。
  per 必要。Integer 指定在 nper 间范围 1 中的付款周期。
  nper 必要。Integer 指定一笔年金的付款总期数。例如,如果对一笔为期四年的汽车贷款选择按月付款,则贷款共有 4 * 12(或 48)个付款期。
  pv 必要。Double 指定未来一系列付款或收款的现值。例如,当贷款买一辆汽车时,向贷方所借贷的金额为将来每月偿付给贷方款项的现值。
  fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存值。例如,贷款的未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
  type 可选。Variant 指定贷款到期时间。如果贷款是在贷款周期结束时到期,则请使用 0。如果贷款是在周期开始时到期,则请使用 1。如果省略的话,缺省值为 0。
  说明:金是在一段时间内一系列固定现金支付。年金可以是贷款(如房屋抵押贷款),也可以是一笔投资(如按月储蓄计划)。 在支付期间必须用相同的单位计算 rate 和 nper 参数。
  例如,如果 rate 用月份计算,则 nper 也必须用月份计算。 对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如红利支票)。






补充十


PV(rate, nper, pmt[, fv[, type]]) 
  返回一个 Double 指定在未来定期、定额支付且利率固定的年金现值。
  rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分比率 (APR) 为百分之十且按月付款的汽车贷款,则每一期的利率为 0.1/12 或 0.0083。
  nper 必要。Integer 指定一笔年金的付款总期数。例如,如果对一笔为期四年的汽车贷款选择按月付款,则贷款共有 4 * 12(或 48)个付款期。
  pmt 必要。Double 指定每一期的付款金额。付款金额通常包含本金和利息,且此付款金额在年金的有效期间不变。
  fv 可选。Variant,指定在付清贷款后所希望的未来值或现金结存。例如,贷款的未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
  type 可选。Variant 指定贷款到期时间。如果贷款是在贷款周期结束时到期,则请使用 0。如果贷款是在周期开始时到期,则请使用 1。如果省略的话,缺省值为 0。
  
  说明:年金是在一段时间内一系列固定现金支付。年金可以是贷款(如房屋抵押贷款),也可以是一笔投资(如按月储蓄计划)。 在支付期间必须用相同的单位计算 rate 和 nper 参数。例如,如果 rate 用月份计算,则 nper 也必须用月份计算。 对所有参数,现金支出(如储蓄存款)用负数表示,而现金收入(如红利支票)用正数表示。




补充十一


Rate(nper, pmt, pv[, fv[, type[, guess]]]) 
  返回一个 Double,指定每一期的年金利率。
  nper 必要。Double 指定一笔年金的付款总期数。例如,如果对一笔为期四年的汽车贷款选择按月付款,则贷款共有 4 * 12(或 48)个付款期。
  pmt 必要。Double,指定每一期的付款金额。付款金额通常包含本金和利息,且此付款金额在年金的有效期间不变。
  pv 必要。Double 指定未来一系列付款或收款的现值。例如,当贷款买一辆汽车时,向贷方所借贷的金额为将来每月偿付给贷方款项的现值。
  fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存。例如,贷款的未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
  type 可选。Variant,指定贷款到期时间,如果贷款是在贷款周期结束时到期,则请使用 0。如果贷款是在周期开始时到期,则请使用 1。如果省略的话,缺省值为 0。
  guess 可选。Variant 指定 Rate 返回的估算值。如果省略,则 guess 为 0.1 (10%)。
  说明:年金是在一段时间内的一系列固定现金支付,年金可以是贷款(如房屋抵押贷款)或是一笔投资(如按月储蓄计划)。 对所有参数,现金支出(如储蓄存款)用负数表示,而现金收入(如红利支票)用正数表示。 Rate 是叠代计算的。先从 guess 的值开始,Rate 反复循环计算,直到精确度达到 0.00001%。如果经过 20 次叠代测试还不能得到结果,则 Rate 计算失败。如果猜测是 10% 而 Rate 计算失败,则请试用不同的 guess.值。




补充十二


SLN(cost, salvage, life)
  返回一个 Double,在一期里指定一项资产的直线折旧。
  cost 必要。Double 指定资产的初始成本。
  salvage 必要。Double 指定资产在可用年限结束后的价值。
  life 必要。Double 指定资产的可用年限。
  
  说明:折旧期间必须用与 life 参数相同的单位表示。所有参数都必须是正数。
SYD(cost, salvage, life, period)
  返回一个 Double,指定某项资产在一指定期间用年数总计法计算的折旧。
  cost 必要。Double 指定资产的初始成本。
  salvage 必要。Double 指定资产在可用年限结束后的价值。
  life 必要。Double 指定资产的可用年限。
  period 必要。Double 指定计算资产折旧所用的那一期间。

  说明:必须用相同的单位表示 life 和 period 参数。例如,如果 life 用月份表示,则 period 也必须用月份表示。所有参数都必须是正数。
提问题时注意版块要与你所要问的问题相对应,
返回列表