如何拆分复制的Access 97数据库
2008-12-26 00:00:00 来源:WEB开发网那些对Access数据库无经验的开发人员,他们常常不知道改变复制为对象设计,而不是数据表,那样会引起一些问题。这是令人失望的,首先, 因为复制似乎是分布完整的Access应用程序的最好途径,毕竟,Microsoft是支持它的。
问题是,Jet的复制是设计有数据表的。这是因为Jet复制主要是用于Visual Basic应用程序的,在那里,只有数据可以被存储在*.mdb文件里。这是它被测试最多的地方。对于Access 97来说,它总是被理解为,一个优秀的开发人员在将其转换成副本之前总是要拆分数据库,这样,只有表才能使被复制。关于拆分Access 数据库的概念,请参阅“在Microsoft Access 97中创建应用程序”的 第15章,第3节, 这些文档在Access 97光盘中都有。
复制之前没有拆分数据库,你会发现你的副本的大小会“膨胀”。这是因为,你做的每一个到格式或模块的改变,如,被放在隐藏表中,这样就变成了需要被复制的信息。想象一下,你努力30次正确地去做某个模块的代码工作。这些改变(除最后一个不必要外)都被发送到所有的副本,开发人员在复制前不能拆分就会碰到一个恼人的问题:复制工作正确进行一会儿后(也许甚至几个月),模块会突然不能工作,或表单不能打开。
所以,你怎么能拆分已经被复制的数据库?我在这儿建议你根据以下的步骤去做。
不要使用拆分数据库向导。这是因为,它正好用了错误的方式来拆分数据库,这样,你的数据表就不能再复制了---它把表移到新的文件中去了,并把对象的剩余部分放到了副本里,而我们要做的,是要把数据表放在副本里,并把其他的对象移到新的未复制的数据库文件中。那样的话,后端的剩余部分是可以复制的,作为当前副本设置的一部分,前端现在则是独立数据库,只能被拷贝到每一个应用程序用户。
要确保你的副本都要同步,你就要知道,万一你损坏了设计主,而你已经更新了数据。
创建新的Access数据库文件,该文件会在前端。根据Microsoft例子,你可以添加"_fe"到初始数据库名,虽然它确实对你要调用的并无关紧要。
把这个新的文件打开,从设计主输入所有的查询,表单,报表,宏以及模块。如果你把开关板置于适当的你可以使用开关管理器控制的位置,那么,你也需要输入开关板项目表。
如果你已执行了数据库安全,那么,你会丢失在第4和第5步骤中输入或连接的所有对象中的容许设置。所以,打开设计主,将这些容许设置拷贝到新的文件(即,前端)。
现在,你需要添加代码到前端,该前端更新了连接到用户的本地副本。在开发人员解决方案数据库中,你会发现做这些工作的帮助。它随Access 97作为样本数据库出现。从“使用多数据库”分类中选择“启动连接表”。
分布前端到你的所有用户。记住,该文件不应再被复制。你只须为需要的人拷贝即可。叫你的用户切换到使用前端。当你确定他们现在在使用前端时,你就可以继续下去,把设计主转换成后端(下两个步骤),便于他们同步下次时间,他们的副本也将变成后端。
打开设计主,删除你在第4步骤中输入的所有对象。
两次紧致设计主,然后使其与你的其他副本同步。
注意:如果你想继续Microsoft在其拆分数据库向导中使用的准确的命名约定,那么,你就不得不通过添加"_be"到其文件名来重新命名你的后端副本。最安全的办法是在复制管理器里,用移动副本命令来做。
更多精彩
赞助商链接