当前位置:萝卜系统下载站 > 办公软件教程 > 详细页面

使用ADO的OpenSchema或ADOX无法读取所有Access数据库里所有查询名称下文的问题

使用ADO的OpenSchema或ADOX无法读取所有Access数据库里所有查询名称下文的问题

更新时间:2023-07-04 文章作者:未知 信息来源:网络 阅读次数:

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员, 在包括专业版和更高版本的office版本里面被单独出售。2018年9月25日,最新的微软Office Access 2019在微软Office 2019里发布。

在使用ADO的OpenSchema或ADOX 读取Access数据库里所有查询的清单时

发现结果总是少了一个查询,Access查询列表中有5个,但用VBA 或VB代码读出来只有4个,少了一个


?

ADO读取Access数据库所有查询名的代码如下


?

Private Sub OpenDBSchema(FileName As String)    Dim conn As New ADODB.Connection    Dim mProvider As String    Dim fso As New FileSystemObject    If Not fso.FileExists(FileName) Then Set grid1.DataSource = Nothing    Select Case LCase(fso.GetExtensionName(FileName))    Case "mdb"        mProvider = "Microsoft.Jet.OLEDB.4.0"    Case "accdb"        mProvider = "Microsoft.ACE.OLEDB.12.0"    End Select    conn.ConnectionString = "Provider=" & mProvider & ";Data Source=" & FileName & ";Persist Security Info=False;"    conn.Open    Set grid1.DataSource = conn.OpenSchema(adSchemaTables)    grid1.AllowUserResizing = flexResizeBothEnd Sub


?

出现 的错误如下(ADO VBA代码取得的结果与Access数据库查询实际对比)

使用ADO的OpenSchema或ADOX无法读取所有Access数据库里所有查询名称列表的问题_本站


?

经过不断尝试与分析,终于发现,原来这个少掉的Access查询,使用了一个Access模块中的自定义函数

这样导致 无法识别到这个查询

将查询中用到的自定义函数删除后,则成功获取了


?

?

使用ADO的OpenSchema或ADOX无法读取所有Access数据库里所有查询名称列表的问题_本站


Microsoft Access在很多地方得到广泛使用,例如小型企业,大公司的部门。

温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html