ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] listview实现真正的连续模糊查询+多次选择

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-15 14:17 | 显示全部楼层
wowo000 发表于 2018-6-15 12:52
其实俺是想既可以模糊查询,又可以下拉查询。



好了。加回去了。

当选择订单号时,按订单号+产品号查询,订购数为该订单数

当订单号选项为空时,只按产品号模糊查询,订购数为0

1.png

listview查询同步刷新.zip (82.52 KB, 下载次数: 354)

TA的精华主题

TA的得分主题

发表于 2018-6-15 14:17 | 显示全部楼层
老师,这是附件。

送货开单.rar

114.65 KB, 下载次数: 99

TA的精华主题

TA的得分主题

发表于 2018-6-15 14:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一定要加上您回复俺的“listview查询同步刷新 ”这段“天姿国色”思路代码!ComboBox1下拉查询录入表,自动减少。当然还请您得让我TextBox1模糊查询。

TA的精华主题

TA的得分主题

发表于 2018-6-15 16:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢您这快的回复!还不是我想要的意思。麻烦您看看我的《送货开单》附件,查询和写入单据基本好了,就是“F”列的公式去不了。还有展开后的添加修改删除问,还是一头雾水。恳请老师帮俺看看。去掉“F列的公式。和斧正我瞎弄的添加、修改、删除乱码’”!谢谢!!!!!
新图片.png

TA的精华主题

TA的得分主题

发表于 2018-6-15 16:56 | 显示全部楼层
当然,烦请老师将按合同号查询,写人单据时逐步减少提示代码加进去。也就是俺说的“天姿国色”代码。即您回俺的“listview查询同步刷新”第一次的代码。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-16 00:31 | 显示全部楼层
本帖最后由 ivccav 于 2018-6-16 08:16 编辑
wowo000 发表于 2018-6-15 16:56
当然,烦请老师将按合同号查询,写人单据时逐步减少提示代码加进去。也就是俺说的“天姿国色”代码。即您回 ...



你的代码有近400行,功能繁多。我要搞明白,也得看半天。
这么复杂的问题,应该先把业务逻辑想清楚。先传附件给你,你先看看吧,不行再改。
虽然你有代码,但是重新写代码和读懂别人代码花的时间也差不多,最重要的是得搞清楚逻辑。
你自己先修改,问问题就可以只问关键部分即可。你这么庞大的问题,回答起来很花时间的。===================================================

你的品号和品名都不是唯一的,我没法定位该产品来自哪一行,我在数组arr中加入了行号。
每个产品都应该有一个唯一的标识。你右上角的两个选项控件我删掉了,你点“添加”时,
程序会自动查询“货物表”中是否有该品名,如果有,就不添加该产品;在订单号栏非空时,
自动查询是否有该订单,如果无,则自动添加新单,如果已有该单,且该订单中没有当前
产品,则自动把当前产品添加到该订单中。

需要增加删除订单按钮,删除产品和订单不能共用一个按钮。

所有的数据都在arr中,你在查询数据时不用再去工作表中匹配,那样速度会比较慢。

送货开单.zip (102.02 KB, 下载次数: 199)

TA的精华主题

TA的得分主题

发表于 2018-6-16 09:53 | 显示全部楼层
       衷心感谢您,老师!!还要点小要求:能不能在TextBox1里实现您之前的“listview实现真正的连续模糊查询”?因为TextBox1只能按货号查询,我这有几千条产品资料,开单时滚动listview垂直滚动条找太麻烦,如果在TextBox1里用“货号&名称/型号/规格&颜色&单位&单价&订购量”模糊查询就方便多了。即:ComboBox1为空时可模糊查询,ComboBox1有合同号时也可以模糊查询。另,“货物表”里的“F”列的公式可以去掉了吧?
      恳请老师回复,就差这点了。
      在此先谢谢了!
颂:祺安!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-16 10:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 ivccav 于 2018-6-16 10:24 编辑
wowo000 发表于 2018-6-16 09:53
衷心感谢您,老师!!还要点小要求:能不能在TextBox1里实现您之前的“listview实现真正的连续模糊 ...

F列的公式我没有使用,太慢了。你删掉吧。不过那一列我在数组中已经使用,
我填入了行号。你不要在工作表中F列写数据,写了也没有用的。

要想多条件模糊查询,可以把需要的条件串接起来,然后用Instr函数。
我的建议只要品号+品名,最多加个颜色,因为其他条件,比如单位等重复
太多,没有查询的意义。查询的时候要选择重复性少的内容作为条件。
下面代码能实现品号/品名/颜色三个条件模糊查询。你在你的文件中修改这段即可。
副本Xl0000015.zip (157.28 KB, 下载次数: 263)

00.png

    If listCnt > 0 Then
        For i = 2 To UBound(arr)
            If col Then con = (Val(arr(i, col)) > 0) Else con = True
            s = arr(i, 1) & "/" & arr(i, 2) & "/" & arr(i, 3) '品号/品名/颜色
            If InStr(s, tb1) > 0 And con Then
                For j = 1 To listCnt
                    If arr(i, 6) = ListView1.ListItems(j).SubItems(6) Then GoTo Line1
                Next
                addItm i, col
            End If
Line1:
        Next
    Else
        For i = 2 To UBound(arr)
            If col Then con = (Val(arr(i, col)) > 0) Else con = True
            s = arr(i, 1) & "/" & arr(i, 2) & "/" & arr(i, 3)
            If InStr(s, tb1) > 0 And con Then
                addItm i, col
            End If
        Next
    End If




TA的精华主题

TA的得分主题

发表于 2018-6-16 12:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-6-17 07:16 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-23 14:30 , Processed in 0.048397 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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