ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 想实现多对多的查询返回

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-16 17:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lsc900707 发表于 2018-7-16 17:20
写了一个字典的匹配过程,自己根据要求修改成工作表事件吧。

谢谢版主大大,我继续好好学习,争取能够天天向上!

TA的精华主题

TA的得分主题

发表于 2018-7-16 17:46 | 显示全部楼层
nancy4929 发表于 2018-7-16 17:36
谢谢大大,我按这个思路写的时候就一直offset的下标错误,现在可以继续学习了~

第2列 下拉菜单”A,B,C“是 手动添加 、复制的 ,没有用代码生成。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-17 09:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zopey 发表于 2018-7-16 17:46
第2列 下拉菜单”A,B,C“是 手动添加 、复制的 ,没有用代码生成。

对,我刚发现,所以这样就没办法动态添加了,也没办法改其他的了,想问下是哪里冲突了呢?

TA的精华主题

TA的得分主题

发表于 2018-7-17 10:30 | 显示全部楼层
sql肯定是可以实现的。不过这种运用事件的做法,sql效率不高。

写个你可以参考一下。

Sub 单条查询()
Dim cnn As Object
Dim Sql As String, i, s$
Set cnn = CreateObject("ADODB.CONNECTION")
For i = 2 To 4
    s = s & Cells(1, i) & "='" & Cells(3, i) & "' AND "
Next
s = Left(s, Len(s) - 4)
cnn.Open "Provider=Microsoft.Jet.OleDb.4.0;Extended Properties='Excel 8.0;HDR=YES'; Data Source=" & ThisWorkbook.FullName
Sql = "select 型号,产地,订货周期,单位 from [数据区$A1:G]  WHERE " & s
[E3:H3] = ""
[E3].CopyFromRecordset cnn.Execute(Sql)
cnn.Close: Set cnn = Nothing
End Sub


Sub 批量查询()
Dim cnn As Object
Dim Sql As String, i%, s$
Set cnn = CreateObject("ADODB.CONNECTION")
i = [b9999].End(3).Row
cnn.Open "Provider=Microsoft.Jet.OleDb.4.0;Extended Properties='Excel 8.0;HDR=YES'; Data Source=" & ThisWorkbook.FullName
Sql = "select B.型号,B.产地,B.订货周期,B.单位 from [查找区$b1:G" & i & "] A left join [数据区$A1:G] B ON A.类型=B.类型 AND A.规格=B.规格 AND A.品牌=B.品牌 where B.型号 is not null"
[E3:H6] = ""
[E3].CopyFromRecordset cnn.Execute(Sql)
cnn.Close: Set cnn = Nothing
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-17 10:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
魂断蓝桥 发表于 2018-7-17 10:30
sql肯定是可以实现的。不过这种运用事件的做法,sql效率不高。

写个你可以参考一下。

谢谢大大,主要是现在在学习,所以各种方式方法都想学学看。

另外我想问下,SQL和字典分别在什么情况下运算速度会比较占优势呢

TA的精华主题

TA的得分主题

发表于 2018-7-17 13:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
nancy4929 发表于 2018-7-17 10:46
谢谢大大,主要是现在在学习,所以各种方式方法都想学学看。

另外我想问下,SQL和字典分别在什么情况 ...

字典的优势大,如果你使用数据库。比如access 那就必须用sql了

sql代码比较简单。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-17 15:17 | 显示全部楼层
魂断蓝桥 发表于 2018-7-17 13:54
字典的优势大,如果你使用数据库。比如access 那就必须用sql了

sql代码比较简单。

好的,谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-10 02:31 , Processed in 0.021374 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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