ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: zouyuejian

[原创] ExcelVBA操作MySQL

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-8-15 09:47 | 显示全部楼层
本帖已被收录到知识树中,索引项:ADO技术
感谢楼主分享~

TA的精华主题

TA的得分主题

发表于 2013-10-14 16:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
大神,我有问题咨询。
Public Sub Allrecordset_in_RD()
   Dim Con As ADODB.Connection
   Dim Rec As ADODB.Recordset
   Dim iRowscount As Long
   Set Con = New ADODB.Connection
   Con.ConnectionString = "DRIVER={MySQL ODBC 5.2 Unicode Driver};Server=111.1.1.1;Port=3306;Database=xxx;UID=a;PWD=a;OPTION=3;Stmt=Set Names 'GBK';"
   Dim sqlString As String
   sqlString = "select * from t_program_update_autoapp_rd where qc_num_ like '%acv%'"
   Con.Open
   Set Rec = New Recordset
   Set Rec = Con.Execute(sqlString, iRowscount, adCmdText)
   Range("a1:ag1").Value = Array("pid", "no_", "qc_num_", "explain_", "module_", "developer_", "careful_", "release_domain_", "actual_version_", "ess_bss_", "code_file_", "tag_num_", "cvs_version_", "cvs_history_version_", "deposit_path_", "remarks_", "time_", "userid_", "code_code_", "source_", "insert_type_", "a4", "a5", "update_time_", "conflict_solve_info_", "beijing", "shandong", "heilongjiang", "hebei", "henan", "liaoning", "harvest", "modify_type_")
   '显示标题行
   Range("a2").CopyFromRecordset Rec
   Rec.Close: Set Rec = Nothing
   Con.Close: Set Con = Nothing
   MsgBox "显示 " & iRowscount & " 行", vbOKOnly, ""
   '显示查询记录
End Sub

为啥展现出的结果的行数正确(9行),A列的值正确(9行),但是其他列的值都是空白的?sql语句在数据库查询是正确的。
如果在Range("a2").CopyFromRecordset Rec加断点的话,就能显示第一行的完整数据,但是其他行还是不行。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-15 08:58 | 显示全部楼层
白马胖子 发表于 2013-10-14 16:38
大神,我有问题咨询。
Public Sub Allrecordset_in_RD()
   Dim Con As ADODB.Connection

没有实际数据看。我只有猜测:可能是字段的数据类型的问题。你尝试使用其他的数据类型看看。

TA的精华主题

TA的得分主题

发表于 2013-10-15 10:02 | 显示全部楼层
本帖最后由 白马胖子 于 2013-10-15 11:23 编辑
zouyuejian 发表于 2013-10-15 08:58
没有实际数据看。我只有猜测:可能是字段的数据类型的问题。你尝试使用其他的数据类型看看。


t_program_update_autoapp_rd.zip (1.26 KB, 下载次数: 19)

大神,附件是SQL建表语句,拜托您看看。

TA的精华主题

TA的得分主题

发表于 2013-10-15 14:40 | 显示全部楼层
大神,链接mysql时,text类型的字段显示不出。其他字段正常。有解决方案吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-10-15 18:06 | 显示全部楼层
白马胖子 发表于 2013-10-15 14:40
大神,链接mysql时,text类型的字段显示不出。其他字段正常。有解决方案吗?

我记得当时该问题无法解决。抱歉,如果你找到解决方法,也烦告诉我。

TA的精华主题

TA的得分主题

发表于 2013-10-16 10:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-11-20 18:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢,收藏了

TA的精华主题

TA的得分主题

发表于 2014-7-10 19:07 | 显示全部楼层
'使用AppendChunk添加文本数据。
'下面的例子用AppendChunk添加单元格文本到rem字段里?
Public Sub Addtext()
   Dim Con As ADODB.Connection
   Dim Rec As ADODB.Recordset
   Set Con = New ADODB.Connection
   Con.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};" + _
                          "Server=localhost;" + _
                          "DB=vbadb;" + _
                          "UID=VBA;" + _
                          "PWD=excel;" + _
                          "OPTION=3;" + _
                          "Stmt=Set Names 'GBK';"
   Con.Open
   Set Rec = New ADODB.Recordset
   Rec.Open "select * from animal", Con, adOpenDynamic, adLockOptimistic, adCmdText
   Rec.AddNew
   Rec("name").Value = Range("a1").Value
   Rec("rem").appendchunk Range("b1").Value
   Rec.Update
   Rec.Close: Set Rec = Nothing
   Con.Close: Set Con = Nothing
End Sub

为什么我把  Rec("rem").appendchunk Range("b1").Value  这条语句删除就能正常运行代码。
如果不删除的话一运行到Rec.Update这条语句就excel就会崩溃退出。


求大神回复。

TA的精华主题

TA的得分主题

发表于 2014-7-22 19:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
going ahead , studying
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-13 15:10 , Processed in 0.031848 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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