我是否可以将Excel数据导入?
作者:cg1 摘自:access911.net
问题:
我是否可以将Excel数据导入
回答:
手动方式:
请查看 Access 帮助:
帮助 - > 导入或链接数据和对象
如果手动
来自电子表格
导入或链接电子表格中的数据
在继续处理之前,要确保电子表格中的数据必须以适当的表格形式排列,并且电子表格每一字段(列)中都具有相同的数据类型、每一行中也都具有相同的字段。
打开数据库,或切换到打开数据库的“数据库”窗口。
执行下列操作之一:
若要导入电子表格,请在“文件”菜单上,指向“获取外部数据”,然后单击“导入”。
若要链接电子表格,请在“文件”菜单上,指向“获取外部数据”,然后单击“链接表”。
在“导入”(或“链接”)对话框中,选择“文件类型”框中的 “Microsoft Excel (*.xls)”。
单击“查找范围”框右侧的箭头,选定电子表格文件所在的驱动器和文件夹,然后双击其图标。
按照“导入数据表向导”对话框的提示进行操作。如果是从 Microsoft Excel 5.0 版或更高版本的工作簿中导入,则可以导入工作薄内的某个工作表。但不能从其他的多电子表格(例如 Microsoft Excel 4.0 版工作簿)文件中导入。若要导入这些文件,首先必须将每个工作表保存为一个单独的文件。
注意
可以导入或链接电子表格中的全部数据,或者只是来自指定范围单元格中的数据。尽管用户通常是在 Microsoft Access 中新建一个表来导入或链接,但只要电子表格列标题与表字段名相匹配,就同样可以在已有表上追加数据。
Access 将试图对导入的字段赋予合适的数据类型,但是应该检查字段,确认它们是否设置为所希望的数据类型。例如在 Access 数据库中,电话号码或邮政编码字段可能以数字字段导入,但在 Microsoft Access 中应该改为文本字段,因为这些类型的字段进行的任何计算都不是所希望的。必要时还应检查和设置字段属性(如设置格式)。
请注意,上面文章中其实仍然包含了两种做法和一种扩展做法:
1、直接用导入
2、用链接表
3、当你只是要导入EXCEL数据到现有的表中时,可以先链接某个xls文件,然后直接用 jet sql语句来做:
insert into [Access表名] (field1,field2) select field1,field2 from [xls链接表]
编程方式:
请使用 TransferSpreadsheet 方法
示例
下面的示例在 Lotus 电子表格 Newemps.wk3 的指定范围内将表导入到 Microsoft Access 的“Employees”表,并用电子表格中的第一行作为字段名。
DoCmd.TransferSpreadsheet acImport, 3, _
"Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"
在 Visual Basic 中,TransferSpreadsheet 方法执行 TransferSpreadsheet 操作。
expression.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)
expression 必需。返回“Applies To”列表中的一个对象的表达式。
TransferType 可选 AcDataTransferType。
AcDataTransferType 可以是下列 AcDataTransferType 常量之一:
acExport
acImport 默认
acLink
如果将该参数留空,将采用默认常量 (acImport)。
SpreadsheetType 可选 AcSpreadSheetType。
AcSpreadSheetType 可以是这些 AcSpreadSheetType 常量之一:
acSpreadsheetTypeExcel3
acSpreadsheetTypeExcel4
acSpreadsheetTypeExcel5
acSpreadsheetTypeExcel7
acSpreadsheetTypeExcel8 默认
acSpreadsheetTypeExcel9 默认
acSpreadsheetTypeLotusWJ2 - 仅适用于日文版
acSpreadsheetTypeLotusWK1
acSpreadsheetTypeLotusWK3
acSpreadsheetTypeLotusWK4
注意 可以链接 Lotus 1-2-3 电子表格文件中的数据,但是这些数据在 Microsoft Access 中是只读的。可以导入自和链接到 Lotus .WK4 文件,但是不能将 Microsoft Access 数据导出为这种电子表格格式。Microsoft Access 也不再支持使用该方法对 Lotus .WKS 或 Microsoft Excel 2.0 版电子表格数据的导入、导出或链接。
如果将该参数留空,将采用默认常量 (acSpreadsheetTypeExcel8)。
TableName 可选 Variant 型。字符串表达式,表示要向其中导入电子表格数据、从中导出电子表格数据或链接电子表格数据的 Microsoft Access 表的名称,或要将其结果导出到电子表格的 Microsoft Access 选择查询的名称。
FileName 可选 Variant 型。字符串表达式,表示要从其中导入、导出到或链接到的电子表格的名称与路径。
HasFieldNames 可选 Variant 型。使用 True (-1) 可以在导入或链接时,将电子表格中的第一行用作字段名。使用 False (0) 可以将数据表第一行看成普通数据。如果将该参数留空,则采用默认值 (False)。在将 Microsoft Access 表或选择查询数据导出到电子表格中时,无论为该参数输入了何值,字段名称都将插入到电子表格的第一行中。
Range 可选 Variant 型。字符串表达式,表示电子表格中单元格的有效范围或范围名称。该参数仅可用于导入。若要导入整个电子表格,请将该参数留空。导出到电子表格时,必须将该参数留空。如果输入了一个范围,导出将失败。
UseOA 可选 Variant 型。
说明
有关该操作及其参数如何使用的详细信息,请参阅该操作的主题。
语法中的可选参数允许留空,但是必须包含参数的逗号。如果将位于末端的参数留空,则在指定的最后一个参数后面不需使用逗号。
注意 还可以使用 ActiveX 数据对象 (ADO) 来创建链接。方法是,使用 Recordset 对象的 ActiveConnection 属性。