Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 什么是正确的;“文件名”;要在GetObject(“Document Name”)调用中使用的Access ADP/MDB的名称?_Ms Access_Vba_Com - Fatal编程技术网

Ms access 什么是正确的;“文件名”;要在GetObject(“Document Name”)调用中使用的Access ADP/MDB的名称?

Ms access 什么是正确的;“文件名”;要在GetObject(“Document Name”)调用中使用的Access ADP/MDB的名称?,ms-access,vba,com,Ms Access,Vba,Com,据 可以附加到特定实例 如果你知道一个公开的 在那个实例中记录。对于 例如,如果Excel的一个实例是 正在使用名为的打开工作簿运行 第二册,附加以下代码 成功复制到该实例,即使 这不是最早的例子 启动日期: Set xlApp = GetObject("Book2").Application 该示例适用于Excel,主要是因为“文档名”与文件名几乎相同。我需要让它工作以获取访问权限 我有用户运行不同访问应用程序(.ADP)的多个实例,我需要一个具有特定名称的实例。我不知道

可以附加到特定实例 如果你知道一个公开的 在那个实例中记录。对于 例如,如果Excel的一个实例是 正在使用名为的打开工作簿运行 第二册,附加以下代码 成功复制到该实例,即使 这不是最早的例子 启动日期:

Set xlApp = GetObject("Book2").Application
该示例适用于Excel,主要是因为“文档名”与文件名几乎相同。我需要让它工作以获取访问权限

我有用户运行不同访问应用程序(.ADP)的多个实例,我需要一个具有特定名称的实例。我不知道完整的文件路径,否则我可以做一个简单的

Set app = GetObject("c:\my\app\myapp.adp", "Access.Application")
目前,我喜欢打电话

Set app = GetObject(, "Access.Application")
并检查返回的Application.Name。如果它是好的,我用它来调用它的一些函数,如果不是,它就失败了。我听说过Running Objects表,但由于我必须在VBScript中获取对象,因此API调用有点太多

底线:
在GetObject(“Document Name”)调用中使用的Access ADP的正确“Document Name”是什么?它返回什么类型的对象?

您可能想阅读以下内容:

不幸的是,看起来“文档名”必须是mdb文件,因此如果您不知道文件路径,就不能使用“文档名”

除了Excel每个实例可以有多个文档之外,Excel还阻止您打开两个同名文档,即使它们位于不同的文件夹中,并且您正在不同的Excel实例中打开它们

另一方面(为了回应David-W-Fenton的评论),Access允许您打开同一数据库的多个实例(更不用说具有相同名称的不同数据库),只要您不以独占模式打开任何实例


这进一步证明Excel在ROT中注册其文档的方式与Access的注册方式非常不同。

回到这个问题,因为@phoog发布了一个答案,我想既然Access一次只能打开一个数据库,您需要查看Access的每个实例并检查其CurrentDB.Name。现在,对于ADP,我不知道您应该检查什么,但可能是CurrentProject.Path


我不相信这能真正解决最初的问题,它似乎只想找到文件名的实例,但我认为即使这样做有效,也不是一个好主意。您可以轻松地使用独立的Access应用程序,这些应用程序返回相同的应用程序名称和文件名,但存储在文件系统中的不同位置。

Excel的单个实例可以打开多个文档,但Access的单个实例一次只能打开一个数据库。如果需要打开多个数据库,则必须打开多个Access实例。如果在两个Access实例中打开相同的MDB/ACCDB/ADP,我不确定会发生什么。是的,我确实有多个Access实例,每个实例针对不同的数据库/ADP。这就是为什么GetObject(,“Access.Application”)不给我任何帮助/可能返回错误实例的原因。我只是不知道数据库的路径,但我知道(希望是)数据库的“文档名”(我创建了它们),它不需要路径(在Excel中是这样工作的)。一段时间过去了,从那以后,我们以某种方式更改了ADP的安装和启动,所以现在我们知道了需要调用GetObject时ADP的完整路径(sFilename)出现。