注册 登录
编程论坛 VB6论坛

VB6.0+access输入模糊查询求助

YWG202006 发布于 2020-07-06 13:21, 3312 次点击
求助目的:
  如何用VB实现输入关键字符时,在listbox1显示含有text1.text输入的字符,当选中并双击listbox1的记录时,把该条记录的3个字段内容分别填充到TEXT1、TEXT2、TEXT3中。
  ACCESS数据库名:YHXX,表名:YHB,字段名有3个:编号、用户名、密码
  恳请懂的老师帮忙。因为我是刚接触VB6.0(用的精简版),请给详细代码(最好有注释)。谢谢大家!

只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2020-7-6 13:24编辑过]

11 回复
#2
YWG2020062020-07-06 13:59
有没有老师有时间?请帮忙看下的。
#3
YWG2020062020-07-06 15:16
怎么都没有大师帮忙啊?
#4
cwa99582020-07-06 16:32
别急,大师现在不在。
你这个要用到数据库组件,精简版不知道能不能用。
你要先做好框架,放上数据库,这样别人好帮你完善代码。
text1作为输入框,又要输出数据,这样是不好的。还有你要text1查询哪个字段?

模糊查找的sql语句是:
select * form yhb where 用户名 like '%' & text1 & '%'

[此贴子已经被作者于2020-7-6 16:37编辑过]

#5
风吹过b2020-07-06 18:00
它这个代码,包含二个处理部分

1、初始化过程
读完整的表,把编号、姓名、密码组合成一个字符串,然后添加到 list1 中。
建议,不要把密码加进去,只添加 编号 + 姓名, 编号和姓名中间有一定的空格隔开来。确保能完整显示下数据,字体设为等宽字体,如宋体。

2、双击list1中。
读双击这行,取编号,然后按编号临时查表,查出三个字段,读到文本框中。

可以添加附加功能
3、修改
修改姓名和密码后,提供一个修改按钮。该按钮,把姓名和密码按编号生成修改的SQL命令,提交给数据库,同时更新list1这行。

4、添加新用户
提供一个新用户按钮。再添加一个保存按钮。
平时状态新用户按钮可用,保存按钮不可用。可以把这二个按钮重叠起来,新用户按钮在上面。
点击新用户按钮后,新用户按钮不可用,保存按钮可用。如果是重叠的,隐藏新用户按钮,显示保存按钮。同时其他按钮,如修改,删除这些与本功能的按钮均不可用。
点击新用户后,text1按数据库里的编号规律自动产生一个序号,不可修改,后面二个文本框清空,让用户输入
保存按钮,按编号、姓名、密码,生成SQL命令,保存到数据库。同时在LIST1最后添加本行记录。

5、删除。
提供删除按钮,点击后,根据编号(text1)到数据库中删数据,并且清掉list1中该行。

代码,没环境了,不写了。
#6
YWG2020062020-07-07 08:27
回复 5楼 风吹过b
谢谢老师的耐心解答
#7
YWG2020062020-07-07 08:27
回复 4楼 cwa9958
谢谢您的解答
#8
YWG2020062020-07-07 10:29
因为是刚入门,希望有大师能给详细代码。非常感谢。
#9
cwa99582020-07-07 13:01
好吧,写了个程序,给你参考。
只有本站会员才能查看附件,请 登录


程序代码:
Dim cn As New ADODB.Connection
Dim cnStr As String

Private Sub Form_Load()
'    打开数据库
    cnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\YHXX.mdb;Jet OleDb:DataBase Password=1234"
    cn.Open cnStr
   
End Sub

Private Sub Form_Unload(Cancel As Integer)
'关闭数据库
    cn.Close
   
End Sub

Private Sub List1_Click()
    Dim st()  As String
    st = Split(List1.Text, ",")
    Text2 = st(0)
    Text3 = st(1)
    Text4 = st(2)
End Sub

Private Sub Text1_Change()
   
    Dim rs As New ADODB.Recordset
    Dim rsStr As String
   
    List1.Clear
    rsStr = "select * from YHB where 用户名 like '%" & Text1 & "%'"
    rs.Open rsStr, cn, adOpenStatic, adLockOptimistic
   
    Do While Not rs.EOF
        List1.AddItem rs("编号") & "," & rs("用户名") & "," & rs("密码")
        rs.MoveNext
    Loop
    rs.Close
   
End Sub
#10
YWG2020062020-07-07 15:52
回复 9楼 cwa9958
由衷感谢 9楼 cwa9958老师 的耐心帮助,您的帮助已完全解决了我的问题。同时也感谢关注此贴的本论坛其他老师们。再次谢过。
#11
YWG2020062020-07-08 13:55
回复 10楼 YWG202006
你好老师,请问模糊查询的范围能不能扩展到包含2个或3个字段的内容字段,比如说当输入一个字时,它是在“编号”和“用户名”中查找,而不是仅在“用户名”字段中查找
#12
YWG2020062020-07-08 14:39
多字段已解决,和&连接,请各位老师不用再回复,谢谢
1