我在事件1中向库中写数据
  在事件2中读库中数据
我顺序触发1,2 两事件后
出现的问题是
  在事件2中读出的数据是未修改前的数据
  也就是在事件1对数据的修改,而在事件2中没反映出来
我该怎么解决呀?
谢谢了

解决方案 »

  1.   

    那要看你怎么写数据的
    如果用rs.addnew记得rs.update
      

  2.   

    Windows中一般是异步操作,只是发出命令就不管了,转去执行后面的,很少有阻塞等待结果的~
      

  3.   

    在事件1中调用该函数
    Function txtqf_insert(ByVal row As Long, ByVal col As Long)
        On Error Resume Next
        Dim sql As String
        Dim strField As String
        Dim strUpdate As String
        Dim fy_num As Double
        Dim j As Integer
     With MSHqf
        For i = 1 To 7
           For j = 0 To 4
           strField = Me.MSHqf.TextMatrix(i, j)
           strUpdate = strUpdate & strField & Chr(9)
           Next j
           If i <> 7 Then
              strUpdate = strUpdate & Chr(13) & Chr(10)
           End If
        Next i
       sql = "update fy set qfmb ='" & strUpdate & "' where id = " & LV1.SelectedItem.SubItems(1) & ""
       ExecuteSQL (sql) ,写数据End With
      
    End Function
    '-----------------------------------------------
    在事件2中调用该过程
    Private Sub dk()    
    Dim rs1 As New ADODB.Recordset
            Set Conn1 = New ADODB.Connection
            Conn1.Provider = "MSDataShape"
            Conn1.ConnectionString = "Provider=MSDataShape;Data Source=" & str & "; Data Provider=Microsoft.Jet.OLEDB.4.0"
            Conn1.Open
       sql = "select * from fy"   
       Set rs1 = Conn1.Execute(sql)‘读数据
    end sub
    '-----------------------------------------------
    Function ExecuteSQL(ByVal sql As String) As ADODB.Recordset
        Dim rst As ADODB.Recordset
        Dim stokens() As String
        On Error GoTo exectuesql_error
        stokens = Split(sql)
        If InStr("INSERT,DELETE,UPDATE", UCase(stokens(0))) Then
              cnn.Execute sql
        Else
          Set rst = New ADODB.Recordset
          rst.CursorLocation = adUseClient
          rst.Open Trim(sql), cnn, adOpenKeyset, adLockOptimistic
          Set ExecuteSQL = rst
        End If
    exectuesql_exit:
      Set rst = Nothing
      Exit Function
    exectuesql_error:
      Resume exectuesql_exit
    End Function
      

  4.   

    to viena()
      //可不可以设个全局标志,试图读数据时,先判断标志,在修改完成前不能读操作
    你好,能具体点吗?