我创建了一个数据库,用于跟踪的指标,具有一定的自动化技巧(电子邮件,.DOC,.PPT演示等),具有非常大的主表,以及大量的表格/ GUI的。 这是我第一次曾经我担心的MDE /前端的东西。 所以,如果你会这么好心来回答几个问题,或提供任何意见,那将是极大的赞赏(我讨厌这一切的工作不被利用)。
什么是我需要做的第一件事情? 据2000年的版本,必须转换为03创建MDE,但能够轻松搞定之前,我使用的数据库分离器?
将对象在数据库中的金额影响到能力做到这一点? 我有像80点的形式,70个查询,20个+宏,12桌,等等......但对象的量防止一些这一次从前端的工作以及在那里?
当我拆分数据库,我可以继续工作/修改和这样的“后端”上,并让这些变化直接影响前端?
这些可能是一些基本的问题,但我不知道答案,所以.....谢谢!
这里是我的2¢。
问题1 - 我从来没有使用数据库拆分,因为我觉得我有更多的控制做手工。 如果你做手工,你可以这样做是为了不有一个数据库分路器版本。 但是,如果你使用分离,然后 - 是 - 你将不得不升级到已在这样做之前分路器版本。
做手工这里的步骤。
- 备份一切。
- 创建文件的副本到同一个目录。 所以,如果你有一个MyApp.MDB创建复制到同一目录中的新名称,如MyAppDATA.mdb。
- 打开新的数据文件(MyAppDATA.mdb),并删除所有对象,除了表。
- 打开应用程序文件(MyApp.mdb),并删除所有的表。
- 此外,在MyApp.mdb ...进入文件/获取外部数据/链接表菜单表中MyAppDATA.mdb链接到MyApp.mdb。 所有的选择和创建链接。
这应该这样做。 如果你搞砸了,你做了备份,对吧?
一对夫妇的技巧和陷阱的......可以肯定的,你去工具/选项,你是不是显示系统和隐藏表。 你只是不想从MyApp的删除系统表。 另一种方式来做到这一点是不要删除与或MSys的启动USYS表。
问题2 - 不要紧,你有多少对象有。 其实你没有那么多的对象呢。
问题3 - 是的......你会在MyAppData.mdb后端的变化,当你打开MyApp.mdb这些变化将自动奇迹般地在那里看到和反对等查询(在查询设计器,您可能需要保存/关闭/重新看到新的领域,如果你在查询中做出的MOD时)。 唯一的例外是新表你将不得不使用File /获取外部数据/链接表选项来创建链接到新表。
需要记住的一点(和我希望你已经意识到)是分裂数据库的一个缺点是,当你部署前端文件通常该数据的相对路径可能会有所不同,从机器到机器,并没有自动重新链接表的访问。 如果你的目标客户有充分的机会,你可以随时使用工具/数据库实用程序/链接表管理器来刷新链接到正确的位置。 如果你不能做到这一点,那么你将不得不做下列之一:
1.写代码,不会自动重新链接给你的。 基本上,它会检查链接...如果无效,它会提示输入数据位置的用户(或INI文件看它),然后重新链接表。
2.总是您的应用程序部署到所有计算机上的相同位置。 如果你有商业愿景为您的应用这是不行的。我提到它的学术原因。 这可能是可行的,你在每台机器上的文件放置有大量的控制有限的部署。
3.将数据文件(MyAppDATA.mdb)到网络共享并且使用驱动器映射或UNC通过网络链接表(\ MYSERVER \ MYDATA \的ApplicationData \ MyAppData.mdb)。 后者是首选,但他们都运行相同的风险作为两个号码。
赛斯
PS这个答案假定Access 2003中。
PPS如果您对您的应用程序的商业愿景则该表的连接一定是真正稳健的。 PPPS我同意,你可能要采取的暴跌和SQL做,如果它是在你的技能的评议。
有一件事情还没有被讨论,这是在编译到MDE是否可能失败的问题。 基本上,如果你的代码在您的前端MDB编译,它会转换为MDE。 但我注意到有很多人从来没有编译。
一些提示保持在良好的状态你的VBA代码:
在VBE选项,关闭COMPILE ON DEMAND。
添加COMPILE按钮,您的标准VBE工具栏,并经常使用它。
定期备份您的MDB和反编译/重新编译。
此外,请记住,你必须保持MDB源,因为VBA代码不是在MDE编辑,而不是由任何好的方法恢复。
编辑:
对于反编译步骤:
备份您的MDB。
先从/反编译命令行参数访问的一个实例。 对于,例如,我有我的deskstop快捷方式,有这个作为目标:
“C:\ Program Files文件\的Microsoft Office \ OFFICE11 \ MSACCESS.EXE”/编译
已经打开访问该实例,打开要反编译MDB。 你会看到什么情况发生。 进一步什么也不做此实例的访问 - 关闭此实例的访问(这样做的原因是,迈克尔·卡普兰,谁知道这个东西,二,建议您从来没有做任何工作与反编译开关打开一个Access实例因为他说没有那个访问应用程序代码的方式,是各种接入工作)完全安全的在这些情况下执行的保证。
打开刚刚反编译MDB按住shift键(你想确保启动程序不运行,因为这可能会重新编译你的产品已经完成清理之前)和紧凑的MDB(再次按住Shift键)。
打开代码编辑器和编译项目(DEBUG - >编译[分贝名称]对于那些谁没有在我原来的编辑指令在后上方的编辑之前步骤#2)。
压实MDB(如果您绕过启动,因为它已经完全编译没关系)。
为什么有这么多的步骤?
因为反编译的目的是为了从规范VBA代码重新开始摆脱编译的P码。 按照以上的步骤确保你已经完全清除数据页存储编译后的代码重新编译之前。 这样做的原因是,如果没有反编译后的小型步进,在某些极少数情况下,代码可以运行异常。 我无法想象的是,旧的丢弃p代码被再次使用,但也有一些关于规范代码和编译代码,显然没有得到完全被反编译没有一个紧凑的冲洗之间的指针。
这将是塞特的答案评论,但我的代表处是不够高尚未就此发表评论。
赛斯做了伟大的工作,回答你的问题,只是我想添加更多的分手#1有关使用数据库拆分。 在工具菜单中的数据库拆分器工作正常。 做手工是好的太多,但它是一大堆更快和更容易使用的数据库拆分。 我已经使用了十多次,并使用它后从未遇到过任何问题。
http://www.databasedev.co.uk/split_a_database.html大约有一些拆分数据库的利弊体面的页面。
http://www.accessmvp.com/TWickerath/articles/multiuser.htm在多用户环境中拆分数据库打交道时,也有一些好消息。
赛斯给你一个很好的答案。 但我会补充几点看法。
对象的数量只有当你接近约1000窗体,报表和具有代码模块变得相关。 有一个大约有限制。 如果你得到时,试图使一个MDE,那么你几乎可以肯定有一个代码错误消息,并且需要编译查找错误
另一个资源是“ 分割你的应用程序到前端和后端提示 ”
请参阅自动更新FE下载页面,以分发新的FE相对简单的过程。该实用程序还支持终端服务器/ Citrix相当不错。