Access 中是否有任何属性可以使用,以便每当编辑 Access 数据库中的任何单元格时,它都用于更新任何其他列的相应单元格。
实际上,如果我正在考虑使用时间戳,它仅适用于插入,不适用于更新,当我编辑任何单元格时,我希望它跟踪已编辑的内容。我无法在 Access 中使用表单,并且 access 2007 不支持存储过程或触发器。
Access 中是否有任何属性可以使用,以便每当编辑 Access 数据库中的任何单元格时,它都用于更新任何其他列的相应单元格。
实际上,如果我正在考虑使用时间戳,它仅适用于插入,不适用于更新,当我编辑任何单元格时,我希望它跟踪已编辑的内容。我无法在 Access 中使用表单,并且 access 2007 不支持存储过程或触发器。
我正在考虑使用时间戳,它仅适用于插入,不适用于更新...访问 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;
您可以为表编写类似的程序INSERT
,DELETE
然后撤销表的更新权限,从而强制用户通过您的程序更新数据,这当然可以确保时间戳得到维护。
IIRC 当前时间戳的值NOW()
将取自用户的本地计算机,即使数据库文件驻留在服务器计算机上,但这只是 Access 的“乐趣”之一。
不,没有任何内置功能。从支持触发器的数据库引擎使用链接表到外部表。
否则,您可以使用 VBA 使用 Forms 来实现这一点。