因为考虑到美化方面,我用image控件做按钮,基本上没有问题,就是做到删除记录的时候,删除记录的时候会弹出错误!行句柄引用了一个已被删除的行或被标识为被删除的行.但是用同样的代码,我就Command控件做就没有问题,这是为什么??我在过一个星期就要比赛了,希望高手为我解决一下,由于我刚注册,没有积分,希望谅解.只能谢谢你们了.感激不尽~~~~~
这是我的代码:窗体中有DataGrid1控件\Adodc控件\两个Image控件)Private Sub Form_Resize()
Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
End Sub                           '这是美化的代码Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.Picture = LoadPicture("fh1.jpg")
End Sub                           '这是美化的代码
Private Sub Image2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image2.Picture = LoadPicture("sc1.jpg")
End Sub                           '这是美化的代码
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image1.Picture = LoadPicture("fh.jpg")
Image2.Picture = LoadPicture("sc.jpg")
End Sub                           '这是美化的代码            
Private Sub Image1_Click()
zjm.Enabled = True
Unload Me
End Sub                           '这是退出
Private Sub Image2_Click()
On Error GoTo aa
Adodc1.Recordset.Delete
Exit Sub
aa:
MsgBox "当前表中已没有任务记录"
End Sub                            '主要就是这句了~~请高手帮忙解决下

