Database DAO 3.6和Win7/Vista UAC问题
我使用旧的DAO3.6连接Access数据库(带有mde扩展)。当UAC低/禁用时,该应用程序在XP和Win7/Vista上运行良好。但当UAC开启时,我会出现以下错误: Microsoft Jet数据库引擎无法打开文件“C:\ProgramData\company\db.mde”。它已被其他用户以独占方式打开,或者您需要查看其数据的权限 我的代码: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
'Connect to Database
dbE = New DAO.DBEngine()
dbT = dbE.OpenDatabase(Environment.GetFolderPath(
Environment.SpecialFolder.CommonApplicationData) & "\company\db.mde")
默认情况下,Access数据库以读写方式打开。默认情况下,普通用户对
C:\ProgramData
没有写入权限。因为,当UAC启用时,您只是一个“普通用户”,所以它不会工作。要解决此问题,您有以下选项:
- 使用管理权限(鼠标右键/以管理员身份运行)启动VB.NET应用程序
- 更改
上的NTFS权限,以便普通用户可以修改文件C:\ProgramData\company
- 以共享只读模式打开数据库。这样,DAO就不需要文件的写入权限(只读),也不需要创建ldb文件的权限(共享)
C:\ProgramData
没有写入权限。因为,当UAC启用时,您只是一个“普通用户”,所以它不会工作。要解决此问题,您有以下选项:
- 使用管理权限(鼠标右键/以管理员身份运行)启动VB.NET应用程序
- 更改
上的NTFS权限,以便普通用户可以修改文件C:\ProgramData\company
- 以共享只读模式打开数据库。这样,DAO就不需要文件的写入权限(只读),也不需要创建ldb文件的权限(共享)
dbT = dbE.OpenDatabase(Environment.GetFolderPath(
Environment.SpecialFolder.CommonApplicationData) & "\company\db.mde",
True, True)