DSN连接到远程普及数据库

时间:2014-11-11 10:57:51

标签: vba dsn pervasive

美好的一天,

我创建了一个小型VBA过程,使用DSN名称从Pervasive数据库获取数据。当我与服务器在同一网络上时,此工作正常。当我不在同一个网络上时,我需要能够运行此过程。我尝试了许多不同的连接字符串,但无法打开连接。我不知道从哪里开始故障排除才能使这个工作。 我可以使用dyndns名称通过远程桌面访问服务器 - 不确定我是否可以在连接字符串中将其用作服务器地址?

以下是本地时可用的VBA代码。我需要一种让远程工作的方法。

Sub GetData()

Dim adoConn As ADODB.Connection
Dim adoRs As ADODB.Recordset
Dim sSql As String

    sSql = "SELECT AccDesc, BalanceThis01, " & _
        "FROM LedgerMaster WHERE NumberSubAccs = 0"

    Set adoConn = New ADODB.Connection
    adoConn.Open "DSN=KAYDAV"


    Set adoRs = New ADODB.Recordset
    adoRs.Open Source:=sSql, _
        ActiveConnection:=adoConn

With Sheet2
    .Range(Cells(5, 1).Address, Cells(5000, 44).Address).Value = vbNullString
    .Cells(5, 2).CopyFromRecordset adoRs
End With

    Set adoRs = Nothing
    Set adoConn = Nothing

End Sub

1 个答案:

答案 0 :(得分:1)

要使用可能位于防火墙后面的ODBC访问远程Pervasive引擎,您需要打开端口1583.
只要DSN指向正确的计算机名称,就可以使用DSN。在您的情况下,您将使用DynDNS名称。您可以使用" Driver = {Pervasive ODBC Client Interface}; ServerName = myServerAddress; dbq = dbname;"

形式的连接字符串

如果这不起作用,您需要提供更多信息,包括您正在使用的Pervasive的错误和版本。