Ms access 在不带DSN的Teradata Access中创建链接表?
连接到TeradataMs access 在不带DSN的Teradata Access中创建链接表?,ms-access,database-connection,teradata,Ms Access,Database Connection,Teradata,连接到Teradata 'Requires reference to ADO and ADOX Public adoCn As ADODB.Connection Public adoCat As New ADOX.Catalog Public adoTbl As New ADOX.Table Function TD_Make_Linked_Table() Dim varServer As String Dim varDatabase As String Dim varUser As St
'Requires reference to ADO and ADOX
Public adoCn As ADODB.Connection
Public adoCat As New ADOX.Catalog
Public adoTbl As New ADOX.Table
Function TD_Make_Linked_Table()
Dim varServer As String
Dim varDatabase As String
Dim varUser As String
Dim varPassword As String
varServer = "Test"
varDatabase = "Test_Test"
varUser = "Test_User"
varPassword = "Test_Password"
Set adoCn = New ADODB.Connection
'I have tried multiple connection strings
adoCn.ConnectionString = "PROVIDER=MSDASQL;DRIVER={Teradata};" & _
"DBCName=" & varServer & ";" & _
"DefaultDatabase=" & varDatabase & ";" & _
"UID=" & varUser & ";" & _
"PWD=" & varPassword & ";"
adoCn.Open
Set adoCat = New ADOX.Catalog
Set adoCat.ActiveConnection = adoCn
Set adoTbl = New ADOX.Table
adoTbl.ParentCatalog = adoCat
adoTbl.Name = "Test"
'I have tried multiple property combinations
'Causes error 3265 Item not found
'adoTbl.Properties("?") = adoCn
'adoTbl.Properties("Jet OLEDB:Link Datasource") = "Test"
'adoTbl.Properties("Jet OLEDB:Link Provider String") =
'adoTbl.Properties("Jet OLEDB:Remote Table Name") = "LinkDatabaseTable"
'adoTbl.Properties("Jet OLEDB:Create Link") = True
'Causes 3251 provider is not capable of performing operation
'adoCat.Tables.Append adoTbl
adoCn.Close
Set adoTbl = Nothing
Set adoCat = Nothing
Set adoCn = Nothing
End Function
我已验证连接是否正常工作。我可以通过打开连接并执行SQL来查询数据
我无法在Access中使用visual basic for applications(已创建连接的应用程序)以编程方式创建链接表
是否有人能够通过访问Teradata成功创建一个链接的无dsn表 如果您有一个工作的ODBC连接字符串,那么您应该能够使用创建链接表。我手头没有Teradata服务器,但这对我使用SQL server很有用:
Dim connStr作为字符串
connStr=_
“驱动程序=SQL Server的ODBC驱动程序11;”_
“服务器=(本地)\SQLEXPRESS;”&_
“数据库=myDb;”&_
“受信任的连接=是”
DoCmd.TransferDatabase_
TransferType:=acLink_
DatabaseType:=“ODBC数据库”_
DatabaseName:=“ODBC;”&connStr_
对象类型:=可执行_
来源:=“dbo.projects”_
目标:=“dbo_项目”
我最终找到了一个有效的连接字符串:)
函数adoTera()
作为ADODB.连接的Dim oConn
将rs设置为ADODB.Recordset
Set oConn=新的ADODB.Connection
Set rs=New ADODB.Recordset
ocann.ConnectionString=“PROVIDER=MSDASQL;”和_
“驱动程序={Teradata};”&_
“DBCName=yourDBCName;”&_
“DefaultDatabase=yourDBName;”&_
“UID=yourUserName;”&_
“PWD=您的密码;”
奥康,开门
rs.打开“从您的表格中选择*”,奥康
此工作簿。工作表(“Sheet1”)。范围(“A:A”)。来自记录集的副本
rs.Close
奥康,结束
设置rs=无
设置con=Nothing
端函数
谢谢您的回复。Teradata没有以相同的方式处理请求。我收到运行时错误'3000'保留错误(-7778);没有关于此错误的消息。@Orthogod-您能从Access本身中手动创建链接表吗?是的,我能从Access中创建到数据源的链接表。