我在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将无法用于我的应用程序。非常感谢帮助。
答案 0 :(得分:3)
您需要将dbAttachSavePWD-Attribute添加到创建的表中,以使用Access中的链接表存储您的凭据。
在附加tabledef之前,你应该放下这行代码:
tblDef.Attributes = (tblDef.Attributes Or dbAttachSavePWD)