实际上,您是否尝试过将该应用程序从 mdb 转换为 accDB 格式?文件的大小不应以有意义的方式改变。 (所以,请尝试这样的转换)。
事实上,据我所知,存储大小并没有什么不同。实际上,转换实际上与紧凑型 + 修复非常相似。由于未编译代码,整体生成的文件可能会小一些。 (在此过程中,已编译的二进制代码部分将被删除)。
因此,作为一般规则,从 Access 2000 开始,当使用 mdb 文件或 accDB 文件时,文件大小不应不同。
当然,从 access 97 文件转换是另一回事。 2000 年前的格式不支持国际字符集。并且 2000 年之前没有将文本数据存储为 uni-code(但使用 ASCII)。
因此,理论上从旧的 97 格式升级到 2000 及更高版本实际上可以将您的存储需求增加两倍。这意味着保存在数据库中的每个文本字符都需要两个字符(这就是 uni-code 的工作方式)。
为了弥补这一相当大的数据存储需求增长,并且没有相应地增加 2 gig 文件,因此在 Access 2000 及更高版本中引入了数据压缩技术。请勿将此压缩与压缩 + 修复相混淆。
您可以逐列启用/禁用压缩。例如这里:
因此,无论这个问题如何,您都不会看到 2003 格式文件与 accDB 文件大小格式之间的文件大小有任何差异。存储要求是相同的,您看到差异的唯一原因是压缩 + 修复和删除转换期间发生的额外“垃圾”。 (实际上,您可以通过执行 C+R 和反编译然后再执行另一个 C+R 来获得相同的文件大小而无需转换)。
因此,例如,尝试将缩小大小的 mdb 转换为 accDB - 您会注意到文件没有增加 - 事实上,如前所述,在从 mdb 转换为 accDB 的过程中,您经常会看到大小减小。因此,这又是由于在此处转换期间的垃圾删除所致——而不是因为您使用 mdb 文件而不是 accDB 文件,因此不是因为使用 mdb 与 accDB。
如上所述,上述规则的唯一例外是 2000 年前格式的 mdb。它们没有 uni-code,因此文本数据理论上应该使用 DOUBLE 存储和 NEW 格式。然而,随着对这些文本列的压缩技术的引入,实际上您的商店需求并没有增加——事实上,在某些情况下,与没有压缩列的 2000 年之前相比,可能会少一些。原因是文本数据确实倾向于很好地压缩(压缩)。
至于使用什么文件格式?我会使用给定版本的默认文件格式。所以,在你的情况下,我建议最好使用 accDB。
Albert D. Kallal(访问 MVP)
加拿大艾伯塔省埃德蒙顿