无法使用VBA代码从excel连接到Teradata-无法通过网络访问Teradata服务器
我一直试图使用vba代码从Excel连接到Teradata,但出现以下错误: 无法通过网络访问Teradata服务器。我已经能够成功地从Teradata SQL assistant进行连接,并且我还成功地ping了Teradata服务器。我正在使用在VMware player上运行的笔记本电脑中的Teradata express edition。我还通过Excel数据连接向导和Microsoft query成功连接到Teradata。我还关闭了防火墙,检查是否可以连接,但仍然无法连接。请告诉我哪里出了问题 请查找以下代码:无法使用VBA代码从excel连接到Teradata-无法通过网络访问Teradata服务器,vba,excel,ado,teradata,Vba,Excel,Ado,Teradata,我一直试图使用vba代码从Excel连接到Teradata,但出现以下错误: 无法通过网络访问Teradata服务器。我已经能够成功地从Teradata SQL assistant进行连接,并且我还成功地ping了Teradata服务器。我正在使用在VMware player上运行的笔记本电脑中的Teradata express edition。我还通过Excel数据连接向导和Microsoft query成功连接到Teradata。我还关闭了防火墙,检查是否可以连接,但仍然无法连接。请告诉我哪
Private Sub CommandButton1_Click()
Dim conn As ADODB.Connection
Dim rec1 As ADODB.Recordset
Dim thisSql As String
Set conn = New ADODB.Connection
conn.Open "Driver=Teradata;DBCName=dsnname;Databasename=dbname;Uid=Userid;Pwd=****;"
thisSql = "sel * from customer_db.customer"
Set rec1 = New ADODB.Recordset
rec1.Open thisSql, conn
With Sheet1.QueryTables.Add(Connection:=rec1, Destination:=Sheet2.Range("A1"))
.Name = "data"
.FieldNames = True
.Refresh BackgroundQuery:=False
End With
End Sub
如果更改连接对象的打开方法,该怎么办:
连接打开的DSN=DSN名称;Databasename=dbname;Uid=用户id;Pwd=** 这个连接脚本对我有效 '在引用中添加Microsoft ActiveX数据对象2.8库 '安装Teradata SQL Assistant时,Teradata的ODBC驱动程序将安装TDOLEDB提供程序 '此示例连接到Teradata,删除MyTable的内容并从活动电子表格中插入第7-8行 函数OpenConn作为对象 设置OpenConn=newadodb.Connection Dim myConnectionString作为字符串 myConnectionString=Provider=TDOLEDB;数据源=MyTeradataServerName;持久安全信息=True;用户ID=MyTeradataUserID;密码=MyTeradataPass;会话模式=ANSI;DefaultDatabase=GRP\u BCE\u FINANCE\u IM;MaxResponseSize=65477; OpenConn.openmyconnectionstring 端函数 Sub CloseConn作为对象 关闭连接 设置连接=无 端接头 副推手
Dim TeraObjCmd As New ADODB.Command
Dim TeraObjRs As ADODB.Recordset
Dim TeraObjRs2 As ADODB.Recordset
Dim TeraCnxn As Object
Set TeraCnxn = OpenConn()
TeraObjCmd.ActiveConnection = TeraCnxn
'Clear Previous Data
TeraObjCmd.ActiveConnection = TeraCnxn
TeraObjCmd.CommandText = "delete from MyTable"
TeraObjCmd.Execute
'Load New Data
Set TeraObjRs2 = New ADODB.Recordset
TeraObjRs2.Open "SELECT * FROM MyTable where 1 = 2 ", TeraCnxn, adOpenStatic, adLockOptimistic
With TeraObjRs2
For irow = 7 To 8 'loading results from rows in my spredsheet
If Len(Trim(Range("B" & irow).Value)) <> 0 Then 'Avoid blank rows
.AddNew
.Fields(0) = Range("B" & irow).Value
End If
Next
.UpdateBatch
.Close
End With
' clean up objects
Set objCmd = Nothing
Call CloseConn(TeraCnxn)
MsgBox "Update Complete!"
End Sub连接到Teradata的替代连接字符串:
"Provider=MSDASQL.1;Password=myPassword;Persist Security Info=False;User ID=myUserid;Data Source=myDSN"