ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎么用ADO查询目标数据在数据库中是否存在?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-10-9 10:18 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
具体问题如下:
目前有A,B,C,D,4个工作薄,A是直接操作的,BCD三个是用作查询的数据库,可能打开,也可能不打开,
问:怎样可以使用ADO查询一下A表中的对象组成元素(B表中可查询到的数据1、2、3等等等)在CD表中是否存在?
转化成简单的示例在附件中,麻烦大神看下

Mysql1 = " select 对象 from [操作表$A1:B] where 对象 is not null "
Mysql2 = " select 对象,数据1,数据2,数据3 from [后台表1$A1:F] where 对象 is not null "
Mysql2 = " select a.对象,a.数据1,a.数据2,a.数据3 from (" & Mysql2 & ") a left join (" & Mysql1 & ") b on a.对象=b.对象 where b.对象 is not null   "
Mysql3 = " select 数据 from [后台表2$A1:F] where 数据 is not null "
Mysql4 = " select 数据 from [后台表3$A1:F] where 数据 is not null "
Mysql=?
我的SQL语句如上,MYSQL2查询到对象的各种元素,MySQL3\4查询到数据库内容,怎么用MySQL得出最终结果?


查询指定数据是否存在.JPG

查询指定数据是否存在.zip

17.86 KB, 下载次数: 7

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-9 11:06 | 显示全部楼层
有人知道该怎么写吗?在线等啊

TA的精华主题

TA的得分主题

发表于 2019-10-9 11:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 语虚何以言知 于 2019-10-9 11:25 编辑

你描述是4个工作簿
附件和代码是同一个工作簿下的四个工作表
请问到底是哪种情况?

还有疑问就是你按操作表关键字查询,join后得到4个字段(对象,数据1,数据2,数据3)的结果这个结果中数据1  数据2  数据3 的内容在后台表2于后台表3里面是否包含?

如果是这样的话,你模拟的结果中
BBBB  内容20 :确实在后台表2于后台表3找不到
EEEE  内容19 :内容19存在后台表2中的a20单元格

你给的逻辑中有我推测有相互矛盾的地方,不懂楼主的运算规则

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-9 11:22 | 显示全部楼层
语虚何以言知 发表于 2019-10-9 11:11
你描述是4个工作簿
附件和代码是同一个工作簿下的四个工作表
请问到底是哪种情况?

附件是简化版,就按一个工作薄中作就行了,我的难点在怎么查询数据123在后台表中是否存在

TA的精华主题

TA的得分主题

发表于 2019-10-9 11:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cjq253 发表于 2019-10-9 11:22
附件是简化版,就按一个工作薄中作就行了,我的难点在怎么查询数据123在后台表中是否存在

看下我3楼的帖子

TA的精华主题

TA的得分主题

发表于 2019-10-9 11:38 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-9 11:57 | 显示全部楼层
语虚何以言知 发表于 2019-10-9 11:11
你描述是4个工作簿
附件和代码是同一个工作簿下的四个工作表
请问到底是哪种情况?

1、帖子里是简化版,都放到一个工作薄里了,这里只按一个工作薄内处理即可;
2、join后得到的数据,即MySQL2结果,其中的数据1、2、3,正常情况下应该已经登入后台表2或3(至少已登入其中一个),否则就是异常,需要确认的;
3、例子中就是模拟了这种异常,希望通过ADO的方式查询并显示出来,
不知道我的表达是否清楚,如果还有含糊的地方,还请朋友指~

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-9 15:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

大神,你这串神码,花了很长的时间才大致看懂了一点(我是草鸡菜鸟),发现是将每一个数据都用left join 连接两次次,分别在后台表1、2中查询有无,
这个例子里面只列出了数据1、2、3三个,实际上我的表格里面的数据是有很多的,以后可能还会增加,迟早会增加到一个sql语句装不下的程度,SQL是否有其他更简便的写法啊?
这么超级长的sql语句驾驭起来好吃力。。。。

TA的精华主题

TA的得分主题

发表于 2019-10-9 16:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cjq253 发表于 2019-10-9 11:57
1、帖子里是简化版,都放到一个工作薄里了,这里只按一个工作薄内处理即可;
2、join后得到的数据,即My ...

EEEE  你模拟结果是数据3无

EEEE 的数据3 是内容19 ,在后台表2不是存在么,你为什么标记为数据3无?

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-10-9 16:58 | 显示全部楼层
语虚何以言知 发表于 2019-10-9 16:37
EEEE  你模拟结果是数据3无

EEEE 的数据3 是内容19 ,在后台表2不是存在么,你为什么标记为数据3无?

Σ( ° △ °|||)︴
是我例子做的不严谨,见笑~~
但是意思就是那样,要检查对象匹配的数据1、2、3是否已经在后台表2、3中登入,如果都没有,那就是异常,需要标示出来
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-26 13:18 , Processed in 0.045309 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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