用下面这个函数打开两个数据库记录集,打开(AdoRs.Open)第二个时特别慢,不知道怎么回事,请高手指点Public Function ExecSelect(AdoRS As ADODB.Recordset, ByVal SelectSQL As String, 
         ByVal pcMessage As String) As Boolean On Error GoTo MyError
ExecSelect = TrueWith AdoRS
    Set .ActiveConnection = adoCon ' adoCon 为全局变量,是一打开的数据库连接
    .CursorLocation = adUseClient
    .CursorType = adOpenKeyset
    .LockType = adLockOptimistic
    .Source = SelectSQL
    .Open
End WithExit Function
MyError:
    Call DispError(SelectSQL, pcMessage)
    ExecSelect = False
End Function

解决方案 »

  1.   

    Public Function ExecSelect(AdoRS As ADODB.Recordset, ByVal SelectSQL As String, 
             ByVal pcMessage As String) As Boolean On Error GoTo MyError
    ExecSelect = TrueWith AdoRS
        if .State <> 0 Then
           .Close
        end if
        Set .ActiveConnection = adoCon ' adoCon 为全局变量,是一打开的数据库连接
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Source = SelectSQL
        .Open
    End WithExit Function
    MyError:
        Call DispError(SelectSQL, pcMessage)
        ExecSelect = False
    End Function