Access中用 VBA实现导入导出功能(使用实例技巧)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

什么情况下用链接表,什么情况用导入表功能
何时使用导入或联接
在Access中,可以很方便地从外部数据库中获取数据,这些数据库包括现在所有的各种主流数据库,像Dbase、Sybase、Oracle、Foxpro等。

这样你就不用去一个一个地重新输入原来的数据了。

在Access中,可以用“获取外部数据”命令来获取外部数据库的数据,这个命令包括两种方式“导入”和“链接表”。

对于不同的外部数据库可以用不同的获取方式。

而且在Access 中,不光可以获取外部数据,还可以导出别的数据库,就是将用Access建立的数据库保存为别的数据库形式,像FOXPRO,DBASE数据库等。

单击“文件”菜单中的“获取外部数据”项,弹出一个子菜单,上面有“导入”和“链接表”两个选项。

我们单击其中的一个选项就可以实现导入或联接一个外部的数据库。

虽然这两个命令的功用都是打开外部的一个数据库,并从中获取需要的数据,但在使用上,还是有差别的。

在我们使用“导入”这个方法来获取外部数据时需要注意几个条件。

一、需要我们打开的数据库文件相对来说比较小,而且不会被其他数据库应用程序的用户频繁更改。

二、不需要与其他数据库应用程序的用户共享数据。

三、你正在替换以前的数据库应用程序,而且不再需要以前的数据格式。

四、在使用其他数据库中的数据时,需要最佳性能。

使用“链接表”方法来获取外部数据时也需要注意几个条件:
一、需要打开的文件比较大,甚至比本地Access数据库的最大容量(1GB)还要大。

二、这个文件经常被其他数据库应用程序的用户更改。

三、必须在网络上与其他数据库应用程序的用户共享这个文件。

四、需要把应用程序分布到几个单独的用户那里,而且,你可能要不断更新开发的应用程序接口,将“应用程序”与数据分开可以更容易地更新应用程序,而不会干扰用户积累的数据。

这就是为什么要在“获取外部数据”这个过程当中设置两种方法。

如果要用的数据库并不大,但每天都可能要修改,而且由几个人来修改不同的部分,对于这种情况,最重要的是每天都有新的数据要处理,而单纯的将表导入进来,由于在Access中开发新的系统需要一定的时间,在这段时间内就有可能有新的数据输入进来。

开始导入的数据就有很多可能已经更新了。

所以这
时使用“链接表”就不会出现这种问题,干扰到别的用户积累的数据。

当然在Access中执行现在这台机器上的数据库文件是最快的,使用链接常常会因为很多原因使你的工作变得很慢,这点是你必须考虑的。

导入表的高级功能-规格文件
哈,原来导入的字段类型,分隔符,宽度都是可能在菜单里具体定义的。

而且规格文件还可以保存待下次手工再导就不用设了。

多方便。

这么好用的功能,大家都会想,它的VBA代码的导入方法是什么呢?如果用遍历来那不是可以批量导入了。

那真是帅呆了。

呵呵。

以下我的笔记:
我是否可以将Excel数据导入?
可以,手动方式:
打开数据库,或切换到打开数据库的“数据库”窗口
若要导入电子表格,请在“文件”菜单上,指向“获取外部数据”,然后单击“导入”。

若要链接电子表格,请在“文件”菜单上,指向“获取外部数据”,然后单击“链接表”。

在“导入”(或“链接”)对话框中,选择“文件类型”框中的“Microsoft Excel (*.xls)”。

单击“查找范围”框右侧的箭头,选定电子表格文件所在的驱动器和文件夹,然后双击其图标。

若要导入这些文件,首先必须将每个工作表保存为一个单独的文件。

且电子表格列标题与表字段名相匹配,才可以在已有表上追加数据。

