我有一个Access数据库,其中包含数百个ODBC链接表,以及几个后端SQL Server。这些链接表中的一些链接到SQL表,而另一些链接到SQL视图。使用VBA,有什么方法可以确定哪个是SQL表,哪个是SQL视图?
谢谢。
您可以从SQL Server查询该信息。
SELECT TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA + '.' + TABLE_NAME = ?
在VBA中实施:
Dim db As DAO.Database
Set db = CurrentDb
Dim td As DAO.TableDef
Set td = db.TableDefs("SomeLinkedTable")
Dim qd As DAO.QueryDef
Set qd = db.CreateQueryDef("")
qd.Connect = db.Connect
qd.SQL = "SELECT TABLE_TYPE " & _
"FROM INFORMATION_SCHEMA.TABLES " & _
"WHERE TABLE_SCHEMA + '.' + TABLE_NAME = '" & Replace(td.SourceTableName, "'", "''") & "'"
Dim rs As DAO.Recordset
Set rs = qd.OpenRecordset
Debug.Print rs!TABLE_TYPE.Value 'Returns VIEW or BASE TABLE depending on the type