0

Access 中是否有任何属性可以使用,以便每当编辑 Access 数据库中的任何单元格时,它都用于更新任何其他列的相应单元格。

实际上,如果我正在考虑使用时间戳,它仅适用于插入,不适用于更新,当我编辑任何单元格时,我希望它跟踪已编辑的内容。我无法在 Access 中使用表单,并且 access 2007 不支持存储过程或触发器。

4

2 回答 2

2

我正在考虑使用时间戳,它仅适用于插入,不适用于更新...访问 2007 不支持存储过程或触发器

实际上,Access 2007 支持CREATE PROCEDURE但不支持这样的过程代码;AccessPROCEDURE由单个 Access SQL 语句组成。

您可以按照以下方式做一些事情:

CREATE PROCEDURE UpdateMyStuff
(
 arg_stuff_ID CHAR(10), 
 arg_stuff_name VARCHAR(20) = NULL, 
 arg_stuff_color_code INTEGER = NULL
)
UPDATE MyStuff
   SET stuff_name 
          = IIF( arg_stuff_name IS NULL, stuff_name, arg_stuff_name ),
       stuff_color_code 
          = IIF( arg_stuff_color_code IS NULL, stuff_color_code, arg_stuff_color_code ),   
       stuff_updated_date = NOW()
 WHERE stuff_ID = arg_stuff_ID;

您可以为表编写类似的程序INSERTDELETE然后撤销表的更新权限,从而强制用户通过您的程序更新数据,这当然可以确保时间戳得到维护。

IIRC 当前时间戳的值NOW()将取自用户的本地计算机,即使数据库文件驻留在服务器计算机上,但这只是 Access 的“乐趣”之一。

于 2012-04-18T07:39:46.230 回答
2

不,没有任何内置功能。从支持触发器的数据库引擎使用链接表到外部表。

否则,您可以使用 VBA 使用 Forms 来实现这一点。

于 2012-04-18T06:52:51.787 回答