Office中国论坛/Access中国论坛

标题: 从Excel导入为什么没有第一行 [打印本页]

作者: zyp    时间: 2016-11-29 20:10
标题: 从Excel导入为什么没有第一行
用下面代码取得excel文件中的数据, 为什么总是读取不到第一行的数据

Dim ExcelCn As New ADODB.Connection, ExcelRs As New ADODB.Recordset
ExcelCn.Open "Data Provider=MSDASQL.1;driver=Microsoft Excel Driver (*.xls);DBQ=D:\a.xls"
ExcelRs.Open "select * from [Sheet1$]", ExcelCn, adOpenKeyset, adLockReadOnly

Do Until ExcelRs.EOF
        Debug.Print ExcelRs.Fields.ITEM(0).Value        
        ExcelRs.MoveNext
Loop

也就说只能从第二行开始读取数据,第一行直接忽略了

请各位大侠帮忙看一下,谢谢!
作者: tmtony    时间: 2016-11-29 22:53
要设置不取标题行即可。一下子忘记是哪个参数了,

作者: Henry D. Sy    时间: 2016-11-29 23:45
本帖最后由 Henry D. Sy 于 2016-11-29 23:48 编辑

sConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Files\Sales.xlsx;" & _
"Extended Properties=""Excel 12.0;HDR=No"";"


excel版本号换成你的版本号


作者: roych    时间: 2016-11-30 10:42
改成这样再试试:ExcelCn.Open "Data Provider=MSDASQL.1;driver=Microsoft Excel Driver (*.xls);DBQ=D:\a.xls;hdr=yes"
作者: roych    时间: 2016-11-30 10:44
Henry D. Sy 发表于 2016-11-29 23:45
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Files\Sales.xlsx;" & _
"Extend ...

如果是2003版本或以下,数据库引擎好像也要改:
Provider=Microsoft.jet.OLEDB.4.0;
作者: zyp    时间: 2016-11-30 21:41
tmtony 发表于 2016-11-29 22:53
要设置不取标题行即可。一下子忘记是哪个参数了,

谢谢站长
作者: zyp    时间: 2016-11-30 21:45
Henry D. Sy 发表于 2016-11-29 23:45
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Files\Sales.xlsx;" & _
"Extend ...

谢谢版主

我用
ExcelCn.Open "Provider=Microsoft.ACE.OLEDB.11.0;Data Source=D:\a.xls;Extended Properties=""Excel 11.0;HDR=No"";"

出错,提示” 未找到提供程序。该程序可能未正确安装。“ 错误代码为3706

我的ACCESS和EXCEL都是2003版的,按理说版本号应该是11.0的,不知为什么会有这样的错误
作者: zyp    时间: 2016-11-30 21:48
roych 发表于 2016-11-30 10:42
改成这样再试试:ExcelCn.Open "Data Provider=MSDASQL.1;driver=Microsoft Excel Driver (*.xls);DBQ=D:\a ...

谢谢roych, 改了,好像没有用
作者: zyp    时间: 2016-11-30 21:49
roych 发表于 2016-11-30 10:44
如果是2003版本或以下,数据库引擎好像也要改:
Provider=Microsoft.jet.OLEDB.4.0;

改成下面这样

ExcelCn.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=D:\a.xls;Extended Properties=""Excel 11.0;HDR=No"";"


提示不可识别的数据库格式 ’D:\a.xls

不知什么原因
作者: roych    时间: 2016-12-1 10:00
zyp 发表于 2016-11-30 21:49
改成下面这样

ExcelCn.Open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=D:\a.xls;Extended Prope ...

好像一般是8.0或者9.0。11.0这个版本表示没听说过。
作者: Henry D. Sy    时间: 2016-12-2 10:53
本帖最后由 Henry D. Sy 于 2016-12-2 10:55 编辑
zyp 发表于 2016-11-30 21:45
谢谢版主

我用

Try:
  1. Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myOldExcelFile.xls;
  2. Extended Properties="Excel 8.0;HDR=NO";
复制代码

作者: zyp    时间: 2016-12-7 16:19
roych 发表于 2016-12-1 10:00
好像一般是8.0或者9.0。11.0这个版本表示没听说过。

谢谢roych!

改成8.0或9.0,还会是同样的错误




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