ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 在vba中使用SQL语句 更新表格

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-3-21 08:28 | 显示全部楼层 |阅读模式
各位老师:
我有2各表,1个是表1,另1个是表2.
现在想用表2中的内容 更新表1中的内容,代码如下:
cnn.Execute ("update 表1 inner join 表2 on 表1.编码='[表2.阀门编码]%' set 表1.机柜编号=表2.KKS,表1.机柜名称=表2.描述,表1.卷册=表2.卷册 where 表2.卷册='化工'")
但老是提示错误,为什么呢?


2013-3-21 8-19-47.png

TA的精华主题

TA的得分主题

发表于 2013-3-21 08:47 | 显示全部楼层
每个数据库都有自己的特性,并不一定所有的数据库都支持一样的用法

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-21 19:49 | 显示全部楼层
那么怎样修改呢,或是采用其他什么方式可以实现啊,谢谢

TA的精华主题

TA的得分主题

发表于 2013-3-22 10:33 | 显示全部楼层
wjn-0311 发表于 2013-3-21 19:49
那么怎样修改呢,或是采用其他什么方式可以实现啊,谢谢

字段后面的%含义是?......

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-23 15:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-3-23 20:06 | 显示全部楼层
[code=sql]update 表1
set 表1.机柜编号=表2.KKS
表1.机柜名称=表2.描述
表1.卷册=表2.卷册
from 表1
join 表2
on 表1.编码 like 表2.阀门编码+'%'
where 表2.卷册='化工'

update 表1
set 表1.机柜编号=(select 表2.KKS from 表2 where 表1.编码 like 表2.阀门编码+'%'),
        表1.机柜名称=(select 表2.描述 from 表2 where 表1.编码 like 表2.阀门编码+'%'),
        表1.卷册=(select 表2.卷册 from 表2 where 表1.编码 like 表2.阀门编码+'%')
where exists(select * from 表2 where 表1.编码 like 表2.阀门编码+'%' and 表2.卷册='化工')

update 表1
set (表1.机柜编号,表1.机柜名称,表1.卷册)=
(select 表2.KKS,表2.描述,表2.卷册 from 表2 where 表1.编码 like 表2.阀门编码+'%')
where exists(select * from 表2 where 表1.编码 like 表2.阀门编码+'%' and 表2.卷册='化工')
[/code]

TA的精华主题

TA的得分主题

发表于 2013-3-23 20:12 | 显示全部楼层
access 貌似不支持 update join 写法

表1.编码='[表2.阀门编码]%' 表示 表1.编码 等于 '' 内的字符串,我想你的本意并不是如此,所以自以为是的改了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-31 06:43 , Processed in 1.033969 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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