首頁 > 資料庫 > mysql教程 > 如何在 MS Access 執行無表格 UNION 查詢?

如何在 MS Access 執行無表格 UNION 查詢?

Susan Sarandon
發布: 2025-01-12 09:25:43
原創
865 人瀏覽過

How to Perform a Table-less UNION Query in MS Access?

MS Access (Jet/ACE)中的無表UNION查詢

在使用Jet/ACE資料庫引擎的Microsoft Access中,嘗試使用UNION查詢而沒有指定表格資料來源時,可能會遇到錯誤。將出現錯誤訊息「查詢輸入必須至少包含一個表格或查詢」。

此限制源自於引擎對FROM子句中至少一個資料表或查詢的要求,即使未使用該資料來源中的任何欄位也是如此。要克服這個問題,您可以使用始終包含單行的虛擬表。

建立虛擬表

<code>Public Sub CreateDualTable()
    Dim strSql As String
    strSql = "CREATE TABLE Dual (id COUNTER CONSTRAINT pkey PRIMARY KEY);"
    Debug.Print strSql
    CurrentProject.Connection.Execute strSql
    strSql = "INSERT INTO Dual (id) VALUES (1);"
    Debug.Print strSql
    CurrentProject.Connection.Execute strSql

    strSql = "ALTER TABLE Dual" & vbNewLine & _
        vbTab & "ADD CONSTRAINT there_can_be_only_one" & vbNewLine & _
        vbTab & "CHECK (" & vbNewLine & _
        vbTab & vbTab & "(SELECT Count(*) FROM Dual) = 1" & vbNewLine & _
        vbTab & vbTab & ");"
    Debug.Print strSql
    CurrentProject.Connection.Execute strSql
End Sub</code>
登入後複製

使用虛擬表

使用虛擬表,您現在可以建立無表UNION查詢:

<code>SELECT "foo" AS my_text
FROM Dual
UNION ALL
SELECT "bar"
FROM Dual;</code>
登入後複製

替代方法

或者,您可以使用帶有TOP 1或WHERE子句的SELECT語句將結果集限制為單行。

請注意,檢查約束僅在透過ADO(CurrentProject.Connection.Execute)執行的語句中可用。 DAO(CurrentDb.Execute)不支援創建檢查約束。

以上是如何在 MS Access 執行無表格 UNION 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板