读书频道 > web开发 > 其他综合 > Access 2013 Web编程
2.3.2 从导入的数据源创建表
2015-04-17 14:24:06     我来说两句 
收藏    我要投稿   

本文所属图书 > Access 2013 Web编程

高效进行Access 2013 Web编程的技巧、技术和工具Access 2013展示的新特性意在提升创建基于Web和传统数据库的应用程序的技能。本书由Microsoft Access MVP团队编写,展示了开发新的解决方案、更新现有项目和  立即去当当网订购
创建表的第二种快捷方式是通过导入外部已经创建好的数据源来创建Access数据表。这种方法你应该已经比较熟悉,因为这与以前Access中创建数据表的方式非常相似。在Access 2013中,通过导入数据源创建表的方式与之前版本的主要不同之处在于更容易获取外部数据源,如图2-11所示。


在图2-11所示界面中,列出了用于导入外部数据源的选项。下面列出了5种外部数据源:

●其他Access数据库

●Excel文件

●SQL Server/ODBC Data数据源

●Text/CSV文件

●SharePoint List数据源

通过导入向导可以导入每种类型的数据源。Access 2013中的数据源导入向导与Access以前版本中的类似。对于Access数据文件来说,在Tables选项卡中列出了所有要导入Access数据库中的表。由于.accdb文件对象是在SQL Server数据库中创建和存储的,因此在Access 2013中还不支持从.accdb文件导入数据。

在图2-12所示的例子中,就列出了从其他的Access数据库中导入的数据表。显而易见,可以从这个列表中选择一个或多个数据表,将它们一起导入数据库中。在导入Access数据表时可以用相似的方式,只是每次导入的结果不同而已。


在图2-13中,就可以看到在这个例子中被导入的数据表的结构,包括一个自动编号(AutoNumber)数据类型的字段并且该字段是主键,以及5个其他类型的字段。


在图2-14中显示了把该表导入Access Web应用程序后的结果。从导入结果可以看出,导入后的表和源表非常相似,只是每个字段的属性有一些区别。在自动编号(AutoNumber)类型的主键字段的通用属性界面上没有Field Size属性。由于Access Web应用程序中的数据类型与SQL Server数据库的兼容,在SQL Server中设置标识规范的字段的数据类型是整数,自动编号数据类型等价于SQL Server的标识规范字段,因此在Access Web应用中,该字段也只能是整数类型。这就像在客户端使用自动编号类型一样,不用再做其他设置。


 

Web应用中表的设计要求

下面列出了一些在创建Web应用的数据表时需要遵守的一些规则:

●每张表中设置成主键的字段,数据类型必须是自动编号的。如果表中没有主键,在导入表时Access会为该表自动创建一个主键字段。

●Web应用中的数据表不支持复合主键。

●从Access 2010开始,可以通过Lookup类型的字段来查看表之间的关系。

如果导入的表不满足上面的规则,这些表就会导入失败、出现错误,Access有可能为之添加一个正确的主键字段。

如果需要在将这些表导入之前,先对数据类型进行修正,可以先把这些表从Access导出到Excel工作表中,修正好之后再将它们导入Access Web应用中。

图2-15中就显示了当Access不能识别导入表用自动编号数据类型的字段作为主键时出现的情况。当将表从Access导入Excel中,再重新导入Access Web应用时,以前Course ID字段的数据类型由自动编号类型转换成数值(Floating Decimal)类型,并且也没有将之设置成主键字段。因此,在Access中为之新添加了ID字段,数据类型是自动编号,并且在表中将之设置成主键,如图2-16所示。

Course ID字段在以前源文件中的数据类型是自动编号,并且是该表的主键,但是由于不满足Access Web应用中表的规则,因此在导出到Excel中时被认为是错误的数据类型。如果没有导入与该表关联的其他表到Access Web应用中,还可以通过删除Course ID字段并添加新的ID字段的方式来修复这个表,也可以将新的ID字段重命名成Course ID,对名字进行转换。但是,如果已经将这些与该表关联的表导入Access Web应用中,所谓的关联表就是指通过表中的主键和外键与该表关联,那么首先就得修复这些表之间的关系,然后再进行表中列的转换。

下面就举一个例子,有一张Access数据表,如图2-17所示。现在要将其导入Access Web应用中,如何按照Access Web应用的要求来修改这张表呢?



该表在State字段上有复合主键,它由State、CourseID和ApprovalDate三个字段组成。当将之导入Access Web应用中时,需要进行如图2-18所示的变更。


 

如图2-18所示,从Excel导入数据后,Access需要为该表添加一个新的字段,该字段的数据类型是自动编号,将其设置成主键,同时移除该表中原来的复合主键。这里,从表面上看会使该表损失一些功能,但实际上又不会对该表有什么影响。在一张表中有一个复合主键,就等价于为该表中的这些列创建复合索引,复合索引同时也能确保每个字段的值不为空。那么,如果创建复合索引呢?可以在“Table Design”页面上,单击“Indexes”按钮,即可打开如图2-19所示的对话框。在这里,需要注意的是FieldName字段的CourseID和ApprovalDate值,相应的Index Name字段的值是空白的,这就意味着这两个字段的Index Name字段的值也是“_PrimaryKey”。

同时,还需要将图2-19中下方的“Unique”属性设置成Yes,该属性用于确保该索引的唯一性。也就是说,Access为State、CourseID和ApprovalDate字段共同创建了一个复合索引来代替原来的复合主键,并且为了区分主键的名字,在名字的前面加了一条下划线,变成了_PrimaryKey。如果想让该名字更容易识别,也可以重命名。



从上面的内容中,你可能也注意到了Access Web应用中数据类型的一些变化,详细的数据类型说明将在下面的内容中讲到。


点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.3.1 使用名词创建表
下一篇:2.3.3 使用传统的方式创建表
相关文章
图文推荐
3.2 Windows 7设置
3.1 DNS解析
2.3 HTTP协议
2.2 TCP/IP协议与So
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站