//////////////////试试看咯//////////////////////Option ExplicitPublic strConn As String
Public oracleConn As New ADODB.ConnectionPublic Function OpenOracleDB() As Boolean
On Error GoTo proc_error
    oracleConn.Open strConn
    If oracleConn.State = 1 Then
        OpenOracleDB = True
    Else
        OpenOracleDB = False
    End If
proc_exit:
    Exit Function
proc_error:
    
    GoTo proc_exit
    MsgBox "OpenOracleDB()" & Err.Description
End Function
Public Function CloseOracleDB() As Boolean
On Error GoTo proc_error
    If oracleConn.State = 0 Then CloseOracleDB = True
    oracleConn.Close
    If oracleConn.State = 0 Then
        CloseOracleDB = True
    Else
        CloseOracleDB = False
    End If
proc_exit:
    Exit Function
proc_error:
    
    GoTo proc_exit
    MsgBox "CloseOracleDB()" & Err.Description
End FunctionPrivate Sub Class_Initialize()
    strConn = "Provider=MSDAORA.1;User ID=hr;PassWord=111;Data Source=hgf;Persist Security Info=False;"
End SubPrivate Sub Class_Terminate()
    CloseOracleDB
End Sub
////////////////
Option ExplicitPrivate Sub Command1_Click()
    Dim db As COracleDB
    Set db = New COracleDB
    db.OpenOracleDB
    Dim rs As New ADODB.Recordset
    rs.CursorLocation = adUseClient
    rs.Open "select * from jobs", db.oracleConn, adOpenKeyset, adLockReadOnly
    Dim i As Integer
    i = 1
    Me.MSFlexGrid1.Rows = Me.MSFlexGrid1.Rows + rs.RecordCount - 1
    Do Until rs.EOF
        Me.MSFlexGrid1.TextMatrix(i, 1) = rs.Fields("job_id") & ""
        Me.MSFlexGrid1.TextMatrix(i, 2) = rs.Fields("job_title") & ""
        Me.MSFlexGrid1.TextMatrix(i, 3) = rs.Fields("min_salary") & ""
        Me.MSFlexGrid1.TextMatrix(i, 4) = rs.Fields("max_salary") & ""
        rs.MoveNext
        i = i + 1
    Loop
End Sub