设为首页收藏本站

融智技术学院

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 327|回复: 6

[求助] vb模糊查询提示:对象关闭,不允许操作

[复制链接]
gdhyx1234 发表于 2014-9-4 10:17:27 | 显示全部楼层 |阅读模式
书上有个查询例子,加了 do while 循环,改为模糊查询, 提示:对象关闭,不允许操作.我的理解是数据库DBEmp或表emptable没有打开,如果没有打开的话,为什么不加do while 可以查到?代码如下:
   Option Explicit
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command


Private Sub cmdquery_Click()
  Set conn = New ADODB.Connection
  Set rs = New ADODB.Recordset
  Set cmd = New ADODB.Command

  conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                         "Data Source = F:\21天学通VB实例习题\17.2access数据库\DBEmp.mdb;" & _
                         "Persist Security Info=False"
  conn.Open
  cmd.CommandType = adCmdText
  cmd.ActiveConnection = conn

  
  Do While Not rs.EOF
    If Cboselect.Text = "编号" Then
       cmd.CommandText = "select * from emptable where 编号=" & Val(Txtquery.Text)
    Else
       cmd.CommandText = "select * from emptable where 姓名 like '%" & (Txtquery.Text) & "%'"
    End If
   rs.MoveNext
   Set rs = cmd.Execute
  Loop
  
  Set MSHFlexGrid1.DataSource = rs
  
  rs.Close
  conn.Close
  
End Sub

Private Sub Form_Load()
   Cboselect.AddItem "编号"
   Cboselect.AddItem "姓名"
End Sub

   谁能帮我看看,怎么改才能模糊查询?新手不太懂,麻烦说详细一点,最好有代码.谢谢.
  在do while 前加上: rs.open "select * from emptable",conn,adopenkeyset  程序出现未响应
 楼主| gdhyx1234 发表于 2014-9-5 10:35:32 | 显示全部楼层
不加do while 语句,可以实现模糊查询,但只能查一条记录. 数据库是用的access
sxyufeng 发表于 2014-9-8 12:33:28 | 显示全部楼层
gdhyx1234 发表于 2014-9-5 10:35
不加do while 语句,可以实现模糊查询,但只能查一条记录. 数据库是用的access

你对查询的理解偏差。只要查询,肯定会把查询的结构都得到。只是在rs中,每次能访问一个记录。想访问下一个记录,级需要使用rs.movenex,才行。
并且rs每次打开后,必须关闭,rs.close,才能重新打开。
 楼主| gdhyx1234 发表于 2014-9-9 10:28:48 | 显示全部楼层
谢谢 sxyufeng,中秋还来回答我的问题.我也用了do while 和rs.movenext,可出错了(程序见上),这又是哪里的问题?
sxyufeng 发表于 2014-9-9 13:17:55 | 显示全部楼层
gdhyx1234 发表于 2014-9-9 10:28
谢谢 sxyufeng,中秋还来回答我的问题.我也用了do while 和rs.movenext,可出错了(程序见上),这又是哪里的问 ...

你的循环用错了。你的循环把打开记录集也给循环了,所以造成上次执行的记录集还没有关闭,就又打开了。
大致思路应该是

rs=*************
do
     rs***
     rs.movenext
while

这个形式。
 楼主| gdhyx1234 发表于 2014-9-9 16:28:38 | 显示全部楼层
谢谢.我在试试
 楼主| gdhyx1234 发表于 2014-9-12 10:58:59 | 显示全部楼层
按sxyufeng的提示,经过几天的努力,终于可以实现模糊查询了.不守新人问题不少,所以新的问题又来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号  

GMT+8, 2018-2-23 20:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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