我遇到了一个问题,我已经创建了一个Access 2003 ADP并连接到SQL Server 2008 R2上的数据库。在我的PC上,表和视图名称与SQL数据库中的相同(例如,Table1, View1等),并且我使用这些名称将我构建的报表表单链接到这些表。然而,当我授予同事对SQL后端的权限,以便她可以打开ADP并运行我构建的报告时,它失败了,因为在她的PC上,每个表和对象名称(例如,dbo_Table1, dbo_View1等)上出现了"dbo_"前缀,这当然会为她断开与数据源的连接。我现在只能用Access 2003了。是否有一种方法来控制这无论是在访问或后端?为了解决这个问题,我确实将她的SQL模式更改为dbo,但没有成功。想法赞赏!
我所在的团队使用一个小的VBA实用程序在对新链接的表运行代码之前删除所有这些"dbo_"前缀。这对我们来说很有效。您可以以任何最方便的方式将其添加到Access应用程序中。希望能有所帮助。祝你项目顺利。
Public Sub Zap_dboLabelsOnLinks()
Dim dbDef As Database
Dim tblDef As TableDef
Set dbDef = CurrentDb
'loop through each table in the database
For Each tblDef In dbDef.TableDefs
If UCase(Left(tblDef.Name, 4)) = UCase("dbo_") Then
tblDef.Name = Right(tblDef.Name, (Len(tblDef.Name) - 4))
End If
Next tblDef
Exit Sub