Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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
Database DAO 3.6和Win7/Vista UAC问题_Database_Vb.net_Uac_Dao - Fatal编程技术网

Database DAO 3.6和Win7/Vista UAC问题

Database DAO 3.6和Win7/Vista UAC问题,database,vb.net,uac,dao,Database,Vb.net,Uac,Dao,我使用旧的DAO3.6连接Access数据库(带有mde扩展)。当UAC低/禁用时,该应用程序在XP和Win7/Vista上运行良好。但当UAC开启时,我会出现以下错误: Microsoft Jet数据库引擎无法打开文件“C:\ProgramData\company\db.mde”。它已被其他用户以独占方式打开,或者您需要查看其数据的权限 我的代码: 'Connect to Database dbE = New DAO.DBEngine() dbT = dbE.OpenDatabase(Envi

我使用旧的DAO3.6连接Access数据库(带有mde扩展)。当UAC低/禁用时,该应用程序在XP和Win7/Vista上运行良好。但当UAC开启时,我会出现以下错误:

Microsoft Jet数据库引擎无法打开文件“C:\ProgramData\company\db.mde”。它已被其他用户以独占方式打开,或者您需要查看其数据的权限

我的代码:

'Connect to Database
dbE = New DAO.DBEngine()
dbT = dbE.OpenDatabase(Environment.GetFolderPath(
    Environment.SpecialFolder.CommonApplicationData) & "\company\db.mde")

默认情况下,Access数据库以读写方式打开。默认情况下,普通用户对
C:\ProgramData
没有写入权限。因为,当UAC启用时,您只是一个“普通用户”,所以它不会工作。要解决此问题,您有以下选项:

  • 使用管理权限(鼠标右键/以管理员身份运行)启动VB.NET应用程序

  • 更改
    C:\ProgramData\company
    上的NTFS权限,以便普通用户可以修改文件

  • 共享只读模式打开数据库。这样,DAO就不需要文件的写入权限(只读),也不需要创建ldb文件的权限(共享)


默认情况下,Access数据库以读写方式打开。默认情况下,普通用户对
C:\ProgramData
没有写入权限。因为,当UAC启用时,您只是一个“普通用户”,所以它不会工作。要解决此问题,您有以下选项:

  • 使用管理权限(鼠标右键/以管理员身份运行)启动VB.NET应用程序

  • 更改
    C:\ProgramData\company
    上的NTFS权限,以便普通用户可以修改文件

  • 共享只读模式打开数据库。这样,DAO就不需要文件的写入权限(只读),也不需要创建ldb文件的权限(共享)


我不知道这是一个特权问题。现在我使用InstallShield在应用程序安装程序中设置了Everyone对此文件夹的权限,没有问题:)。我不知道这是一个权限问题。现在我使用InstallShield在应用程序安装程序中设置了Everyone对此文件夹的权限,没有问题:)。
dbT = dbE.OpenDatabase(Environment.GetFolderPath( 
    Environment.SpecialFolder.CommonApplicationData) & "\company\db.mde", 
    True, True)