我在SQL服务器上创建了一个包含链接表的Access 2010数据库。 主窗体上的按钮调用存储过程,使用户能够从各自的源文件(主要是Excel表)添加数据。存储过程和触发器的开发已外包。
该数据库已在不同地点/国家/地区推出。 为了提高性能并防止用户从他们自己的管理以外的位置访问数据,已经决定更新数据库。开发公司现在提出以下建议: 数据库将被拆分为不同的模式,每个位置将获得自己的模式。模式的选择将基于ActiveDirectory属性中定义的用户区域的位置。我可以将此位置存储在公共变量中。
要创建SQL服务器上表的链接,我使用了Access内置向导。目前,与表的连接描述如下: ODBC;描述= NETWPROD;驱动程序= SQL Server;服务器= CCMDB11,cc.acme.corp;可信连接=是;应用程序= Microsoft Office 2010;数据库= 1PRD;表= dbo.1PRD_Compliances
我向您提出的问题如下:
是否可以在表格说明中添加“SCHEMA = no”等属性。如果是,我如何使用Access VBA添加它。
或者
如何使用Access VBA在登录时将用户重定向到正确的基于位置的架构?
或者 如何将用户重定向到SQL-server上的正确视图,该视图已过滤相关位置上的数据。
非常感谢任何帮助。
答案 0 :(得分:0)
I will only answer your first question, although you can use the same technique to achieve an answer to the others.
You can alter the connection string through the TableDef.Connect
property.
Public Sub AddNoSchema()
Dim db As DAO.Database
Set db = CurrentDb()
Dim tdf As Variant 'DAO.TableDef
For Each tdf In db.TableDefs
If tdf.Connect LIKE "*SQL Server*" Then
tdf.Connect = tdf.Connect & ";SCHEMA=no"
tdf.RefreshLink
End If
Next tdf
End Sub