ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4065|回复: 10

[求助] copyfromrecordset后有1列数据没有导入,咋回事啊

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-1-27 16:40 | 显示全部楼层 |阅读模式
本帖最后由 785124365 于 2016-1-27 17:00 编辑

我想把“人民币跨境收入信息”表的数据,导入“监测周报模版”表,这两个文件在同一个文件夹下。
“人民币跨境收入信息”表的数据如下图所示,服务贸易收款金额 一列有数据。
原始数据.png
写的代码如下,不知道是不是有什么错误的地方,请大侠看看。
Private Sub CommandButton1_Click()
Dim msql As String, conn As Object, i As Integer
    Application.ScreenUpdating = False   
    Worksheets("数据源").Range("A:iv").Clear
    Set conn = CreateObject("adodb.connection")
    Set rs = CreateObject("adodb.Recordset")
    conn.Open ("provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.Path & "\人民币跨境收入信息.xls")
    msql = "Select *,'收入' as 收支 from [" & ThisWorkbook.Path & "\人民币跨境收入信息.xls`.`sheet1$]"   
    rs.Open msql, conn, 1, 3
    '拷贝后数据缺失很严重,货物贸易、服务贸易等都有缺失
    For i = 1 To rs.fields.Count
       Worksheets("数据源").Cells(1, i).Value = rs.fields(i - 1).Name
    Next
    i = 0
    Range("A2").CopyFromRecordset rs   
    Columns("A:Z").EntireColumn.AutoFit
    [A1].Resize(1, rs.fields.Count).Font.Bold = True      
   conn.Close: Set conn = Nothing
    Set rs = Nothing   
    Application.ScreenUpdating = True
End Sub

但是运行代码后,导入的数据中,服务贸易收款金额 一列数据为空白,其他列的数据都导入正常。
导入数据.png


TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-27 17:09 | 显示全部楼层
我把附件上传

净流入表模板 - excelhome.rar (39.9 KB, 下载次数: 33)


TA的精华主题

TA的得分主题

发表于 2016-1-27 17:36 | 显示全部楼层


你把“人民币跨境收入信息”表另存为07版以上的,然后改下 provider,我测试成功
"provider=Microsoft.ACE.OLEDB.12.0;extended properties=excel 12.0

TA的精华主题

TA的得分主题

发表于 2016-1-27 17:46 | 显示全部楼层
把 人民币跨境收入信息 表 改为 07版以上的,然后把provider改为:provider=Microsoft.ACE.OLEDB.12.0,我测试成功,没有数据丢失

TA的精华主题

TA的得分主题

发表于 2016-1-27 17:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不知道为啥,刚才一直跟不了贴,再发一次把。
把“人民币跨境收入信息”表改为07版以上,然后把provider改为
provider=Microsoft.ACE.OLEDB.12.0, 我测试成功,没有数据丢失。

TA的精华主题

TA的得分主题

发表于 2016-1-27 18:35 | 显示全部楼层
人民币跨境收入信息是从数据库中导出来的吧,最后两列数据区内的空格不是真空格,建议用常规法处理,或删除最后两列的空格:
净流入表模板 - excelhome.rar (39.48 KB, 下载次数: 45)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-27 20:20 | 显示全部楼层
xiaohuaxiong 发表于 2016-1-27 17:55
不知道为啥,刚才一直跟不了贴,再发一次把。
把“人民币跨境收入信息”表改为07版以上,然后把provider改 ...

谢谢,单位电脑统一装的2003,所以不便修改为07格式

TA的精华主题

TA的得分主题

发表于 2016-1-27 20:20 | 显示全部楼层
使用常规法可避免这个问题:
净流入表模板 - excelhome.rar (38.28 KB, 下载次数: 88)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-27 20:44 | 显示全部楼层
zhaogang1960 发表于 2016-1-27 20:20
使用常规法可避免这个问题:

尝试了下,常规方法完美解决,谢谢大侠。
“人民币跨境收入信息”是我从数据库下载的表,有好几十列,所以我想通过sql把需要的几个字段 筛选出来,没想到有的列拷不到数据。刚才删除后面3列的空格,也可以正常导入。
真奇怪,单元格内为什么有空格就拷贝不过来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-27 20:50 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 14:19 , Processed in 0.040414 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表