在使用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模块中的自定义函数
这样导致 无法识别到这个查询
将查询中用到的自定义函数删除后,则成功获取了
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!