如何在ODBC中使用连接字符串在Access中创建永久链接到SQL源的表?

时间:2015-05-06 00:53:13

标签: sql-server access-vba odbc ms-access-2007

我在Access前端应用程序中创建了一个表,并尝试使用以下子例程将其连接到后端数据库:

Sub createFlowTable()
Dim db As Database
Dim tblDef As TableDef
Set db = CurrentDb
Set tblDef = db.CreateTableDef("myTable")
tblDef.Connect = "ODBC;DRIVER=SQL Server;SERVER=myServer; Trusted_Connection=No;UID=<myUID>;PWD=<myPWD>;APP=2007 Microsoft Office system;DATABASE=myDataBase;Network=DBMSSOCN;TABLE=dbo.myTable"
tblDef.SourceTableName = "mySourceTableName"
db.TableDefs.Append tblDef
End Sub

关闭前端Access数据库后,重新打开后,表无法打开。即使我已将Trusted_Connection设置为&#34; No&#34;在我的字符串中,表仍然尝试使用Windows身份验证。另外,当我在设计视图上打开表格时,我会在&#34;描述&#34;前面看到:

ODBC;DRIVER=SQL Server;Server=myServer;APP=2007 Microsoft Office System;DATABASE=myDatabase;Network=DBMSSOCN;Table=dbo.myTable

显然,Access没有保存UID和PWD,也没有保存关于将Trusted_Connection设置为&#34; No&#34;的说明。

我坚持要使用连接字符串完成此操作,并且使用DSN将无法用于我的应用程序。非常感谢帮助。

1 个答案:

答案 0 :(得分:3)

您需要将dbAttachSavePWD-Attribute添加到创建的表中,以使用Access中的链接表存储您的凭据。

在附加tabledef之前,你应该放下这行代码:

tblDef.Attributes = (tblDef.Attributes Or dbAttachSavePWD)