ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求教ODBC的UPDATE问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-3-4 17:37 | 显示全部楼层 |阅读模式
本帖最后由 microyip 于 2016-3-4 21:45 编辑

如图,想将数据库里的”字段1“与表格对应的数据的”字段1“相同的,数据库对应的那条记录的”字段2“全部设为”ABC“
%~Y]D3SSREMY3P`97BOAE_T.png
Function Excel_SQL()
'本例,数据库须存在GA_2016库,数据表SQLDB,并包含“字段1、字段2、字段3、字段4”
    Dim sSQL_Server As String
    Dim sSQL_Password As String
    Dim sDB_Name As String
    Dim sDBFormName As String
    Dim aExcel_Conn As ADODB.Connection
    Dim sSQL_Conn As String
    Dim sSQL_Case As String

    Application.ScreenUpdating = False
    sSQL_Server = "192.168.1.229"
    sSQL_Password = "RuningTime"

    sDB_Name = "GA_2016"
    sDBFormName = "SQLDB"

    Set aExcel_Conn = CreateObject("Adodb.Connection")
    aExcel_Conn.ConnectionString = _
        "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
    aExcel_Conn.Open
    sSQL_Conn = _
        "[ODBC;Driver={SQL Server};Server=" & sSQL_Server & ";Database=" & sDB_Name & ";UID=sa;PWD=" & sSQL_Password & ";]"

    sSQL_Case = "Insert Into " & sSQL_Conn & "." & sDBFormName & " Select * From [测试数据表$K1:N10] As R Where R.字段3<>'ExcelDB.3'"
    aExcel_Conn.Execute sSQL_Case
'Insert Into 语句执行正常

    sSQL_Case = "Select * From " & sSQL_Conn & "." & sDBFormName
    [测试数据表!U2].CopyFromRecordset aExcel_Conn.Execute(sSQL_Case)
'Select 语句执行正常

    sSQL_Case = "Update " & sSQL_Conn & "." & sDBFormName & " As W ,[测试数据表$K1:N9] As R Set W.字段2='ABC' Where W.字段1=R.字段1"
    sSQL_Case = "Update " & sSQL_Conn & "." & sDBFormName & " As W ,[测试数据表$K1:N9] As R Set W.字段2='ABC' Where W.字段1='aa'"
    Debug.Print sSQL_Case
    aExcel_Conn.Execute sSQL_Case
'无论哪句的Update 语句都无法执行

    aExcel_Conn.Close
    Set aExcel_Conn = Nothing
    Application.ScreenUpdating = True
End Function


求指正

求教ODBC的UPDATE问题.rar

22.66 KB, 下载次数: 78

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-4 20:49 | 显示全部楼层
我的问题真这么难么?看都有几十个人看,就是没人可以帮忙解决?

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-4 21:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
把分类改成求助,不知道有没有贵人帮助

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-9 15:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有没有贵人出现啊?自顶一下,希望来个贵人

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-9 16:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zoujialing 发表于 2016-3-9 16:15
你有没有试过反过来把connecting string改成SQL server的,然后在SQL string语句里加excel的连接参数,比如 ...

反过来试了,结果也是不行。感觉除了Update之外,其余的语句都能正常运行的

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-9 16:24 | 显示全部楼层
zoujialing 发表于 2016-3-9 16:15
你有没有试过反过来把connecting string改成SQL server的,然后在SQL string语句里加excel的连接参数,比如 ...

自此先谢过,感谢你给了我回复。现在能不能请求你,在你那里随便建个数据库,然后测试可以后,发附件给我,我自己可以参考修改的

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-9 22:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
fox_9741 发表于 2016-3-9 18:31
[测试数据表$K1:N9]
数据集可以支持这个一次更新多行的操作模式?
虽然有不循环直接从表格更新数据库的方 ...

这个是可以的

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-9 22:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zoujialing 发表于 2016-3-9 18:24
我这边没有SQL server的,都是access的.
https://www.connectionstrings.com/microsoft-ole-db-provider-f ...

首先要多谢你提供的信息,并且要夸你,全部是鸡肠,你都看懂,好腻害啊你!点赞
接着告诉你,这个信息没用-_-!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-3-11 10:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
唯有自顶来增加曝光率,看看哪位高手肯出手解决

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-4-2 07:57 | 显示全部楼层
见到有大师讲授ADO,于是又自顶一下自己的问题,以求曝光率
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-4 17:10 , Processed in 0.057827 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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