ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 初学ADO献上小作《电话簿管理系统》

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-6 22:13 | 显示全部楼层
本帖已被收录到知识树中,索引项:模板和开源系统
win2009 发表于 2012-9-6 22:00
ListView 能否在前一次查询的结果里查询?

请版主不吝赐教,谢谢

你的意思是说从ListView控件中查询?
可以把ListView数据当成一个表,或一个数组,下面是它和数组的关系,请参考:
  1. Private Sub 数据导出_Click()
  2.     Dim i%, j%, arr(), col%, m%
  3.     With ListView1
  4.         col = .ColumnHeaders.Count 'ListView列数
  5.         ReDim arr(1 To .ListItems.Count, 1 To col) '定义数组行数、列数同ListView
  6.         For i = 1 To .ListItems.Count '逐行
  7.             If .ListItems(i).Checked = True Then '选中
  8.                 m = m + 1
  9.                 arr(m, 1) = .ListItems(i)
  10.                 For j = 1 To col - 1
  11.                     arr(m, j + 1) = .ListItems(i).SubItems(j)
  12.                 Next
  13.             End If
  14.         Next
  15.     End With
  16.     Sheets("表七").[a65536].End(xlUp).Offset(1).Resize(m, col) = arr
  17. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2012-9-6 22:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
zhaogang1960 发表于 2012-9-6 22:13
你的意思是说从ListView控件中查询?
可以把ListView数据当成一个表,或一个数组,下面是它和数组的关系 ...

谢谢版主,好快,正在研究,谢谢

TA的精华主题

TA的得分主题

发表于 2012-9-6 23:09 | 显示全部楼层
zhaogang1960 发表于 2012-9-6 22:13
你的意思是说从ListView控件中查询?
可以把ListView数据当成一个表,或一个数组,下面是它和数组的关系 ...

我是这样实现的,但是这个只能单选,我想实现多选
这个的意思是:只要 某一行的值=TextBox1.Text,那么就保留,
删除其他记录,但是,当 TextBox1.Text 含有两个或多个条件时就不行了
结果只能保留一个,原因是删除行之后,行号变了,


Private Sub Label1_Click()
    Dim i As Integer, fx As String
    For i = ListView1.ListItems.Count To 1 Step -1
        If ListView1.ListItems(i).SubItems(5) <> TextBox1.Text Then
            ListView1.ListItems.Remove i
        End If
    Next
   
End Sub

下面的就是不成功的,3个条件,只剩  a  , 第一个,符合b c 的都删除了
没办法
我想 保留abc 任意符合一个的,请版主看看
Private Sub Label1_Click()
    Dim i As Integer, fx As String,arr
    arr = Array("a", "b", "c")
    For j = 0 To UBound(arr) - 1
        For i = ListView1.ListItems.Count To 1 Step -1
            If ListView1.ListItems(i).SubItems(5) <> arr(j) Then
                ListView1.ListItems.Remove i
            End If
        Next
    Next
    Label28.Caption = "共有[" & ListView1.ListItems.Count & "]条记录"
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-6 23:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
win2009 发表于 2012-9-6 23:09
我是这样实现的,但是这个只能单选,我想实现多选
这个的意思是:只要 某一行的值=TextBox1.Text,那么就 ...

第二个程序逻辑上有问题:
应该是3个条件同时都不满足 才删除
If ListView1.ListItems(i).SubItems(5) <> arr(0) And ListView1.ListItems(i).SubItems(5) <> arr(1) And ListView1.ListItems(i).SubItems(5) <> arr(2) Then

TA的精华主题

TA的得分主题

发表于 2012-9-7 00:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
zhaogang1960 发表于 2012-9-6 23:40
第二个程序逻辑上有问题:
应该是3个条件同时都不满足 才删除
If ListView1.ListItems(i).SubItems(5)  ...

谢谢斑竹,行了,但有一个问题,只有一个条件时arr(“a”)不是数组,错误

现在只能用mid()函数代替,并限制条件个数上限,能用了,谢谢,可帮了大忙

谢谢,

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-7 00:41 | 显示全部楼层
win2009 发表于 2012-9-7 00:34
谢谢斑竹,行了,但有一个问题,只有一个条件时arr(“a”)不是数组,错误

现在只能用mid()函数代替 ...

只有一个条件直接判断即可,就不用3个条件同时不满足

TA的精华主题

TA的得分主题

发表于 2012-9-7 02:02 | 显示全部楼层
zhaogang1960 发表于 2012-9-7 00:41
只有一个条件直接判断即可,就不用3个条件同时不满足

是的,谢谢版主

TA的精华主题

TA的得分主题

发表于 2012-9-9 17:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请版主各位老师给看看
为什么改变列名称后,
窗体不能向数据库增加新记录呀?
谢谢!!!
品质部人事管理系统QQ.zip (41.49 KB, 下载次数: 43)

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-9-9 18:47 | 显示全部楼层
少如 发表于 2012-9-9 17:15
请版主各位老师给看看
为什么改变列名称后,
窗体不能向数据库增加新记录呀?

原附件中有个约定:
ary(0) = Item '姓名存放到数组作为删除记录的姓名查询条件
ary(1) = .ListItems(Item.Index).SubItems(i - 1) '工作单位存放到数组作为删除记录的工作单位查询条件

我不知道你是怎么标记这两个条件的,如果你改变列名称后,也应该修改这两个条件

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-9-9 20:02 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 07:25 , Processed in 0.045184 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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