各位大虾,本菜鸟在做一个文件管理软件,其中的“保存”按钮功能实现如下功能:
程序读取8个文本框中的数据并作为一个完整的记录保存在数据库里,更新datagrid上的数据
该datagrid空间是和adodc1绑定的。
但是点击“保存”按钮后,发现数据库中的记录数虽然已经增加,但是datagrid的记录
并不能及时更新。
而且比较奇怪的是:当我单步跟踪的时候,却发现datagrid的记录能够及时更新。跟全速运行的
时候不一样。
程序如下:
Private Sub Cmd_save_Click()
    Dim adors As New adodb.Recordset
    Dim adocon As New adodb.Connection
    Dim c As Integer
    
    If Text1(0).Text = "" Then
    MsgBox "文件编码不能为空"
    Else
    Adodc1.RecordSource = "select * from 文件信息 where 文件编码 = '" + Text1(0).Text + "'"
    Adodc1.Refresh
    If Adodc1.Recordset.RecordCount = 0 Then
    c = MsgBox("确认要保存该信息吗?", 33, "文件信息管理系统")
    If c = vbOK Then
    adocon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Program Files\Microsoft Visual Studio\VB98\文件管理系统\文件编码.mdb;Persist Security Info=False"
    adors.Open "select * from 文件信息", adocon, adOpenKeyset, adLockBatchOptimistic
    Set adors = adocon.Execute("select * from 文件信息")
    Text2.Text = adors.Fields("文件编码")
    Set adors = adocon.Execute("insert into 文件信息 values('" & Text1(0).Text & "','" & Text1(1).Text & _
    "','" & Text1(2).Text & "','" & Text1(3).Text & "','" & Text1(4).Text & "','" & Text1(5).Text & "','" _
    & Text1(6).Text & "','" & Text1(7).Text & "','" & Combo1 & "')")
    Else
    End If
    Else
    MsgBox "对不起,该文件已存在,不能再保存", 64, "文件管理系统"
    End If
    End If
    Adodc1.RecordSource = "select * from 文件信息 "
    Adodc1.Refresh
    DataGrid1.Refresh
End Sub

解决方案 »

  1.   

    就是点“保存”按钮后,数据库增加一条记录
    然后datagrid上也要同步显示这个功能应该是很容易实现呀
      

  2.   

    数据库更新后延时一下在让 DataGrid1 显示。你试试  
    Adodc1.RecordSource = "select * from 文件信息 " 
        Adodc1.Refresh 
        Sleep 500 
        DataGrid1.Refresh 
      

  3.   

    ADODC与ADODB混用是存在你这样的问题,用延时一般可以做到更新。但建议楼主,要么全用ADODC,要么全用ADODB就不存丰这种情况。
      

  4.   

    4楼的兄弟,为啥我加入sleep 500调试不通过啊,是不是还要设置什么
    5楼的哥们,我想问一下用adodc如何实现以下语句
        Set adors = adocon.Execute("insert into 文件信息 values('" & Text1(0).Text & "','" & Text1(1).Text & _ 
        "','" & Text1(2).Text & "','" & Text1(3).Text & "','" & Text1(4).Text & "','" & Text1(5).Text & "','" _ 
        & Text1(6).Text & "','" & Text1(7).Text & "','" & Combo1 & "')")
     
      

  5.   

    Adodc1.Recordset.ActiveConnection.Execute = _
                "INSERT INTO 文件信息 VALUES ('" & _
                 Text1(0).Text & "','" & Text1(1).Text & _ 
                 ....
    Adodc1.Refresh
    Adodc1.RecordSource = "select * from 文件信息 " 
    Adodc1.Refresh