请注意,上面文章中其实仍然包含了两种做法和一种扩展做法:
1、直接用导入
2、用链接表
3、当你只是要导入EXCEL数据到现有的表中时,可以先链接某个xls文件,然后直接用jet sql语句来做:
insert into [Access表名] (field1,field2) select field1,field2 from [xls链接表]
正点导入的代码介绍
编程方式:
TransferSpreadsheet方法与transfertext方法有相似之处:
导入导出数据库方式:
文本transfertext方法:
DoCmd.TransferText(TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName,CodePage)
表格TransferSpreadsheet方法
DoCmd.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)
执行命令.TransferSpreadsheet(TransferType:=acImport默认方式或acLink链接方式导入导出, SpreadsheetType:=导入导出EXCEL表类型),TableName:=Access表名,FileName:=EXCEL表名,HasFieldNames:=-1为一行作表标题,0则不作,Range:=导入表格区域)
SpreadsheetType、SpecificationName 前者为EXCEL版本类型,后者即创建导入导出规格的分隔格式文件名称,一般同夹使用。

如:schema.ini 文件为系统默认固度宽度文件.如该参数留空,则取默认的导入/导出规格
在导文本中,特别留意其SpecificationName参数.
schema.ini 文件为系统默认文本导入规格文件.不过这个文件不知道怎么查看,在导入文本文件中有指引学习与修改.
更简单的是自己录一个规格文件,即外部数据源-导入表-高级-规格文件保存.该规格表在本数据库里,它隐藏了,只要打开选项,将
去掉勾在表模块中就可以看到规格表了.即(MSysIMEXcolumns、MSysIMEXspecs).
例:TransferType常量AcTextTransferType如下:
ac为常量类型,Ex为出,Im为入.link为链接型形式
Link为链接,Delim定义分隔符,Fixedl固定宽度,Merge为Word for windows合并文件
导出分隔符导入分隔符链接表分隔符
acExportDelim acImportDelim 默认acLinkDelim
导出固宽符导入固宽符链接表固宽符
acExportFixed acImportFixed acLinkFixed
导出HTML 导入HTML 链接HTML
acExportHTML acImportHTML acLinkHTML
导出WORD格式
acExportMerge
其实他们多是是可选参数,有默认值的:只用这个就行:
DoCmd.TransferSpreadsheet , ,"Employees","C:\1.xls", True, "A1:G12"
上面示例1.xls指定范围内将表导入到access的表“Employees”中,并用电子表格中的第一行作为字段名。

再例:
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "juan", "c:\d.xls", True, "sheet!"
默认方式导入, Excel版本类型, "access表名", "xls薄名",是否有行标题,"工作表!"
导入表中的另类方法:
如果一个工作薄里有多个表要导入,也可以使用如下方法:
一个按钮导入四个工作表到数据库:
例子:
假设已经建好数据库myAccessTable那么:
以下为插入指定记录的代码:(有表头)
insert into myAccessTable
select * from [EXCEL 8.0;DATABASE=C:\info.XLS].[sheet1]
union all
select * from [EXCEL 8.0;DATABASE=C:\info.XLS].[sheet2]
union all
select * from [EXCEL 8.0;DATABASE=C:\info.XLS].[sheet3]
union all
select * from [EXCEL 8.0;DATABASE=C:\info.XLS].[sheet4]
规格文件在哪里查看?在代码里怎么用?
在导文本中,特别留意其SpecificationName参数.
schema.ini 文件为系统默认文本导入规格文件.不过这个文件不知道怎么查看,在导入文本文件中有指引学习与修改.
更简单的是自己录一个规格文件,即外部数据源-导入表-高级-规格文件保存.该规格表在本数据库里,它隐藏了,只要打开选项,将
去掉勾在表模块中就可以看到规格表了.即(MSysIMEXcolumns、MSysIMEXspecs).
一种方法:有了手工保存的规格文件,在代码文件里直接调用它。

另一种方法:用Schema.ini 文件也可以达到要求。

作用:Schema.ini用于提供文本文件中记录的构架信息。

每个Schema.ini 项都用于指定表的五个特征之一:
1、文本文件名
2、文件格式
3、字段名、字段长度、字段类型
4、字符集
5、特别数据类型转换
指定文件名
文件名要用方括号括起来,例如如果要对Sample.txt 使用数据构架信息文件,那么它的对应的项应该是
[Sample.txt]。

相关文档
最新文档