编程论坛's Archiver

zougonghua 发表于 2008-5-8 17:32

求助,关于记录删除

首先运行查找按钮查找到相关记录
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
删除不了,请帮忙看看

zougonghua 发表于 2008-5-9 10:31

怎么没人回答呢

三断笛 发表于 2008-5-11 12:00

感觉你的乱乱的
记录应该已经删掉了
都已经全删掉了 怎么还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可能是刷新表格吧?   确认刷新表格的过程里语句完全正确?

zougonghua 发表于 2008-5-12 13:08

回复 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
这样写还是不会提示删除成功啊,请帮忙看看。。。

zougonghua 发表于 2008-5-12 13:25

unload me后,rs记录因为还在吧。。。

刨子头 发表于 2008-5-12 13:42

删除不需update,应如:
  With rs
    .Delete
    .Requery
  End With

zougonghua 发表于 2008-5-13 16:13

回复 6# 的帖子

谢谢,有没有帮我回答其它问题

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.