如何使用 ODBC 中的连接字符串在永久链接到 SQL 源的 Access 中创建 table?
How to use connection string in ODBC to create a table in Access permanently linked to a SQL source?
我在我的 Access 前端应用程序中创建了一个 table,并尝试使用以下子例程将其连接到后端数据库:
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数据库后,重新打开后,table无法打开。即使我在字符串中将 Trusted_Connection 设置为 "No",table 仍会尝试使用 Windows 身份验证。另外,当我在设计视图中打开 table 时,我会在 "Description":
前面看到
ODBC;DRIVER=SQL Server;Server=myServer;APP=2007 Microsoft Office System;DATABASE=myDatabase;Network=DBMSSOCN;Table=dbo.myTable
所以显然Access没有保存UID和PWD,也没有保存将Trusted_Connection设置为"No"的指令。
我坚持使用连接字符串来完成此操作,而使用 DSN 将无法满足我的应用程序的目的。将不胜感激。
您需要将 dbAttachSavePWD-Attribute 添加到创建的 table 以在 Access 中使用链接 table 存储您的凭据。
在追加 tabledef 之前,您应该添加这行代码:
tblDef.Attributes = (tblDef.Attributes Or dbAttachSavePWD)
我在我的 Access 前端应用程序中创建了一个 table,并尝试使用以下子例程将其连接到后端数据库:
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数据库后,重新打开后,table无法打开。即使我在字符串中将 Trusted_Connection 设置为 "No",table 仍会尝试使用 Windows 身份验证。另外,当我在设计视图中打开 table 时,我会在 "Description":
前面看到ODBC;DRIVER=SQL Server;Server=myServer;APP=2007 Microsoft Office System;DATABASE=myDatabase;Network=DBMSSOCN;Table=dbo.myTable
所以显然Access没有保存UID和PWD,也没有保存将Trusted_Connection设置为"No"的指令。
我坚持使用连接字符串来完成此操作,而使用 DSN 将无法满足我的应用程序的目的。将不胜感激。
您需要将 dbAttachSavePWD-Attribute 添加到创建的 table 以在 Access 中使用链接 table 存储您的凭据。
在追加 tabledef 之前,您应该添加这行代码:
tblDef.Attributes = (tblDef.Attributes Or dbAttachSavePWD)