用于在 Teradata 中运行查询并将结果粘贴到 Excel 中的 VBA 代码



我无法弄清楚为什么此VBA无法在Teradata中运行查询并将结果粘贴到Excel电子表格中

这是我得到的错误:"[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQl Server 不存在或访问被拒绝。

我不相信这是因为我的访问被拒绝,因为当我将用户名和密码添加到代码中时,它仍然不起作用。

法典:

Sub sql_query()
Dim Conn As New ADODB.Connection
Dim recset As New ADODB.Recordset
Dim sqlQry As String, sConnect As String
sqlQry = "SEL * FROM entpr_tx_actuarial.mrm sample 10;"
sConnect = "Driver={SQL Server};Server=[Teradata-DATA.*****.com]; Database=[TERADATA_PRD];Trusted_Connection=yes;"
Conn.Open sConnect
Set recset = New ADODB.Recordset
recset.Open sqlQry, Conn
Sheet2.Cells(2, 1).CopyFromRecordset recset
recset.Close
Conn.Close
Set recset = Nothing
End Sub

如果您知道安装了什么驱动程序,则需要提供该驱动程序的信息。 在这种情况下,它不应该是SQL Server。 如果您不知道安装了什么或如何使用它,那么可能有点难以弄清楚。 因此,下面是我用来构建连接字符串的技巧。

使用记事本或其他文本编辑器创建一个空文件。 命名它,使文件扩展名为 .udl。 确保 .udl 是扩展名,而不是文件名的实际部分。 如果文件扩展名默认处于隐藏状态,则可能需要更改文件夹选项以显示文件扩展名才能使其正常工作。

创建文件后,双击它。它将打开一个连接向导。 在"提供程序"选项卡上,查找一个似乎可以正常工作的...可能是 ODBC 或 Teradata 提供程序。 如果似乎没有任何合理的东西,那么您可能需要安装驱动程序。

转到连接选项卡并提供要用于连接的信息。 点击"测试连接"按钮以查看它是否有效。

如果有效,请单击确定。 现在使用记事本打开 udl 文件。 它将显示用于连接字符串的实际值。 您应该能够将值复制并粘贴到 VBA 连接字符串中。

如果其他人仍在寻找答案,我使用它在 Excel Office 365 中构建我的连接字符串:

strDriver = "{Teradata Database ODBC Driver 16.20}"
strConn = "yourserveraddress"
strDB = "yourdatabasename"
strUID = "youruserid"
strPW = "yourpassword"
strConnection = "ODBC" & _
";DRIVER=" & strDriver & _
";DBCNAME=" & strConn & _
";DEFAULTDATABASE=" & strDB & _
";DESCRIPTION=Intelliflex;EN"), Array("ABLEPWD=1;ENABLEWALLET=0;MECHANISMNAME=LDAP" & _
";PWD=" & strPW & _
";UID=" & strUID & _
";USEINTEGRATEDSECURITY=0;"

最新更新