美好的一天,
我创建了一个小型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
答案 0 :(得分:1)
要使用可能位于防火墙后面的ODBC访问远程Pervasive引擎,您需要打开端口1583.
只要DSN指向正确的计算机名称,就可以使用DSN。在您的情况下,您将使用DynDNS名称。您可以使用" Driver = {Pervasive ODBC Client Interface}; ServerName = myServerAddress; dbq = dbname;"
如果这不起作用,您需要提供更多信息,包括您正在使用的Pervasive的错误和版本。