使用ADO的OpenSchema或ADOX无法读取所有Access数据库里所有查询名称列表的问题
- 2021-10-24
- 来源/作者: 菜鸟图库/ 菜鸟图库
- 446 次浏览
在使用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 = flexResizeBoth End Sub
出现 的错误如下(ADO VBA代码取得的结果与Access数据库查询实际对比)
经过不断尝试与分析,终于发现,原来这个少掉的Access查询,使用了一个Access模块中的自定义函数
这样导致 无法识别到这个查询
将查询中用到的自定义函数删除后,则成功获取了
标签(TAG) access Access参数查询