解决方案 »

  1.   

    你每动下鼠标就loadpicture,系统太累了吧我看你都是load的固定picture,可以一次性load好了。把那些mousemove里面的loadpicture删掉看看
      

  2.   

    3楼的,我删的只剩下只些了,还是有同样的问题
    Private Sub Image1_Click() 
    zjm.Enabled = True 
    Unload Me 
    End Sub                         Private Sub Image2_Click() 
    On Error GoTo aa 
    Adodc1.Recordset.Delete 
    Exit Sub 
    aa: 
    MsgBox "当前表中已没有任务记录" 
    End Sub                         
      

  3.   

    如果不美化,就用Command控件做的话,同样的代码,就不会有问题.
    Private Sub Command1_Click() 
    zjm.Enabled = True 
    Unload Me 
    End Sub                        Private Sub ICommand2_Click() 
    On Error GoTo aa 
    Adodc1.Recordset.Delete 
    Exit Sub 
    aa: 
    MsgBox "当前表中已没有任务记录" 
    End Sub           
      

  4.   

    你断点debug一下吧~~~~什么意思哦???
      

  5.   

    你查查vb里面如何设置断点,然后一步一步调试就可以了。如果你的代码就剩下
    Private Sub Image1_Click()
    zjm.Enabled = True
    Unload Me
    End Sub                       Private Sub Image2_Click()
    On Error GoTo aa
    Adodc1.Recordset.Delete
    Exit Sub
    aa:
    MsgBox "当前表中已没有任务记录"
    End Sub                     
    应该不难,因为没有景如aa就说明没有问题。你查查你的数据吧
      

  6.   

    比较了一下楼主用 CommandButton 和 Image 的代码,觉得楼主这个问题有点棘手。
    我猜测可能是 Image_MouseMove() 事件引起的,但我这里无法测试。
    试一下这样行不:
    Private Sub Image2_Click()
        On Error GoTo aa
        Image2.Enabled = False
        Adodc1.Recordset.Delete
        Image2.Enabled = True
        Exit Sub
    aa:
        MsgBox "当前表中已没有任务记录"
        Image2.Enabled = True
    End Sub
      

  7.   

    这样吧:  改变处理流程:
    Private Sub Image2_Click()    'On Error GoTo aa    '不要这句 .
        'Adodc1.Recordset 应该有个属性,是返回记录条数的吧?
        '我不知道是哪个 -_-!
        If (Adodc1.Recordset.??? > 0) Then
            Adodc1.Recordset.Delete
        Else
            MsgBox "当前表中已没有任务记录"
        End IfEnd Sub
      

  8.   

    我没有用过数据库方面的东西,这个不太清楚。你自己把 Adodc1.Recordset.??? 换成相应的属性,应该可以解决。
      

  9.   


    我好像试过这个方法
    Private Sub Image2_Click()    'On Error GoTo aa    '不要这句 .
        'Adodc1.Recordset 应该有个属性,是返回记录条数的吧?
        '我不知道是哪个 -_-!
        If (Adodc1.Recordset.RecordCount > 0) Then
            Adodc1.Recordset.Delete
        Else
            MsgBox "当前表中已没有任务记录"
        End IfEnd Sub~~~嘿嘿~~没有用
      

  10.   

    Adodc.Recordset刪除後,要重新把數據刷新到DataGrid吧。
    否則DataGrid沒有及時刷新,造成DataGrid定位到剛被刪除的行。所以會Error.
      

  11.   

    看代码解决挺累,传[email protected] ,把数据库和图片文件等都带上
      

  12.   

    aa: 
    MsgBox "实时错误:" & Err.Number & " (" & Hex(Err.Number) & "H)" & vbCrLf & Err.Description看看究竟是什么错误。别一律没有记录。
      

  13.   

    Adodc1.Recordset.Delete之后加一条语句: 
    Adodc1.Recordset.MoveNext
      

  14.   

    20楼的,是这样吗?不行哦
    Private Sub Image2_Click()
    On Error GoTo aa
    Adodc1.Recordset.Delete
    DataGrid1.Refresh
    Exit Sub
    aa:
    MsgBox "当前表中已没有任务记录"
    End Sub
    21楼的,我已经把文件传到你邮箱里了,注意查收
    23楼的,试过了,没用
      

  15.   

    你每动下鼠标就loadpicture,系统太累了吧
    ****************************************
    可以加两个label在image外,这样能强些Private Sub Form_Resize()
        Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
    End SubPrivate Sub Image1_Click()
        zjm.Enabled = True
        Unload Me
    End SubPrivate Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Image1.Picture = LoadPicture("fh1.jpg")
    End SubPrivate Sub Image2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Image2.Picture = LoadPicture("sc1.jpg")
    End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Image1.Picture = LoadPicture("fh.jpg")
        Image2.Picture = LoadPicture("sc.jpg")
    End Sub'Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        'Image1.Picture = LoadPicture("fh.jpg")
        'Image2.Picture = LoadPicture("sc.jpg")
    'End SubPrivate Sub Image2_Click()
        On Error GoTo aa
        Adodc1.Recordset.Delete
        Exit Sub
    aa:
        MsgBox "当前表中已没有任务记录"
    End Sub
    Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Image1.Picture = LoadPicture("fh.jpg")End Sub
    Private Sub Label2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Image2.Picture = LoadPicture("sc.jpg")End Sub还有要注意书写格式
      

  16.   

    感谢jhone99的帮助!!虽然有些代码不是很懂,但相当满意~~~
    以下是答案'上面的是声明部分.只有声明了,才可以使用..
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Const WM_LBUTTONDOWN = &H201Private Const WM_LBUTTONUP = &H202
    Private Sub Form_Resize()
        Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight
    End Sub
    Private Sub Image1_Click()
        zjm.Enabled = True
        Unload Me
    End SubPrivate Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Image1.Picture = LoadPicture("fh1.jpg")
    End Sub
    Private Sub Image2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Image2.Picture = LoadPicture("sc1.jpg")
    End Sub
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Image1.Picture = LoadPicture("fh.jpg")
        Image2.Picture = LoadPicture("sc.jpg")
    End SubPrivate Sub Image2_Click()
        PostMessage Command1.hwnd, &H201, 0&, 0&
        PostMessage Command1.hwnd, &H202, 0&, 0&
    End SubPrivate Sub Command1_Click()
        On Error GoTo aa
        Adodc1.Recordset.Delete
        
        Exit Sub
    aa:
        MsgBox "当前表中已没有任务记录"End Sub
     
    在窗口添加个command1
    Command1的visible设false 
      

  17.   


    '上面的是声明部分.只有声明了,才可以使用.. 
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Const WM_LBUTTONDOWN = &H201 Private Const WM_LBUTTONUP = &H202 
    Private Sub Form_Resize() 
        Me.PaintPicture Me.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight 
    End Sub 
    Private Sub Image1_Click() 
        zjm.Enabled = True 
        Unload Me 
    End Sub Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 
        Image1.Picture = LoadPicture("fh1.jpg") 
    End Sub 
    Private Sub Image2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 
        Image2.Picture = LoadPicture("sc1.jpg") 
    End Sub 
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 
        Image1.Picture = LoadPicture("fh.jpg") 
        Image2.Picture = LoadPicture("sc.jpg") 
    End Sub Private Sub Image2_Click() 
        PostMessage Command1.hwnd, &H201, 0&, 0& 
        PostMessage Command1.hwnd, &H202, 0&, 0& 
    End Sub Private Sub Command1_Click() 
        On Error GoTo aa 
        Adodc1.Recordset.Delete 
        
        Exit Sub 
    aa: 
        MsgBox "当前表中已没有任务记录" End '在窗口添加个command1 
    'Command1的visible设false 
      

  18.   

    这样解决啊?
    真想不明白为什么 Image 出错,CommandButton 不会出错。
    恭喜楼主.........
    ^_^