Office中国论坛/Access中国论坛

标题: 请教求助!如何实现窗体中输入关键字查询后将查询到的数据显示在liseview控件中? [打印本页]

作者: zwe45    时间: 2017-6-12 19:39
标题: 请教求助!如何实现窗体中输入关键字查询后将查询到的数据显示在liseview控件中?
新手!一直在坛子里潜水学习!跟着前辈们学了不少东西!
尝试着做了一个人员查询窗体,已经实现了大部分功能。但是现在有两个问题需要高手前辈们帮帮忙!
一是如何在此窗体内输入关键字后查询已指定的工作表数据,并将查询到的符合条件的数据行逐行显示在liseview控件中?(使用like吗?)
二是查询后显示的数据如何实现修改,删除功能?并将修改、删除后的结果覆盖数据源?
我想了好几天也想不出好的解决办法,尤其是第二个。请诸位帮忙给个思路!不过无论如何都先谢谢了!!
文件如下:

作者: zwe45    时间: 2017-6-12 19:40
本帖最后由 zwe45 于 2017-6-19 16:15 编辑

这是文件附件!
作者: zwe45    时间: 2017-6-12 19:41
先谢谢大家!
作者: zwe45    时间: 2017-6-12 19:47
是listview控件,不好意思打错了
作者: zwe45    时间: 2017-6-13 08:31
哪位能帮下忙呢?
作者: roych    时间: 2017-6-13 10:36
1、关键字……怎么说呢?不仅仅是like,还要考虑到多字段问题。你需要判断实际输入的到底是姓名还是身份证号码等等……因此需要进行一个先期处理。具体请参考:
http://www.office-cn.net/thread-61570-1-1.html
2、增删改查,一般用ADO处理居多。当然,你也可以按单元格写循环。不过个人不太建议这样做。

作者: zwe45    时间: 2017-6-13 11:31
roych 发表于 2017-6-13 10:36
1、关键字……怎么说呢?不仅仅是like,还要考虑到多字段问题。你需要判断实际输入的到底是姓名还是身份证 ...

谢谢管理员大人回复!
1、您给的这个是个ACCESS啊,但我这窗体用的是EXCEL加VBA啊,而且下载的压缩包还有密码。
2、我还是新手,ADO方面完全不了解啊!一般情况下的增加删除功能已经实现,代码在附件里。最难搞得是查询后的结果如何确定数据源位置并操作?
不过如何谢谢您的回复!
作者: zwe45    时间: 2017-6-13 15:30
roych 发表于 2017-6-13 10:36
1、关键字……怎么说呢?不仅仅是like,还要考虑到多字段问题。你需要判断实际输入的到底是姓名还是身份证 ...

方便的话能说下您给的例子压缩包密码是多少吗?
作者: zwe45    时间: 2017-6-13 17:07
无人理,唉
只好一个人折腾了半天,用本方法做的,哪位高手能修改下?
Private Sub CommandButton6_Click()
Dim i, j As Integer
If Trim(TextBox1.Text) = "" Then
Exit Sub
ElseIf ComboBox1.Text = "" Then
MsgBox "请选择类别!", 0, "提示"
Exit Sub
End If

ListView1.ListItems.Clear '清除listview1中的内容
    For i = 2 To Sheets(ComboBox1.Text).[A1048576].End(xlUp).Row
        For j = 1 To 10
            If Sheets(ComboBox1.Text).Cells(i, j) Like "*" & TextBox1.Text & "*" Then
            Set ITM = ListView1.ListItems.Add() '为listview1控件里面的行添加内容
            ITM.Text = Sheets(ComboBox1.Text).Cells(i, 1) '为行标赋值
            ITM.SubItems(1) = Sheets(ComboBox1.Text).Cells(i, 2)
            ITM.SubItems(2) = Sheets(ComboBox1.Text).Cells(i, 3)
            ITM.SubItems(3) = Sheets(ComboBox1.Text).Cells(i, 4)
            ITM.SubItems(4) = Sheets(ComboBox1.Text).Cells(i, 5)
            ITM.SubItems(5) = Sheets(ComboBox1.Text).Cells(i, 6)
            ITM.SubItems(6) = Sheets(ComboBox1.Text).Cells(i, 7)
            ITM.SubItems(7) = Sheets(ComboBox1.Text).Cells(i, 8)
            ITM.SubItems(8) = Sheets(ComboBox1.Text).Cells(i, 9)
            ITM.SubItems(9) = Sheets(ComboBox1.Text).Cells(i, 10)
            End If
        Next j
    Next i
End Sub

以上代码到时可以检索到并显示出来,问题是有些时候会出现很多重复的数据行,而且也无法进行删除修改操作。
哪位高手好心帮忙改改吧

作者: roych    时间: 2017-6-13 23:15
zwe45 发表于 2017-6-13 15:30
方便的话能说下您给的例子压缩包密码是多少吗?

解压密码:www.office-cn.net
写法是类似的。不过这段时间没空,只能草草评估下,说明下问题。估计要到七月中旬左右才有空去改代码。
作者: zwe45    时间: 2017-6-14 08:37
roych 发表于 2017-6-13 23:15
解压密码:www.office-cn.net
写法是类似的。不过这段时间没空,只能草草评估下,说明下问题。估计要到 ...

非常感激!!





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3