无法打开.MDB或访问映射网络驱动器上的文件

时间:2017-01-02 10:33:29

标签: vb6 access network-drive

我在映射的网络驱动器上打开.mdb(访问97)时遇到了一些问题。驱动器没问题,我可以通过net use

看到它

如果我使用路径而不是网络驱动器(\ srv10 \ mdb)打开它,我可以正常打开文件。

我已尝试使用不同的用户创建驱动器(他们都有权限),但它没有帮助。

如果我尝试在代码中打开它,也会发生这种情况(让我们说VB6)

Database path : P:\db.mdb doesn't work.
Database path : \\srv10\mdb\db.mdb works fine.

有人能帮助我吗?它过去常常使用网络驱动器,现在突然间它没有。

1 个答案:

答案 0 :(得分:4)

这是由于代码执行的身份。您在自己的用户上下文中映射了驱动器,但运行脚本或VB代码的实际用户上下文是另一个(本地计算机?),其中不存在相同的映射。

你可以

您在脚本解决方案中遇到的一个可能的难点是如何提供凭据 - 对in the SO answer to a similar question here有一个很好的解释。

注册表编辑在链接中解释,但要点是:

症状:在Windows Vista或Windows 7中打开用户帐户控制(UAC)后,程序可能无法访问某些网络位置。使用命令提示符访问网络位置时,也可能会出现此问题。

原因:出现此问题的原因是UAC将Administrators组的成员视为标准用户。因此,登录脚本映射的网络共享将与标准用户访问令牌共享,而不是与完整的管理员访问令牌共享。

解决方案:要解决此问题,请配置EnableLinkedConnections注册表值。此值使Windows Vista和Windows 7能够共享已过滤的访问令牌与Administrators组成员的完全管理员访问令牌之间的网络连接。 [然后给出一个注册编辑程序]

我意识到这不是一个完美的外卖答案,但目前你没有提供足够的细节来给出一个,所以我希望这能为你指明前进的方向。

[OP发布注册编辑解决方案后编辑完整性。]