标题:求助,关于记录删除
只看楼主
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
 问题点数:0 回复次数:6 
求助,关于记录删除
首先运行查找按钮查找到相关记录
Private Sub CmdOK_Click()
    Set rs = New ADODB.Recordset
   
            sql = "SELECT * from domainname where 姓名 like '%" & Text1.Text & "%'"
      
    rs.Open sql, conn, adOpenKeyset, adLockOptimistic
   
    If Not rs.BOF And Not rs.EOF Then
        rs.MoveFirst
        Call Mainfrm.TxtView
        Mainfrm.CmdDel.Enabled = True
        Mainfrm.CmdUp.Enabled = True
        Mainfrm.CmdDown.Enabled = True
        Call Mainfrm.MSF
        Unload Me
    Else
        MsgBox "要查找的用户不存在", , "提示!"
    End If
   
End Sub
然后删除这条记录
Private Sub CmdDel_Click()
      
    If Not rs.EOF And Not rs.BOF Then
        rs.Delete
        MsgBox "删除成功", , "提示!"
        rs.Update
        rs.MoveNext
'        conn.Execute "delete from domainname where 姓名='" & TxtName.Text & "'"
        
        If Not rs.BOF And Not rs.EOF Then
            Call TxtView
            Call MSF
        Else
            Call TxtNull
            MSFlexGrid1.Clear
        End If
        
    End If
   
End Sub
删除不了,请帮忙看看
搜索更多相关主题的帖子: Mainfrm True Enabled Call 
2008-05-08 17:32
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
得分:0 
怎么没人回答呢
2008-05-09 10:31
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
得分:0 
感觉你的乱乱的
记录应该已经删掉了
都已经全删掉了 怎么还MoveNext呢?
提示删掉成功是不是应该放在rs.update后面?还没update怎么算是删除成功呢?
另外  rs的属性你设置了吗?比如说CursorLocation
可能你的rs.open获得的记录集就没数据,你检查一下RecordCount属性试试?
判断有没有记录怎么不用rs.recordcount>0?
定义rs怎么不直接用dim rs as new adodb.recordset?这样一句就够了,还要什么set rs=new adodb.recordset?
Call Msf可能是刷新表格吧?   确认刷新表格的过程里语句完全正确?
2008-05-11 12:00
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
得分:0 
回复 3# 的帖子
终于有好心人了,非常感谢你的答复,因为我刚学连接access数据库不久,一些在逻辑上的不是很清楚,按照你说的我修改了下
Option Explicit
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Private Sub CmdOK_Click()   
 sql = "SELECT * from domainname where 姓名 like '%" & Text1.Text & "%'"
conn.CursorLocation = adUseClient   '我想在登际窗口已经写了这句,在这可以省略,对吗?
rs.Open sql, conn, adOpenKeyset, adLockOptimistic   
    If Not rs.BOF And Not rs.EOF Then
        rs.MoveFirst
        Call Mainfrm.TxtView   '将记录显示在文本框中
        Mainfrm.CmdDel.Enabled = True
        Mainfrm.CmdUp.Enabled = True
        Mainfrm.CmdDown.Enabled = True
        Call Mainfrm.MSF   '刷新msflexgrid控件内容
        Unload Me
    Else
        MsgBox "要查找的用户不存在", , "提示!"
    End If  
End Sub
然后删除这条记录,我的思路是删除当前一条记录后自动移到下一条记录,并显示在文本框中
Private Sub CmdDel_Click()   
    If Not rs.EOF And Not rs.BOF Then
        rs.Delete
        rs.Update
        MsgBox "删除成功", , "提示!"
        if Not rs.EOF Then
          rs.MoveNext        
         If Not rs.BOF And Not rs.EOF Then
            Call TxtView
            Call MSF
          Else
            Call TxtNull
            MSFlexGrid1.Clear
         End If  
       End If   
    End If  
End Sub
这样写还是不会提示删除成功啊,请帮忙看看。。。
2008-05-12 13:08
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
得分:0 
unload me后,rs记录因为还在吧。。。
2008-05-12 13:25
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
得分:0 
删除不需update,应如:
  With rs
    .Delete
    .Requery
  End With
2008-05-12 13:42
zougonghua
Rank: 1
等 级:新手上路
帖 子:163
专家分:0
注 册:2008-4-1
得分:0 
回复 6# 的帖子
谢谢,有没有帮我回答其它问题
2008-05-13 16:13



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-213199-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.169281 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved