将Excel数据导入ACCESS数据库

手动方式:


请查看 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链接表]


4、根据扩展方法一(就是“3、”),还可以直接用 IN 子句来导入,但是相对链接表,性能、效率方面较差
insert into 表 SELECT * FROM [Excel 5.0;HDR=YES;DATABASE=c:/test.xls].[sheet1$];


相关内容可以参考: 
    如何查询其他数据库内的表(IN子句实例)? 
    http://access911.net/?kbid;71FAB21E17DC

 

编程方式:


请使用 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 属性。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C是一种编程语言,是由贝尔实验室的丹尼斯·里奇于20世纪70年代初开发的。C语言是一种通用的高级编程语言,被广泛应用于软件开发和系统编程领域。它具有简洁、高效的特点,被认为是一种非常有效的编程语言。 C语言具有丰富的语法和功能,可以用于开发各种类型的应用程序,例如操作系统、编译器、数据库系统、嵌入式系统等。C语言的语法规则相对简单,并且它允许直接访问计算机内存,使得程序员可以更加精确地控制程序的执行过程。 C语言具有许多优点。首先,它具有高度的移植性,可以在不同的计算机平台上运行。其次,C语言的执行速度非常快,这使得它成为开发高性能应用程序的首选语言。另外,由于C语言接近底层,可以直接控制硬件,因此非常适合于编写驱动程序和操作系统。 然而,C语言也有一些缺点。首先,它的学习曲线相对较陡峭,对于初学者可能会比较困难。其次,C语言不提供现代编程语言中常见的高级特性,如面向对象编程和垃圾回收机制。因此,在某些编程任务上,C语言可能不如其他编程语言更为方便快捷。 总体而言,C语言是一种强大而广泛使用的编程语言。它的简洁、高效和可移植性使其成为许多开发人员的首选语言。无论是新手还是经验丰富的程序员,都应该了解和掌握C语言的基础知识,因为它对于理解和学习其他编程语言都非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值