用Python获取链接表的msaccess源数据库

2024-10-01 22:40:59 发布

您现在位置:Python中文网/ 问答频道 /正文

在对这个问题进行了大量研究之后,我请求您的指导!你知道吗

使用Python,我必须访问多址数据库,并提取有关这些数据库内容的信息(表名,表类型,源(如果是链接表)…)。你知道吗

我开始使用pyodbc但是当我想访问包含我想要的所有数据的MSysObjects表时,我遇到了访问授权问题(“无法读取记录没有对“\xa0MSysObjects\xa0的读取权限”)。你知道吗

经过一番搜索,我在accessdb中找到了一些代码行来授权这样的请求。但是它需要从每个accessdb启动,因为有些函数只能在accessdb上使用。你知道吗

所以我决定使用win32com来看看它是否有解决方案。 不幸的是,它没有。我有完全相同的错误。

最后,似乎只有很少的解决办法:

  1. 找出一个方法,把授权给 数据库(可以通过Python直接导入,也可以通过制作Python 从特定的Access数据库导入),然后执行它。你知道吗
  2. 找到一种从MSysObjects以外的其他方式获取所需信息(这里是链接表的源数据库)的方法。你知道吗
  3. 找到一种通过SQL请求直接从Python更新授权的方法。你知道吗

我希望我能理解! 如果你对我想到的一个解决方案,甚至是一个完全不同的解决方案有答案,我会非常感激的!你知道吗

向你们所有人致意!你知道吗


Tags: 数据方法信息数据库类型内容记录解决方案
1条回答
网友
1楼 · 发布于 2024-10-01 22:40:59

如果你对一个非Python的解决方案满意,我认为VBA是完成这类工作的最佳工具。你知道吗

Private Sub Command1_Click()

Dim db As DAO.Database, tbl As DAO.TableDef
Dim f As DAO.Field
Set db = CurrentDb() ' Connect to current database

' Loop through each table in the database
For Each tbl In db.TableDefs
    Debug.Print "Table name: ", tbl.Name
    ' Loop throuth each field in the table
    For Each f In tbl.Fields
        Debug.Print "Field: ", f.Name
    Next f
Next tbl

End Sub

相关问题 更多 >

    热门问题