Access 2003完整教程:关于更新 Access 项目中的数据

用于更新数据的常规指南

更新Microsoft Access 项目中的数据时,可应用下面的常规指南:

何时可以更新数据

通常,下列情况下可以更新数据:

何时不能更新数据

通常,下列情况下不能更新数据:

Access 如何在数据表或窗体中显示更新的列值和默认的列值

已更新列值的显示

更新窗体、数据表或页中的字段时,Microsoft Access 可以自动插入值,如默认值、计算列、时间戳值、标识/自动编号字段或由触发器执行的操作。不过,与Microsoft Access 数据库(Access 数据库在大多数情况下只要您离开字段就会更新字段的值)不同,在 Access 项目中,根据所用数据库的版本和几个属性设置,可能只有在提交记录后,才会显示值或者操作才能生效。这是因为 Access 可能先在服务器上进行更新或执行操作,然后再刷新客户端的当前显示。

在更新记录(如对列进行计算、更改联接字段的值或更新外键字段)后,Access 将修复相应的联接表。在 SQL Server 2000 数据库中,Access 通常要对窗体或数据表上的数据重新进行同步,以反映值的更改。不过,由于这种行修复需要与服务器之间进行额外的往返,因此您可能希望通过PerformResync属性禁用这一设置。在 SQL Server 7.0 和 6.5 版的数据库中,这种行修复必须由窗体设计人员使用ResyncCommand属性设置(请参见下面的讨论)。

经排序和筛选后的结果

对于 SQL Server 2000 数据库,当更新排序和筛选的查询时,不会丢失排序和筛选。

对于 SQL Server 7.0 和 6.5 数据库,Access 会删除排序和筛选,看起来就像是记录从其当前位置消失并移到了新的位置。

默认值的显示

Access 2000 数据库默认情况下,当窗体或数据表显示新记录时,Access 会显示默认值。但出于对性能的考虑,可以在窗体上将“抓取默认值”属性设为“否”以禁用这种功能。

Access 7.0 和 6.5 数据库当窗体或数据表显示新记录时,Access 不显示默认值。不过,控件上的所有默认值都会显示出来。

约束有效性和有效性文本

在用户尝试保存记录以前,Access 不会向用户通知列的约束是否破坏,也不会显示“有效性文本”属性值。

使用 SQL Server 7.0 或 6.5 数据库中的可更新快照

概述

Access 只支持对可更新快照(已由视图、返回行的存储过程或 SQL SELECT 语句中的一对多联接操作创建)中唯一表(联接中“多”方)的行进行数据的插入、删除和更新。Access 不允许用户对联接中“一”方上的字段进行更新。

基于一对多联接的窗体或页必须定义UniqueTable属性,记录集才能成为可更新的。唯一表(也称为“多数”表)是一对多关系中的“多”方。它之所以称为唯一表是因为唯一表中的一个记录最多只对应于视图、返回行的存储过程或 SQL 语句中的一条记录。例如,在联接“客户”和“订单”表的视图中,“订单”是唯一表,因为“订单”表中的一条记录最多对应视图中的一条唯一记录。与之相反,“客户”表中的一条记录可以在视图中对应多条记录。

此外,如果记录源是包含未命名参数的存储过程或 SQL 语句,那么,若要在记录更新后显示记录的当前值,还必须设置ResyncCommand属性。注意,在这些情况下如果未设置ResyncCommand属性,则唯一的后果是在更新或插入后看不到记录的当前值。但更新和插入操作仍然可以正常进行。对于其他类型的记录源,Access 显示当前值(即使没有设置ResyncCommand属性也是如此)。

在可更新快照中,成功地保存已编辑过或新插入的记录后,用户只能看到该记录的当前值(请参见上面的讨论)。例如,“订单”表将一个标识列作为它的主键。当在该表中插入数据时,新的“订单ID”值将在保存记录或移到另一条记录(这等于隐式地保存了记录)后显示。类似地,在基于联接“客户”表和“订单”表的视图的窗体中,如果将“订单ID”字段更新为其他“客户ID”值,则除非已保存了记录,否则“地址”字段将不显示新客户的地址。

最后,所有的键字段或 UniqueTable 必须在 SQL SELECT 语句的选择列表中(尽管未必可见)。用户还必须选定所有 NOT NULL 列(这些列未定义服务器默认值),并在记录集内为这些列提供值(除设置了Identity属性的字段以外)。

更新相关数据的建议方法

建议使用以下方法更新相关数据:

上页:Access 2003完整教程:关于用 Microsoft Outlook 跟踪工作和查找文件 下页:Access 2003完整教程:关于升迁 Microsoft Access 数据库

Access 2003完整教程:关于更新 Access 项目中的数据

Access 2003完整教程:关于升迁 Microsoft Access 数据库Access 2003完整教程:关于用户级安全机制 (MDB)
Access 2003完整教程:关于在多个 Access 版本中使用 Access 文件Access 2003完整教程:用于部署 Access 项目的方法
Access 2003完整教程:关于 Windows 注册表Access 2003完整教程:关于 XSL 转换文件
Access 2003完整教程:关于自动填入数据的“自动查阅”查询 (MDB)Access 2003完整教程:关于双向字体
Access 2003完整教程:关于在从右到左应用程序中创建宏Access 2003完整教程:关于从右到左功能的兼容性
Access 2003完整教程:关于从右到左语言功能Access 2003完整教程:关于双向文本的拼写检查
Access 2003完整教程:关于在表达式中使用双向文本Access 2003完整教程:关于在从右到左应用程序中创建模块
Access 2003完整教程:关于从右到左 HTML 文件的代码页和文本布局支持Access 2003完整教程:关于按文本格式导入、导出和链接从右到左表
Access 2003完整教程:关于阿拉伯语排序次序Access 2003完整教程:关于阿拉伯语代码页
Access 2003完整教程:关于希伯来语代码页Access 2003完整教程:关于希伯来语排序次序
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号