我正在尝试通过VBA脚本在MS Access中创建链接表到SQL Server表。目前,我有以下,完美的工作:
strConnect = "ODBC;DSN=xxx;Trusted_Connection=Yes;" & _
"APP=Microsoft Office;DATABASE=myDB;ApplicationIntent=READONLY;"
aSourceTable = Array("dmy.Tab1", "dmy.Tab2", "dmy.Tab3", "dmy.Tab4")
For X = 0 To UBound(aSourceTable)
Set t = New TableDef
t.Connect = strConnect
t.NAME = Replace(aSourceTable(X), "dmy.", "") ' remove schema
t.SourceTableName = aSourceTable(X)
CurrentDb.TableDefs.Append t
Next X
其中xxx是数据服务器名称,myDB是我想要连接的数据库。
现在我正在尝试重新创建相同的链接表,但是与SQL服务器的ODBC连接必须通过应用程序角色(已经在SQL中创建)。关于如何解决这个问题的任何想法?我已经尝试在连接字符串中填充UID / Password参数,但这似乎不起作用。
我已经创建了应用程序角色:
名称 - tempapprole
密码 - 临时密码
非常感谢,
缺口
这适用于我连接到MS SQL Server:
Dim Conn As New ADODB.Connection
Conn.ConnectionString = "DSN=" & myDB & ";UID=" & tempapprole & ";PWD=" & temppassword
Conn.Provider = "msdasql"
Conn.Open
你可以尝试如下 -
Dim strConnect As New OleDb.OleDbConnection
strConnect.ConnectionString = "provider=microsoft.jet.oledb.4.0;data
source=TABELS.mdb"
strConnect.Open()
aSourceTable = Array("dmy.Tab1", "dmy.Tab2", "dmy.Tab3", "dmy.Tab4")
For X = 0 To UBound(aSourceTable)
Set t = New TableDef
t.Connect = strConnect
t.NAME = Replace(aSourceTable(X), "dmy.", "") ' remove schema
t.SourceTableName = aSourceTable(X)
CurrentDb.TableDefs.Append t
Next X