Office中国论坛/Access中国论坛

标题: 数据导入问题 [打印本页]

作者: sinotrust    时间: 2010-12-26 20:39
标题: 数据导入问题
请问各位大侠,我想把EXCEL里面的数据导入到数据库里面的一个表里,现在老是出现两个问题:
第一个问题是数据导主的时候第一行会自动设为列题,可是这样就把里面表结构给坏掉了,
第二个问题是EXCEL里面的数据只有十几条,可是到了数据库里同会显示有几万条(可能是把EXCEL里面的数据里所有空白行都当成数据),
请问这两个问题怎么解决呀,急求大侠们回答,
作者: todaynew    时间: 2010-12-26 20:43
第一个问题解答:在导入命令的参数中有一个是设置是否导入标题的,好像是倒数第三个吧。你用F1查一下就知道了。如果是用宏的话,可在宏中直接设置。
第二个问题解答:导入后做一个删除,将空白行删除即可。
作者: sinotrust    时间: 2010-12-26 20:56
请问第一个问题如果用功能区的数据导入为什么不行呢?或者直接点数据导入也不行呢?
作者: sinotrust    时间: 2010-12-26 20:57
请问这个论坛里我为什么不能用五笔输入法呀?在其他的论坛我都可以用的。
作者: todaynew    时间: 2010-12-26 21:10
sinotrust 发表于 2010-12-26 20:56
请问第一个问题如果用功能区的数据导入为什么不行呢?或者直接点数据导入也不行呢?

TransferSpreadsheet 方法
参阅应用于示例特性在 Visual Basic 中,TransferSpreadsheet 方法执行 TransferSpreadsheet 操作。

expression.TransferSpreadsheet(TransferType, SpreadsheetType, TableName, FileName, HasFieldNames, Range, UseOA)
expression      必需。返回“应用于”列表中的一个对象的表达式。

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 型。

说明
有关该操作及其参数如何使用的详细信息,请参阅该操作的主题。

语法中的可选参数允许留空,但是必须包含参数的逗号。如果将位于末端的参数留空,则在指定的最后一个参数后面不需使用逗号。


注释  还可以通过使用 Recordset 对象的 ActiveConnection 属性,来使用 ActiveX 数据对象 (ADO) 创建链接。


示例
下面的示例在 Lotus 电子表格 Newemps.wk3 的指定范围内将表导入到 Microsoft Access 的“Employees”表,并用电子表格中的第一行作为字段名。

DoCmd.TransferSpreadsheet acImport, 3, _
    "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"


作者: sinotrust    时间: 2010-12-26 22:04
yunle
作者: sinotrust    时间: 2010-12-26 22:11
请问这个论坛里我为什么不能用五笔输入法呀?在其他的论坛我都可以用的。我只会五笔
作者: roych    时间: 2010-12-27 10:21
sinotrust 发表于 2010-12-26 20:39
请问各位大侠,我想把EXCEL里面的数据导入到数据库里面的一个表里,现在老是出现两个问题:
第一个问题是数 ...

第一个问题,如果害怕第一行给破坏掉,不妨作为链接表。不是什么都需要导入的,如果天天更新的数据,链接也不失为一个好方法。
第二个问题,您那几万行数据肯定被编辑过,不妨在Excel中把空行开始到结束都删除,再导入试试看?应该是不会再导入空白值了。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3