用VB打开excel表格出现空值问题

luffy9202 2016-05-23 10:49:51
如题,通过Ado连接excel,获取excel中“顾客编号”,“顾客姓名”,“销售金额”三列值,并对“销售金额”进行汇总。其中“顾客编号”列已设置为文本类型,当“顾客编号”列中出现“0”开头的值时,得到的顾客编号为空值。请问如何解决?谢谢~
con.Open "provider=Microsoft.Jet.OLEDB.4.0;data source=" & txtPath.Text & ";Extended Properties=""Excel 8.0;hdr=yes;imex=1"""
rs.Open "select 顾客编号,顾客姓名,sum(销售金额) as 公司程序报单金额 from [sheet1$] group by 顾客编号,顾客姓名 order by 顾客编号", con, 3, 3
...全文
294 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZHRXJR 2016-05-25
  • 打赏
  • 举报
回复
看来你的顾客编号是数字,在EXCEL中,会自动判断是那种数据类型,在读取Excel时,按它的数据类型进行判断,因此,在VB中会出现错误,简单的方法是在读取是加一个判断语句: if Excel的顾客编号=0 then rs!顾客编号="0" 应该就可以了
of123 2016-05-25
  • 打赏
  • 举报
回复
试试改一下 "provider=Microsoft.Jet.OLEDB.4.0;data source=" & txtPath.Text & ";Extended Properties=""Excel 8.0;HDR=Yes;IMAX=1""" 如果不行,就只有加 Schema.ini 了。其中要有 MaxScanRows = 0 指定扫描所有记录。
赵4老师 2016-05-25
  • 打赏
  • 举报
回复
引用 3 楼 of123 的回复:
复杂一点的,在 Excel 文件同一路径下放一个 Schema.ini 文件,声明各列的类型、长度等属性。在网上搜一下 Schema.ini 。
这招够“独”!
luffy9202 2016-05-24
  • 打赏
  • 举报
回复
肿么没有人呀
luffy9202 2016-05-24
  • 打赏
  • 举报
回复
引用 2 楼 of123 的回复:
最简单的方法,顾客编号列不使用纯数字,例如在前面加上一个字母 "C"。
引用 3 楼 of123 的回复:
复杂一点的,在 Excel 文件同一路径下放一个 Schema.ini 文件,声明各列的类型、长度等属性。在网上搜一下 Schema.ini 。
顾客编号不是固定长度的,如果不对excel做改动,只改VB的代码有办法实现吗?
of123 2016-05-24
  • 打赏
  • 举报
回复
复杂一点的,在 Excel 文件同一路径下放一个 Schema.ini 文件,声明各列的类型、长度等属性。在网上搜一下 Schema.ini 。
of123 2016-05-24
  • 打赏
  • 举报
回复
最简单的方法,顾客编号列不使用纯数字,例如在前面加上一个字母 "C"。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