本节书摘来自异步社区出版社《Access 2007开发指南(修订版)》一书中的第1章,第1.10节,作者: 【美】Alison Balter,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.10 Access 2007中的其他新特性
Access 2007开发指南(修订版)
Access 2007极大地增强了导入和导出功能。例如,现在可以导出到PDF和XPS字段;也可以保存导入和导出的具体规范,这样用户以后就可以重复使用它。在第20章中将介绍这些功能。
Access 2007和Outlook 2007是紧密地结合在一起的。可以使用Outlook 2007收集和更新数据。当使用新的“数据收集”功能时,Access 2007会自动创建一个Microsoft Office InfoPath 2007或HTML窗体,然后它能够将该窗体嵌入到电子邮件信息中。这样就可以将邮件寄给选中的Outlook联系人,或者是存储在Access数据库中的联系人。当接受者填写了窗体并将它返回后,就可以无缝地将结果数据存储在Access 2007数据库中了。
另外,Access 2007中有关安全的功能已经完全修改了。“用户安全”模型在Access 2007中被完全淘汰了,除非坚持给数据库使用旧的Access文件格式(.mdb或.mde),并且给该数据库应用了用户分级安全模型。换句话说,如果打开一个Access以前版本创建的数据库,而该数据库已经应用了安全级别,那么Access 2007将会支持该数据库的用户分级安全功能。如果将Access以前版本创建的数据库转换为Access 2007文件格式,Access 2007就会删除该数据库的所有用户分级安全设置,并会应用Access 2007安全功能。读者将在第31章中学习更多有关安全的知识。
1.10.1 复制怎么了
Access 2007不支持复制功能,除非将数据库以旧的文件格式保存。如果打开了一个现有的复制功能已经生效的.mdb文件,那么Access 2007会支持复制功能。也可以使用Access 2007复制由Access以前版本创建的数据库,只要不将该数据库转换为新的文件格式。
不能将一个复制的数据库转换为Access 2007的文件格式。然而,此处对于该问题有一个解决方法,它涉及手动地重新创建Access 2007文件格式的数据库。只有在Access 2007文件格式所能带来的益处大于复制功能的益处时,才应该这么做。如果确实决定手动地重新创建数据库,就必须首先确保所有隐藏的及系统的对象是可见的。然后按照以下步骤操作:
(1)使用与创建副本数据库相同版本的Access打开用户想要转换的副本;
(2)选择“工具”>“选项”命令;
(3)选择“视图”选项卡,打开的“选项”对话框如图1.49所示;
(4)在“显示”选项区域中,选中“隐藏对象”和“系统对象”复选框;
(5)单击“确定”按钮应用这些设置,然后关闭“选项”对话框。
重新创建数据库
下一步,就必须手动地重新创建数据库了。按如下步骤操作。
(1)创建并打开一个空白的Access 2007数据库。
(2)关闭名为“表1”的表,而不保存它。
(3)选择“外部数据”选项卡(如图1.50所示)。
(4)在“导入”组中选择“Access”,就会打开“获取外部数据-Access数据库”对话框(如图1.51所示)。
(5)在该对话框中单击“浏览”按钮,找到副本的数据库,然后单击“打开”按钮。
(6)在“获取外部数据-Access数据库”对话框中,选择“将表、查询、窗体、报表、宏和模块导入当前数据库”单选按钮,然后单击“确定”按钮,就会打开“导入对象”对话框(如图1.52所示)。
(7)选择想要导入新数据库的对象。如果想要导入所有对象,可以在每个选项卡上单击“全选”按钮。不要选择任何表,以后会分别处理它们。
(8)Access提示使用保存导入步骤。如果想要这么做,可以选择“保存导入步骤”复选框,输入所需的信息(如图1.53所示),然后单击“保存导入”按钮。
(9)在Access 2007中打开副本数据库。
(10)确保s_GUID、s_Lineage和s_Generation字段是可见的。具体方法是右键单击“导航窗格”顶部,在弹出的快捷菜单中选择“导航选项”命令,这样就会打开“导航选项”对话框(如图1.54所示)。
(11)在“显示选项”选项区域中,选择“显示系统对象”复选框,然后单击“确定”按钮关闭该对话框。
(12)给每个表都创建一个“生成表”查询。“生成表”查询会接受所有旧表中的数据,并且会使用同样的数据在新数据库中创建一个表。如果s_GUID是主键,并且是其他表的外部键,就必须在新表中包括s_GUID字段。此时没有必要将s_Lineage和s_Generation字段复制到新表中。
(13)运行“生成表”查询。这会在新数据库中创建多个表。新表不会继承任何字段属性,并且也不会从原表中继承主键设置(这些是很重要的)。
(14)在新的数据库中,创建与副本表中相同的索引及主键。
(15)在新数据库中给每个表创建必要的关系。
(16)保存新数据库。
1.10.2 ADP文件怎么了
Access 2007也不再支持Access数据对象(Access Data Project,ADP),同样,除非以旧版本的Access文件格式保存数据库。虽然支持旧版本的Access文件格式的,但是最好不要使用ADP文件作任何新的开发。如果用户现存的ADP文件可以满足当前的商业需要,那么用户此时就不需要重新编写它们。如果基于某些原因,用户决定对那些现有的应用程序作出重要改变,那么就应该考虑将它们转换为.accdb或.accde文件格式,并且查询编写它们的功能,这样才能充分利用Access 2007的新功能,并消除ADP文件的特有功能。