|
楼主 |
发表于 2009-3-23 02:48
|
显示全部楼层
正点导入的代码介绍:
编程方式:
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”中,并用电子表格中的第一行作为字段名。
再例:
TransferType, SpreadsheetType, TableName, FileName,HasFieldNames,Range
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]
[ 本帖最后由 lichaobin 于 2009-3-23 03:09 编辑 ] |
|