以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 XML 与 数据库 』  (http://bbs.xml.org.cn/list.asp?boardid=17)
----  关于xml和Access的学习  (http://bbs.xml.org.cn/dispbbs.asp?boardid=17&rootid=&id=13251)


--  作者:yibingzheng
--  发布时间:1/4/2005 5:17:00 PM

--  关于xml和Access的学习
现在正在学习Access,正好将xml和Access联系起来!我想大家也有正在学习Access的,我们可以共同学习!
数据以不同的格式存储在不同的应用程序中。 格式有成千上万,应用程序更是不计其数。这使得在应用程序之间交换数据成为一项非常困难且耗时的任务。可扩展标记语言 (XML) 和 Access 提供了一条方便的途径来收集、改编和共享这些数据,使之应用于不计其数的应用程序和格式中。本文讨论了在 Access 中使用 XML 所涉及的三个最常见的问题:从不同的数据源导入数据、将 Access 数据导出到 XML 和将 XML 数据转换为其他格式。


从其他数据源导入 XML 数据

通常情况下,完成工作的能力取决于收集数据、将数据转换为可用的信息以及与他人共享信息。其难点在于大量数据通常以多种不同的格式分布在各类内部和外部数据源中。数据的来源可以是:

内部 Microsoft SQL Server™ 计算机
内部 AS400 服务器
Microsoft Office 2003 Excel 电子表格
其他外部数据提供者,例如 SAP
文本文件
具有专有数据格式的应用程序
幸运的是,许多这些数据源都支持使用 XML 作为其数据交换格式,因此,改编此信息供您使用相对容易些。假设您需要定期从不同的数据源收集数据来创建报表,以供经理和同事审阅。

要使用 XML 来做此工作,您可以:

与不同数据源的管理员配合将数据导出至远程服务器上的一组 XML 文件中。
将 XML 源文件中的数据导入至您的 SQL Server 数据库中。您也可以将此数据导入到 Access 数据库或 SQL Server 2000 Desktop Engine(也支持 XML 数据导入)的本地副本中。您甚至可以在 Access 中用 Visual Basic for Applications 代码编写一个执行 ImportXML 方法的计时器,从而自动执行此过程。
使用附加到 SQL Server 的 Access 项目前端来针对导入的数据创建一组聚合查询。
使用那些视图来设计适当的报表或数据访问页。
打印报表、提供报表的快照或将页发布到 Intranet Web 站点。
在此过程中使用 XML 的主要好处在于:除了创建查询以外,还可以将来自不同数据源的数据导入 SQL Server 或 Access 数据库,无需进行其他的数据操作。

如果不使用 XML,完成此任务可能要包括将数据导出至文本文件(假设不同的数据源支持此操作),通过添加分隔符将数据分隔成不同部分来处理数据文件,将数据导入 SQL Server 或 Access,然后再花费大量的时间来清理数据。而使用 XML 可使您将这类重新格式化数据和清理数据的时间减为最少。

如果您正导入和使用以 XML 格式存储的数据,那么了解一些有关该数据的结构以及如何在数据库的目标表中存储数据是很有帮助的。

什么是 XML 元素和属性?
象超文本标记语言 (HTML) 一样,XML 也使用元素标记和属性分配来提供有关数据及其结构的信息,例如字体样式、数据类型、分组信息、打印机信息和控件属性。一个典型的 XML 元素由开始标记、元素数据和结束标记组成。属性通常作为名称-值对包含在元素起始标记中,提供有关元素的附加信息。元素标记和属性的一般形式为:

<START-TAG attribute="value">element data<END-TAG>

导入数据时导入了什么?导入至何处?
当 Access 从 XML 数据文件中导入数据时,数据遵循一定的规则,就象填一个表。不导入处理语句(以 < 和 ? 符号开始)和注释(以 < 和 ! 符号开始)。从每个包含子元素(嵌套元素)的外层元素提取表名。仅导入元素数据。忽略任何属性数据。表中的字段名称取自元素标记名。例如,对于下面的 XML 数据文件:


<?xml version="1.0" encoding="UTF-8"?>
<dataroot>
<EMPLOYEES>
<LASTNAME type="client">Davolio</LASTNAME>
</EMPLOYEES>
<ADDRESS>
<HOME>123 Anywhere Avenue</HOME>
</ADDRESS>
</dataroot>

将数据导入 Access 表时将进行以下分配:

XML 对象类型 示例 Access 表分配
XML 声明 <?xml version="1.0"?> 无,忽略
文档元素 <dataroot> 无,忽略
数据元素 <EMPLOYEES> 表名
数据元素 <LASTNAME> EMPLOYEES 表中字段
数据值 Davolio 字段值
属性 type="client" 无,忽略
数据元素 <ADDRESS> 表名
数据元素 <HOME> ADDRESS 表中字段名
数据值 123 Anywhere Avenue 字段值

注释  注意:只有格式完整的 XML 文档才可导入 Access。这就意味着条件之一是该文档必须包含一个含有文档中所有其他元素的文档元素。


--  作者:qlq2001
--  发布时间:8/19/2005 3:35:00 PM

--  
请楼主继续发帖,俺正等待你的下文呢~~~
--  作者:maxsolomon
--  发布时间:9/22/2005 3:08:00 PM

--  
完了?????
--  作者:zhongmuyan
--  发布时间:10/7/2005 8:48:00 AM

--  
请问楼主:
您能给个具体的导入XML到ACCESS的例子么?

我曾试着用XMLSPY将一个通过有效性检验的XML文件导入到新建立的ACCESS文件中,都快建成了,却说我有几个关键的数据类型不对。是怎么回事?

不知道是不是还需要一个XSLT。我不会写,请指教,多谢了。


--  作者:ywqxtx
--  发布时间:11/19/2005 6:23:00 PM

--  
楼主 还没有完呀!!!! 继续!
--  作者:mailtolily
--  发布时间:2/8/2006 3:40:00 PM

--  您能给个具体的导入XML到ACCESS的例子么?
您能给个具体的导入XML到ACCESS的例子么?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms