Sql server 如何使用VBA选择正确的数据库架构

Sql server 如何使用VBA选择正确的数据库架构,sql-server,ms-access,vba,database-schema,Sql Server,Ms Access,Vba,Database Schema,我在SQL server上创建了一个带有链接表的Access 2010数据库。 主窗体上的按钮调用存储过程,使用户可以从各自的源文件(主要是Excel表)中添加数据。存储过程和触发器的开发已经外包 该数据库已在不同的地点/国家推出。 为了提高性能并防止用户从他们自己的管理层以外的位置访问数据,已决定更新数据库。这家发展中的公司现在提出了以下建议: 数据库将被划分为不同的模式,每个位置将获得自己的模式。模式的选择将基于ActiveDirectory属性中定义的用户区域的位置。我可以将此位置存储在公

我在SQL server上创建了一个带有链接表的Access 2010数据库。 主窗体上的按钮调用存储过程,使用户可以从各自的源文件(主要是Excel表)中添加数据。存储过程和触发器的开发已经外包

该数据库已在不同的地点/国家推出。 为了提高性能并防止用户从他们自己的管理层以外的位置访问数据,已决定更新数据库。这家发展中的公司现在提出了以下建议: 数据库将被划分为不同的模式,每个位置将获得自己的模式。模式的选择将基于ActiveDirectory属性中定义的用户区域的位置。我可以将此位置存储在公共变量中

为了在SQL server上创建表的链接,我使用了Access内置向导。目前,表的连接描述如下: ODBC;Description=NETWPROD;驱动程序=SQL Server;服务器=CCMDB11,cc.acme.corp;可信连接=是;app=微软Office 2010;数据库=1PRD;表=dbo.1PRD_合规性

我向各位提出的问题如下:

是否可以在表说明中添加类似“SCHEMA=no”的属性。如果是,我如何使用Access VBA添加它

如何在使用Access VBA登录时将用户重定向到正确的基于位置的模式

或 如何将用户重定向到SQL server上的正确视图,该视图已过滤了相关位置上的数据


非常感谢您的帮助。

我只回答您的第一个问题,尽管您可以使用相同的技巧来回答其他问题

您可以通过
TableDef.Connect
属性更改连接字符串

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

>>>如何在使用Access VBA登录时将用户重定向到正确的基于位置的模式;table=dbo.1PRD_compliance表示您正在使用模式
dbo
(默认模式)。只需从相应的模式链接到表即可。另请参见Andre,谢谢您的回复。然而,问题是一些用户可以访问不同的模式。当用户只访问一个模式登录时,应将用户定向到相关模式,通过多个区域,用户应能够选择区域,从而定向到相应的模式。Erik,感谢您的回复。你给出答案的方式使问题看起来很容易解决。我一定会在这一个早!如果有效,请选择我的答案作为正确答案,以表明此问题已解决