您好,欢迎访问一九零五行业门户网

ACCESS与外部其它数据交互

access做为ms office 办公套件中的一个应用程序,经常需要来其它数据源进行数据交互,比如在查询中使用在excel中的数据或文本记录文件中的数据,或者倒出查询结果到excel的数据表中或其它式的数据文件中。 除了常用的倒入/倒出功能外,还可以通过jet-sql的 i
access做为ms office 办公套件中的一个应用程序,经常需要来其它数据源进行数据交互,比如在查询中使用在excel中的数据或文本记录文件中的数据,或者倒出查询结果到excel的数据表中或其它格式的数据文件中。 除了常用的倒入/倒出功能外,还可以通过jet-sql的 in 子句来灵活实现。
外部数据库
可以是一个驻留在远程服务器上的 odbc 数据库(如 microsoft sql server),或是外部数据库之一,如 paradox、dbase、microsoft foxpro、microsoft excel、microsoft access、lotus 1-2-3、html 和 text。
下面首先看一下 microsoft jet sql 参考中关于 in 子句的介绍。
in 子句标识出外部数据库中的表,例如dbase或paradox数据库,或microsoft jet外部数据库,microsoft jet数据库引擎能够与之相连。
语法标识目标表:
[select | insert] into destination in
    {path | [path type] | [ [type; database =path]]}
标识数据源表:
from tableexpression in
    {path | [path type] | [ [type; database =path]]}
包含 in 子句的select 语句具有以下几个部分:
部分说明
destination 外部表的名称,将数据插入表中。
tableexpression 表的名称,可从这些表中获取数据。这个变量可能是一个单独的表名,一个已存查询,或是 inner join, left join, 或 right join.
path 目录或文件的整个路径,而且这些目录或文件包含 table 。
type 数据库类型的名称,如果数据库不是 microsoft jet 数据库(例如 dbase iii、dbase iv、paradox 3.x或paradox 4.x),则用此类型创建 table 。
说明通过 in 你一次只可以连接一个外部数据库
在某些情况中,path 参数可引用包含数据库文件的目录。例如,当使用 dbase、foxpro或 paradox 数据库表时,path 参数将指定包含 .dbf 或 .db 文件的目录。由destination 或 tableexpression 参数可得到表文件的名称。
为了指定非 microsoft jet 数据库,可在名称之后附加分号 (;),并用单引号 (' ') 或 ( ) 双引号将它括入。例如可用 'dbase iv;' 或 dbase iv;这两种写法。
也可使用 database 保留字指定外部数据库。例如,以下示例指定相同的表:
... from table in [dbase iv; database=c:/dbase/data/sales;];
... from table in c:/dbase/data/sales dbase iv;
注意
为改进性能并方便使用,请使用链接表而不要用 in。
在表达式中也可用 in 保留字作为比较操作符。欲知更多信息,请看 in 操作符.
in 子句示例
下列表显示您如何使用 in 子句来捕获外部数据库的数据。在每一示例之中,假设客户表是保存在外部数据库之中。
外部数据库sql 语句
microsoft? jet 数据库 select customerid
from customers
in otherdb.mdb
where customerid like a*;
dbase iii 或 iv.
捕获数据由 一 dbase iii 表,以 dbase iii; 替代 dbase iv;。 select customerid
from customer
in c:/dbase/data/sales dbase iv;
where customerid like a*;
dbase iii 或 iv 使用数据库语法。 select customerid
from customer
in [dbase iv; database=c:/dbase/data/sales;]
where customerid like a*;
paradox 3.x 或 4.x.
若要由一paradox version 3.x 表捕获数据,以 paradox 3.x; 替代 paradox 4.x;。 select customerid
from customer
in c:/paradox/data/sales paradox 4.x;
where customerid like a*;
paradox 3.x 或 4.x 使用数据库语法. select customerid
from customer
in [paradox 4.x;database=c:/paradox/data/sales;]
where customerid like a*;
microsoft excel工作表 select customerid, companyname
from [customers$]
in c:/documents/xldata.xls excel 5.0;
where customerid like a*
order by customerid;
在工作表之中的一个命名范围 select customerid, companyname
from customersrange
in c:/documents/xldata.xls excel 5.0;
where customerid like a*
order by customerid;
以上摘自 microsoft jet sql 参考
jet 的类型为isam注册表中记录的所有类型。
例子:
文本文件  [text;database=文本文件路径].[文本文件名称]
select * from  [text;database=c:/temp].[test.txt]
excel  [excel 8.0;database=fullfilename].[sheetname]
            [excel 8.0;database=fullfilename].[sheetname$a1:b10]
            [excel 8.0;database=fullfilename].[name]
select * into [excel 8.0;database=c:/book1.xls].[sheet1] from customers
select * into [sheet1] in '' [excel 8.0;database=c:/book1.xls] from customers
select * into [sheet1] in 'c:/book1.xls' 'excel 8.0;' from customers
insert into [sheet1$] in '' [excel 8.0;database=c:/book1.xls] select * from customers
insert into [sheet1$] in 'c:/book1.xls' 'excel 8.0;' select * from customers
select * from [excel 8.0;database=c:/info.xls].[sheet1$a1:b5]
select * from  [excel 8.0;hdr=yes;imex=1;database=c:/info.xls].[sheet1$c5:b10]
select * from [c:/temp/access/db1.mdb].sc
select * from [;pwd=123;database=c:/temp/access/db1.mdb].sc
select * from table in odbc[odbc;driver={microsoft odbc for oracle};server=xe;uid=system;pwd=123;];
select * from [odbc;driver=sql server;server=servername;database=dbname;uid=sa;pwd=123].table1
其它类似信息

推荐信息