1. access 修改查询中的记录 设置
【查询可以被更新是有条件的。】
何时可以从查询更新数据 (MDB)
在某些情况下,可以在查询“数据表”视图中编辑数据以更改基础表中的数据。而在另一些情况下则不行。下面的信息表明了各种查询的结果是否能更新。
【数据可更新,下列情况下可以更新查询或查询字段:】
1、基于一个表的查询
2、基于具有一对一关系的表的查询
3、查询的结果中包含“备注”、“超链接”或“OLE 对象” ,数据在一定条件下可更新
4、如果查询基于含有一对多关系的表,则不能编辑下列查询字段的数据。
解决方案 是:
位于“一”方的联接字段 → 启动两表之间的级联更新。
新记录,如果位于“多”方的联接字段不出现在数据表中 → 从“多”方将联接字段添加到查询中,以允许添加新记录。
在“一”方更新数据后,来自“多”方的联接字段 先保存记录;然后可以对“多”方的联接字段进行更改。
在存在外部联接的一对多关系的“一”方表中的空白字段 → 在位于“多”方的表的字段中输入值,但必要条件是位于“一”方的联接字段中包含该记录的值。
新记录,如果 ODBC 表的整个唯一键没有输出 选取 ODBC 表的所有主键字段,以允许向其中插入数据。
【数据可以删除但不能更新】
解决方案 :
不具有“更新数据”权限的查询(或基础表) 若要修改数据,必须指定相应的权限。
不具有“删除数据”权限的查询(或基础表) 若要删除数据,必须指定相应的权限。
【数据不能更新】
1、基于具有多对一对多关系的三个或更多表的查询。……不能更新
当窗体的“记录集类型”属性设置为“动态集(不一致的更新)”时,虽然不能直接更新查询中的数据,但可以更新基于该查询的窗体或数据访问页中的数据。
2、交叉表查询 ……不能更新
3、SQL 传递查询 ……不能更新
4、对字段求和、平均值、计数值或其他类型总和值的查询,或者从包含总和或合计函数的交叉表查询、选择查询或子查询的“更新到”行中引用字段的更新查询
→ 通过在更新查询的“更新到”行中使用域聚合函数,可以引用包含总计或聚合函数的交叉表查询、选择查询或子查询中的字段。
5、联合查询 ……不能更新
6、“唯一值”属性设置为“是”的查询 ……不能更新
7、包含无唯一索引的 ODBC 链接表或无主键的 Paradox 表的查询 ……不能更新
8、包含多个表或查询,并且这些表或查询在“设计”视图中没有使用联接线相联接的查询 ……不能更新
→若要更新表,必须正确地联接它们。
9、计算字段……不能更新
10、字段为只读;数据库是以只读方式打开或位于只读驱动器上 ……不能更新
11、记录中的字段已经删除或被其他用户锁定 ……不能更新
→锁定的记录在解锁后即可更新。