CommonDialog1.CancelError = True
        On Error GoTo errcancel
        Dim nFile As String '文件名
        Dim nlen, nflen As Double '文名长度
        With CommonDialog1
            .Filter = "*.sql|*.sql"
            .InitDir = App.Path + "\backup"
            .ShowOpen
            nFile = .FileName
        End With
        Dim cn As New ADODB.Connection
            cn.ConnectionString = sqlhf
            cn.CursorLocation = adUseClient
            cn.Open
            Dim sql As String
            sql = "restore database hd_csdata from disk='" & nFile & "'"
            Screen.MousePointer = vbHourglass
                '*********************************
                    Dim sysj0, sysj1, sysj2, sysj3, sysj4, sysj5 As Double
                    Dim sysj6 As String
                    If Mid(Time, 2, 1) <> ":" Then
                        sysj0 = Val(Mid(Time, 1, 2)) * 3600: sysj1 = str(Mid(Time, 4, 2)) * 60: sysj2 = Val(Mid(Time, 7, 2))
                    Else
                        sysj0 = Val(Mid(Time, 1, 1)) * 3600: sysj1 = Val(Mid(Time, 3, 2)) * 60: sysj2 = Val(Mid(Time, 6, 2))
                    End If
                '*********************************
            cn.Execute (sql)
            Screen.MousePointer = 0
                    '*********************************
                    If Mid(Time, 2, 1) <> ":" Then
                        sysj4 = Val(Mid(Time, 1, 2)) * 3600 + Val(Mid(Time, 4, 2)) * 60 + Val(Mid(Time, 7, 2))
                        sysj5 = Val(sysj0) + Val(sysj1) + Val(sysj2)
                        sysj6 = Val(sysj4) - Val(sysj5)
                    Else
                        sysj4 = Val(Mid(Time, 1, 1)) * 3600 + Val(Mid(Time, 3, 2)) * 60 + Val(Mid(Time, 6, 2))
                        sysj5 = Val(sysj0) + Val(sysj1) + Val(sysj2)
                        sysj6 = Val(sysj4) - Val(sysj5)
                        
                    End If
                        sysj0 = str(Int(Val(sysj6) / 3600))
                        sysj1 = str(Int(Val(Val(sysj6) - (Int(Val(sysj6) / 3600)) * 3600) / 60))
                        sysj2 = Val(sysj6) Mod 60
                        sysj6 = str(sysj0) + ":" + str(sysj1) + ":" + str(sysj2)
                    '*********************************
            cn.Close
            '**************************************************还原数据时更新注册表
                Dim cn2 As New ADODB.Connection
                    If Text2.Text <> "" Then
                        cn2.ConnectionString = "Provider=SQLOLEDB.1;Password=" & Text3.Text & ";Persist Security Info=True;User ID=" & Text2.Text & ";Initial Catalog=hd_csdata;Data Source=" & Text1.Text & ""
                        cn2.Open
                        sqlst = "Provider=SQLOLEDB.1;password=" & Text3.Text & ";Persist Security Info=true;User ID=" & Text2.Text & ";Initial Catalog=hd_csdata;Data Source=" & Text1.Text & ""
                        sqlhf = "Provider=SQLOLEDB.1;password=" & Text3.Text & ";Persist Security Info=true;User ID=" & Text2.Text & ";Initial Catalog=master;Data Source=" & Text1.Text & ""
                    Else
                        cn2.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hd_csdata;Data Source=" & sev & ""
                        cn2.Open
                        sqlst = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=hd_csdata;Data Source=" & sev & ""
                        sqlhf = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=" & sev & ""
                    End If
                Dim sql2 As String
                    Dim rs2 As New ADODB.Recordset
                    rs2.CursorLocation = 3
                    sql2 = "select * from sys_base"
                    rs2.Open sql2, cn2, adOpenDynamic, adLockBatchOptimistic, adCmdText
                    Call savestring(HKEY_CURRENT_USER, "Software\ODBC\Password", "String", rs2.Fields(0))
                    cn2.Close
            MsgBox "数据恢复成功!" + Chr(13) + Chr(13) + "所用时间:" + sysj6 + "        ", vbInformation, "数据恢复"
            Command4.Enabled = False
            '**************************************************还原数据时更新注册表
    If False Then
errcancel: Screen.MousePointer = 0: MsgBox "数据恢复失败!", vbCritical, "数据恢复"
    End If'=================================================就到 cn.Execute (sql) 这句时出的错,谢谢大家帮忙看看,谢谢各位大姐大哥们!!