我采用ACCESS数据库做了一个用户信息数据库管理程序,我在删除的时候把字段:标记=0,然后只输出标记为1的记录。但点击了删除确定之后,数据表不刷新,要把程序关闭以后重新登陆就刷新了。我想要点击删除确定之后数据库自动刷新,请问各位大侠是什么问题。代码如下:
Private Sub cmdDel_Click() '删除
Msg1$ = "是否删除该信息"
Msg2$ = "删除信息"
r = MsgBox(Msg1$, 1, Msg2$)
If r = 1 Then
Adodc1.Recordset("标记") = 0
Adodc1.Recordset.Update
Call showrecord
End If
End Sub
Public Sub showrecord()
    Adodc1.CommandType = adCmdText
    Adodc1.RecordSource = "Select * From UserData Where 标记=1"
    Adodc1.Refresh
End Sub
Private Sub Form_Load()
    Call showrecord
End Sub

解决方案 »

  1.   

    先定位需要标识的数据,再Update Adodc1.Recordset.MoveFirst
    Adodc1.Recordset.Find "[ID]=" & VAL(记录ID)
    if Adodc1.Recordset.eof then
    msgbox "记录检索失败!"
    else
    Msg1$ = "是否删除该信息" 
    Msg2$ = "删除信息" 
    r = MsgBox(Msg1$, 1, Msg2$) 
    If r = 1 Then 
    Adodc1.Recordset("标记") = 0 
    Adodc1.Recordset.Update 
    Call showrecord 
    End If 
    endif
      

  2.   

    ShowRecord最后加上这两句刷新一下表格
    Set DataGrid1.DataSource = Adodc1
    DataGrid1.ReBind
      

  3.   

    大哥,我的序号是自动增加的,我把代码该成这个:
    Adodc1.Recordset.MoveFirst
    Adodc1.Recordset.Find "[序号]=" & Val(序号)
    If Adodc1.Recordset.EOF Then
    MsgBox "信息检索失败!"
    Else
    Msg1$ = "是否删除该信息"
    Msg2$ = "删除信息"
    r = MsgBox(Msg1$, 1, Msg2$)
    If r = 1 Then
    Adodc1.Recordset("标记") = 0
    Adodc1.Recordset.Update
    Call showrecord
    End If
    End If程序总是显示:信息检索失败。不知道为什么???
      

  4.   

    Tiger_Zhao 大哥,我在ShowRecord最后加上那两句话,貌似一样刷新不了,郁闷。。
      

  5.   

    是不是要在DataGrid1中设置一些属性??
      

  6.   

    ShowRecord最前面再加上这句试试
    Set DataGrid1.DataSource = Nothing
      

  7.   

    Tiger_Zhao 大哥,用代码:[code=VB][Public Sub showrecord()
        Adodc1.CommandType = adCmdText
        Adodc1.RecordSource = "Select * From UserData Where 标记=1"
        Adodc1.Refresh
        Set DataGrid1.DataSource = Nothing
        DataGrid1.ReBind
        End Sub]系统直接报错:不能初始化数据绑定,不然我把程序发给你看看?
      

  8.   


    '增加DataGrid1_Click,进行数据定位
    Private Sub DataGrid1_Click
    text1.text=Adodc1.Recordset("序号")
    End Sub
    Private Sub cmdDel_Click()
    Adodc1.Recordset.MoveFirst
    Adodc1.Recordset.Find "[序号]=" & VAL(text1.text)
    if Adodc1.Recordset.eof then
    msgbox "记录检索失败!"
    else
    Msg1$ = "是否删除该信息" 
    Msg2$ = "删除信息" 
    r = MsgBox(Msg1$, 1, Msg2$) 
    If r = 1 Then 
    Adodc1.Recordset("标记") = 0 
    Adodc1.Recordset.Update 
        Adodc1.Refresh 
        Set DataGrid1.DataSource = Adodc1
    End If 
    end if
    End Sub
      

  9.   

    hwmys大哥,难道是我长相有问题,还是??我用了上面代码,还是不行,不然加我QQ,大哥一起讨论下?
    QQ:37419420
      

  10.   

    将Adodc1删除后重新拖一个,什么属性都不要设,DataGrid1 的 DataSource、DataMember 属性清除。
    private cn as ADODB.Connectionprivae sub Form_Load()
        set cn = new ADODB.Connection
        cn.Open ...
        ShowRecord
    end subPublic Sub showrecord() 
        dim rs as ADODB.RecordSet
        set rs = New ADODB.RecordSet
        rs.Open "Select * From UserData Where 标记=1", cnn, adOpenKeyset, adLockOptimistic, adCmdText    Set Adodc1.Recordset = rs
        set DataGrid1.DataSource = Adodc1
        DataGrid1.ReBind
    end sub
      

  11.   

    看来你的代码,测试了一下,原因查到了。(我都是用ADO的,很少用ADO控件)
    代码如下:主要刷新语句见代码中的红字'增加DataGrid1_Click,进行数据定位
    Private Sub DataGrid1_Click
    text1.text=Adodc1.Recordset("序号")
    End Sub
    Private Sub cmdDel_Click()
    Adodc1.Recordset.MoveFirst
    Adodc1.Recordset.Find "[序号]=" & VAL(text1.text)
    if Adodc1.Recordset.eof then
    msgbox "记录检索失败!"
    else
    Msg1$ = "是否删除该信息" 
    Msg2$ = "删除信息" 
    r = MsgBox(Msg1$, 1, Msg2$) 
    If r = 1 Then 
    Adodc1.Recordset("标记") = 0 
    Adodc1.Recordset.Update 
        Adodc1.Recordset.Requery
     End If 
    end if
    End Sub
      

  12.   

    红字无法显示了,呵呵
    刷新函数是这个:Adodc1.Recordset.Requery