Ms access 有没有办法判断另一个访问数据库是否链接到我的数据库?
我有一个旧的Access数据库,有大量的查找表。据推测,这是一个仓库,供一堆其他部门制作的access应用程序链接。我们想杀了它。但是,我想知道是否有任何应用程序当前链接到它?将其移动到另一个目录。链接表具有硬编码路径。将其移动到其他目录。链接表具有硬编码路径。在数据库未使用时不会。在使用时,您应该看到一个LDB/LACCDB文件。您可以使用记事本打开它以查看工作站名称 如果您使用的是访问安全性,您还将看到访问用户ID。否则您将看到“Admin” 使用记事本打开.ldb/.laccdb文件将显示数据库中当前的用户以及数据库中的一些工作站。当一个人退出时,访问他们的工作站名称和访问登录id、Admin(除非您使用的是访问安全性)将保留在“插槽”或ldb文件中的记录中。下次有人进入MDB时,此插槽或记录可能会被覆盖,具体取决于ldb文件中该插槽或记录之前可用的插槽或记录Ms access 有没有办法判断另一个访问数据库是否链接到我的数据库?,ms-access,Ms Access,我有一个旧的Access数据库,有大量的查找表。据推测,这是一个仓库,供一堆其他部门制作的access应用程序链接。我们想杀了它。但是,我想知道是否有任何应用程序当前链接到它?将其移动到另一个目录。链接表具有硬编码路径。将其移动到其他目录。链接表具有硬编码路径。在数据库未使用时不会。在使用时,您应该看到一个LDB/LACCDB文件。您可以使用记事本打开它以查看工作站名称 如果您使用的是访问安全性,您还将看到访问用户ID。否则您将看到“Admin” 使用记事本打开.ldb/.laccdb文件将显示
当数据库未使用时,不能使用。在使用时,您应该看到一个LDB/LACCDB文件。您可以使用记事本打开它以查看工作站名称 如果您使用的是访问安全性,您还将看到访问用户ID。否则您将看到“Admin” 使用记事本打开.ldb/.laccdb文件将显示数据库中当前的用户以及数据库中的一些工作站。当一个人退出时,访问他们的工作站名称和访问登录id、Admin(除非您使用的是访问安全性)将保留在“插槽”或ldb文件中的记录中。下次有人进入MDB时,此插槽或记录可能会被覆盖,具体取决于ldb文件中该插槽或记录之前可用的插槽或记录
您需要所有Access应用程序的完整路径和文件名;这可能是不可能的 对于那些您可以循环浏览的文件:
Private Sub CheckToSeeIfLinked()
Dim Dbs As DAO.Database
Dim Tdf As DAO.TableDef
Dim Tdfs As TableDefs
Dim wrk As DAO.Workspace
Set wrk = DBEngine.Workspaces(0)
Dim TestDatabaseForLinks As String
TestDatabaseForLinks = "C:\FileNameToCheck.mdb"
Set Dbs = wrk.OpenDatabase(TestDatabaseForLinks)
Set Tdfs = Dbs.TableDefs
For Each Tdf In Tdfs
If Tdf.Connect <> "" Then
Debug.Print "Table: " & Tdf.Name & " - Is Linked To: " & Tdf.Connect
Else
Debug.Print "Table: " & Tdf.Name & " is not linked"
End If
Next
If Not (Dbs Is Nothing) Then
Dbs.Close
Set Dbs = Nothing
Set Tdfs = Nothing
End If
End Sub
Private-Sub-CheckToSeeIfLinked()
Dim数据库作为DAO.Database
将Tdf调暗为DAO.TableDef
将Tdfs变暗为TableDefs
Dim wrk作为DAO.Workspace
设置wrk=DBEngine.workspace(0)
Dim TestDatabaseForLinks作为字符串
TestDatabaseForLinks=“C:\FileNameToCheck.mdb”
设置Dbs=wrk.OpenDatabase(TestDatabaseForLinks)
设置Tdfs=Dbs.TableDefs
对于Tdfs中的每个Tdf
如果Tdf.Connect为“”,则
Debug.Print“表:&Tdf.Name&”-链接到:&Tdf.Connect
其他的
Debug.Print“表:”&Tdf.Name&“未链接”
如果结束
下一个
如果不是(Dbs什么都不是),那么
星展银行,结束
设置Dbs=Nothing
设置Tdfs=无
如果结束
端接头
您需要所有Access应用程序的完整路径和文件名;这可能是不可能的
对于那些您可以循环浏览的文件:
Private Sub CheckToSeeIfLinked()
Dim Dbs As DAO.Database
Dim Tdf As DAO.TableDef
Dim Tdfs As TableDefs
Dim wrk As DAO.Workspace
Set wrk = DBEngine.Workspaces(0)
Dim TestDatabaseForLinks As String
TestDatabaseForLinks = "C:\FileNameToCheck.mdb"
Set Dbs = wrk.OpenDatabase(TestDatabaseForLinks)
Set Tdfs = Dbs.TableDefs
For Each Tdf In Tdfs
If Tdf.Connect <> "" Then
Debug.Print "Table: " & Tdf.Name & " - Is Linked To: " & Tdf.Connect
Else
Debug.Print "Table: " & Tdf.Name & " is not linked"
End If
Next
If Not (Dbs Is Nothing) Then
Dbs.Close
Set Dbs = Nothing
Set Tdfs = Nothing
End If
End Sub
Private-Sub-CheckToSeeIfLinked()
Dim数据库作为DAO.Database
将Tdf调暗为DAO.TableDef
将Tdfs变暗为TableDefs
Dim wrk作为DAO.Workspace
设置wrk=DBEngine.workspace(0)
Dim TestDatabaseForLinks作为字符串
TestDatabaseForLinks=“C:\FileNameToCheck.mdb”
设置Dbs=wrk.OpenDatabase(TestDatabaseForLinks)
设置Tdfs=Dbs.TableDefs
对于Tdfs中的每个Tdf
如果Tdf.Connect为“”,则
Debug.Print“表:&Tdf.Name&”-链接到:&Tdf.Connect
其他的
Debug.Print“表:”&Tdf.Name&“未链接”
如果结束
下一个
如果不是(Dbs什么都不是),那么
星展银行,结束
设置Dbs=Nothing
设置Tdfs=无
如果结束
端接头
启动海报的好主意,但有几条评论。1) 您将需要运行所有服务器文件夹以查找MDB/ACCDB,并且您将丢失本地工作站上的一些文件夹。2) 这可能涉及MDB文件的日期,因此,如果将来有人希望看到用户最后一次触摸MDB的时间,这可能会产生误导。3) 至于Excel、Word、C#、VB.Net等非访问链接呢?@Tony Toews-我认为这符合一家公司想要摆脱文件而不是永远等待的典型场景(例如,一些例程只在年底运行)。1) 检查对此文件拥有权限的本地工作站2)目标是终止/消除将来的使用。3) 同意,但该问题只要求访问文件,我的回答没有误导性。抱歉,我对误导性的评论是因为MDB/ACCDB文件的日期可能与当前日期和时间相接触。因此,如果有人以后查看上次使用文件的时间,这将产生误导。所以你可能想