MS Access中有一种方法,如果ODBC链接表是SQL视图或表,则可以使用VBA进行计算

问题描述 投票:1回答:1

我有一个Access数据库,其中包含数百个ODBC链接表,以及几个后端SQL Server。这些链接表中的一些链接到SQL表,而另一些链接到SQL视图。使用VBA,有什么方法可以确定哪个是SQL表,哪个是SQL视图?

谢谢。

ms-access odbc sql-view linked-tables
1个回答
0
投票

您可以从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
© www.soinside.com 2019 - 2024. All rights reserved.