如何在具有相同形式的两个开放MDB实例之间进行通信?

时间:2009-12-15 14:53:49

标签: ms-access forms vba

在VBA(Access 2000)中,无论如何都要在两个打开的数据库实例之间向表单发送信息?

例如:

用户1在其PC上打开了一个DB.MDB实例,并打开了FormOne。用户2在她的PC上打开了另一个DB.MDB实例,并打开了FormOne。

用户1可以在用户2的FormOne实例上设置文本框的内容(即发送类似于聊天客户端的消息)吗?

2 个答案:

答案 0 :(得分:4)

您可以将数据存储到表中并更新计时器上的表单或子表单。

答案 1 :(得分:0)

和Remou一样,我认为表格方法就像你要得到的一样。您可以通过维护具有上次更新值的单记录表来优化查询。然后让你的计时器表单检查,看看自上次触发计时器后值是否已经改变,这将告诉计时器检查聊天表。

在替代方案中,您可以在读取记录后立即删除记录,以使表格保持较小。

你会发现所有的记录创建/删除都会使你的数据库膨胀,所以一定要定期压缩它。

最后,如果所有用户都可以访问共享驱动器,则只需将消息存储在文本文件而不是表中。

另一个问题当然是窃听(使用表格或文件)。您可以通过以下方式最小化 在写入文本之前对文本进行模糊处理/加密,并在读取文本时对其进行反混淆处理。一旦它被目标读取就立即删除记录。 隐藏文件/表格。对于文件使用:SetAttr myFile,vbSystem或vbHidden 对于Tables,使用USys_作为表名前缀,并使表隐藏。

所有这一切,它仍然是聊天客户端的遗憾替代品。它会降低数据库的速度,并可能减慢共享驱动器的速度。我会长时间地思考为什么我需要这个,如果它真的是最好的方法。