Option Explicit
Private Sub Form_Load()
    '建立一个ADO数据连接
    Dim DataConn As New ADODB.Connection
    Dim DataRec As New ADODB.Recordset
    
    Dim strSQL As String
    
    '若数据库连接出错,则转向ConnectionERR
    On Error GoTo ConnectionERR
    
    '建立一个连接字串
    '这个连接串可能根据数据库配置的不同而不同
    DataConn = "Provider=MS Remote.1;Data Source=addrcc;User ID=sa;Remote Server=localhost;Remote Provider=MSDataShape;Internet Timeout=300000;Transact Updates=True"         '1 为什么它就连接不上.   ' DataConn = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=addrcc;Data Source=localhost;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=USER77"                  '2 测试连接    '建立数据库连接
    DataConn.Open
    
'若RecordSet建立出错,则转向RecordsetERR
On Error GoTo RecordSetERR
    
    strSQL = "SELECT name,xtype,status,xusertype "
    'au_lname,au_fname,phone,address,city "
    '从表authors查询
    strSQL = strSQL & "FROM systypes"  
    DataRec.CursorLocation = adUseClient
    DataRec.Open strSQL, DataConn
    If DataRec.EOF Then Exit Sub
    
    '整行选择
    ListView1.FullRowSelect = True
    '显示表头ColumnHeaders
    ListView1.HideColumnHeaders = False
    '取消每行前的checkbox
    ListView1.Checkboxes = False
    '网格行
    ListView1.GridLines = True
    '采用Report显示模式
    ListView1.View = lvwReport
    
On Error GoTo FillERR
    Dim ListX As ListItem
    Dim ListSubX As ListSubItem
    Dim ColumnX As ColumnHeader
    Dim i As Integer
    '清除Listview的内容和表头
    ListView1.ListItems.Clear
    ListView1.ColumnHeaders.Clear
    
    For i = 0 To DataRec.Fields.Count - 1
        Set ColumnX = ListView1.ColumnHeaders.Add
        ColumnX.Text = DataRec.Fields(i).Name
        ColumnX.Width = ListView1.Width / DataRec.Fields.Count
    Next i
    
    '填充数据
    Do Until DataRec.EOF
        '添加一行
        Set ListX = ListView1.ListItems.Add
        ListX.Text = DataRec.Fields(0).Value
        For i = 1 To DataRec.Fields.Count - 1
            Set ListSubX = ListX.ListSubItems.Add
            ListSubX.Text = DataRec.Fields(i).Value
        Next i
        DataRec.MoveNext
    Loop
    DataRec.Close
    Set DataRec = Nothing
    DataConn.Close
    Set DataRec = Nothing
    Exit SubConnectionERR:
    '错误处理程序
    MsgBox "数据库连接错误," & Err.Description, vbCritical, "出错"
    Exit Sub
    
RecordSetERR:
    MsgBox "RecordSet生成错误," & Err.Description, vbCritical, "出错"
    DataConn.Close
    Exit Sub
    
FillERR:
    MsgBox "填充表格错误," & Err.Description, vbCritical, "出错"
    DataRec.Close
    DataConn.Close
End Sub我用第1种方法连接时, 在DataRec.Open strSQL, DataConn 就出错了. 请大家帮帮忙啊!