首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Microsoft Excel VBA仅查询Access accdb文件时,对'MSysObjects‘没有读取权限(错误编号:-2147217911) - mdb工作正常

这个问题涉及到了Microsoft Excel VBA与Access数据库之间的操作权限问题。具体而言,当使用Microsoft Excel VBA查询Access accdb文件时,可能会遇到对'MSysObjects'没有读取权限的错误。

'MSysObjects'是Access数据库中的一个系统表,存储了数据库中的各种对象(如表格、查询、报表等)的元数据信息。在默认情况下,对于该表的读取权限是受限的,因此在使用Excel VBA查询Access数据库时可能会出现读取权限不足的错误。

解决这个问题的方法是通过在Excel VBA中使用ADO(ActiveX Data Objects)连接到Access数据库,并设置合适的连接选项来获取读取权限。下面是一种可能的解决方案:

  1. 确保计算机上已安装ADO库。你可以通过在VBA编辑器中的“工具”菜单下选择“引用”来查看并勾选“Microsoft ActiveX Data Objects x.x Library”。
  2. 在VBA代码中,使用以下语句创建一个ADO连接对象:
  3. 在VBA代码中,使用以下语句创建一个ADO连接对象:
  4. 使用连接字符串来连接到Access数据库。连接字符串的格式为:
  5. 使用连接字符串来连接到Access数据库。连接字符串的格式为:
  6. 其中,<数据库路径>是Access数据库文件的路径,<密码>是数据库的密码(如果有设置密码的话)。
  7. 在连接之前,使用以下语句设置连接选项,以获取对'MSysObjects'表的读取权限:
  8. 在连接之前,使用以下语句设置连接选项,以获取对'MSysObjects'表的读取权限:
  9. 执行查询操作。你可以使用类似以下的语句来执行查询,并将结果保存到Excel中:
  10. 执行查询操作。你可以使用类似以下的语句来执行查询,并将结果保存到Excel中:

请注意,以上代码仅为示例,你需要根据自己的具体情况进行适当调整。

对于Access数据库的其他操作(如更新、插入、删除等),你可以在VBA中使用相应的ADO语句来执行。另外,根据具体需求,你可能需要使用VBA的错误处理机制来处理可能出现的错误。

关于腾讯云的相关产品和服务推荐,由于要求不能提及具体的云计算品牌商,建议你可以通过腾讯云的官方网站,查看与数据库相关的产品和服务,以获得更详细的信息和相关文档。

希望以上信息对你有帮助!如有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python读取access文件并入库

Python读取access文件时和读取Excel文件不是很一样,当然用的工具也不一样,在读取excel中的数据时用的是xlrd,而读取access文件时用的则是pypyodbc。 简要安装过程:1、首先要安装access驱动(AccessRuntime_x64_zh-cn.exe),以便于python连接;2、安装pypyodbc模块(pypyodbc-1.3.3.zip)。安装完之后就可以连接access数据库了。(连接access是在Windows下作的,个人感觉在Linux下读取不了access) 简要使用过程(程序):安装完成后,1、在python程序中导入pypyodbc模块,然后再连接access既可。因为access属于数据库,在读取access中的数据时,也要用到sql语句。 例子: #!/usr/bin/python # -*- coding: utf-8 -*- importsys import pypyodbc reload(sys) sys.setdefaultencoding('gbk')  #####gbk也可以换成utf—8,如果出现编码问题,这两个都可以试试 conn = pypyodbc.connect(u'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + filepath)  #### filepath是变量,access文件的绝对路径。注意:*.accdb一定要加上 cur.execute('select * from %s' % tablename)  ### tablename是变量,指的是access中的表名 list = cur.fetchall()  ####获取access中的数据

02

JDK1.8 连接Access数据库

JDK1.8增加了很多新特性,但不再包含access桥接驱动,因此在连接Access数据库时有所变化[和JDK1.6相比]. 一、 设置数据源(ODBC) 步骤:控制面板->系统安全->管理工具->数据源(ODBC) [针对Window 32位] 1.添加(选定Microsoft Access Driver(.mdb  .accdb))完成 2.指定数据源名、选择驱动器(C、D盘),选中要连接的数据库。 网上有很多关于设置数据源(ODBC)的帖子,可以百度一下。 3.常见问题 在创建Access数据的ODBC数据源时没有Access数据源驱动器… 打开管理工具 ODBC数据源管理器里面只有SQLServer ,没有Access等其他的,这是因为Access数据源驱动器是32位的,64位不支持。 4.解决方案[针对Window 64位]:打开32位版本的ODBC管理工具 通过C:/Windows/SysWOW64/odbcad32.exe启动32位版本ODBC管理工具。(界面和设置过程和设置32位的相同)

01
领券