首页 > 其他专区 > Access >

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

Access 2022-04-18 22:08:57

在使用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数据库查询实际对比)


 

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

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

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


 

 


标签: 使用ADOOpenSchemaADOX无法读取所有

office教程网 Copyright © 2016-2020 http://www.office9.cn. Some Rights Reserved. 苏ICP备20040415号-9