我是这么连接远程数据库的
Sub Main()
    If Not ServerConnect Then
        MsgBox "数据库联接错误,请查看联机帮助文件 !!!  ", vbCritical
        End
    End If
    ic_form.Show
End Sub
Public Function ServerConnect() As Boolean
    ServerConnect = False
    Dim a, b, c As Variant
    Dim database As String
    Dim SQLstatus As String
    
On Error GoTo ErrHandle
    SQLstatus = "SQL"
    Select Case UCase(SQLstatus)
    Case "SQL"
         strconn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=123456;Initial Catalog=code;Data Source=sss"
    End Select
    conn.ConnectionString = strconn
    conn.ConnectionTimeout = 100
    conn.Open strconn
    Set Cmd.ActiveConnection = conn
    Cmd.CommandTimeout = 1
    ServerConnect = True
    Exit Function
ErrHandle:
    Dim adoErr As ADODB.Error
    If conn.Errors.Count > 0 Then
        For Each adoErr In conn.Errors
            MsgBox "[Error Code] " & adoErr.Number & Chr(13) & adoErr.Description, vbCritical + vbOKOnly, "Error"
        Next adoErr
    End If
End Function
    我检查了语句没有什么问题,但是程序运行时总是提示
    运行时错误‘-2147467259(80004005)’
    DBNETLIB[ConnectionRead(recv())]一般性网络错误,请检查网络文档。
   这是什么原因,郁闷ING~~~~~~~
   我把连接数据库的语句放到了模块中了,是和这个有关系吗?还是因为网络不稳定?连接本地数据库就没有这个问题。怎么才能解决?

解决方案 »

  1.   

    看看有没有用 http://bbs.iva.cn/dispbbs.asp?boardid=2&id=23&star=1&page=4
      

  2.   

    你说连接本地数据库可以,是用该方法吗?如果是,那应该是网络问题吧。看一下远程数据库SQL属性,看是不是[使用SQL SERVER身份验证],如果不是,改为这个试试!
    还有您说的远程是广域网上的吗?
    帮你顶顶……呵呵
      

  3.   

    无非就是以下几个问题:
    1.身份验证模式;
    2.登录用户名称和密码;
    3.数据库名称;
    4.数据库服务器名称;
    5.登录用户是否具有访问权限;
    6.SQL SERVER服务是否存在.
      

  4.   

    我一般是将连接数据库语句写到sub main 中,先测试本地数据库是否能正常连接,然后将数据库名改成远程数据库名,好像还有远程的IP,再试试。
      

  5.   

    你可以先用ADO控件先试着连接一下你的远程数据库,如果你的ADO连接成功了,自然他就会给你生成数据库连接的语句,之后你搬上去就可以了。
      

  6.   

    我是用VPN连的远程服务器,有人用PB做了类似的程序就没有这个问题。
      

  7.   

    这个应该是你的SQL服务端的网络库里没有加上TCP/IP,加上就行了。