ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助窗体listbox控件问题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-11 15:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
tanglf188 发表于 2024-4-11 13:54
请参考。。。。。。。。

优化了一下查找功能,就是在textbox6输入查找条件时自动显示,不需要再通过命令按钮,我向请教一下老师,现在有个问题,为啥我的listbox显示的标题错误,全部在第一列上显示。
代码如下:

Public Sub RefreshListBox()
    Dim Conn_object As Object
    Dim Reco_object As Object
    Dim Conn_str As String
    Dim Path_str As String
    Dim Sele_str As String
    Dim i As Integer
    Dim searchStr As String
   
    ' 获取 TextBox6 的文本作为搜索条件
    searchStr = TextBox6.Value
   
    ' 清除 ListBox 中的现有数据
    Me.ListBox1.Clear
   
    ' 建立数据库连接
    Set Conn_object = CreateObject("ADODB.Connection")
    Set Reco_object = CreateObject("ADODB.RecordSet")
    Path_str = ThisWorkbook.Path & "\电动车台账.accdb"
    Conn_str = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
             "Data Source=" & Path_str & ";" & _
             "Persist Security Info=False;" & _
             "Jet OLEDB:Database Password=''"
   
    ' 打开数据库连接
    Conn_object.Open Conn_str
   
    ' 根据 searchStr 的值构建 SQL 查询
    If searchStr = "" Then
        ' 如果 searchStr 为空,则加载所有数据
        Sele_str = "SELECT * FROM [1栋电动车台账]"
    Else
        ' 如果 searchStr 不为空,则构建筛选条件
        ' 注意:这里假设 searchStr 已经被清理和格式化,以避免SQL注入风险
        Sele_str = "SELECT ID, 房号, 电动车品牌, 车牌号码, 联系电话, 填写日期 FROM [1栋电动车台账] WHERE 房号 = '" & searchStr & "' OR 电动车品牌 = '" & searchStr & "' OR 车牌号码 = '" & searchStr & "' OR 联系电话 = '" & searchStr & "'"
    End If
   
    ' 执行查询并填充 ListBox
    Reco_object.Open Sele_str, Conn_object, 1, 3
    If Reco_object.RecordCount > 0 Then
        ' 设置 ListBox 的列数
        Me.ListBox1.ColumnCount = Reco_object.Fields.Count
        
        ' 添加列标题
        For i = 0 To Reco_object.Fields.Count - 1
            Me.ListBox1.AddItem Reco_object.Fields(i).Name
        Next i
        
        ' 添加数据行
        Do Until Reco_object.EOF
            Me.ListBox1.AddItem "" ' 添加新行
            For j = 0 To Reco_object.Fields.Count - 1
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, j) = Reco_object.Fields(j).Value
            Next j
            Reco_object.MoveNext
        Loop
    End If
   
    ' 关闭 Recordset 和 Connection
    Reco_object.Close
    Conn_object.Close
    Set Reco_object = Nothing
    Set Conn_object = Nothing
End Sub

listbox标题显示错误

listbox标题显示错误

电动车登记系统3.rar

62.39 KB, 下载次数: 1

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

本版积分规则

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

GMT+8, 2024-11-17 18:50 , Processed in 0.030308 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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