Heim > Datenbank > MySQL-Tutorial > Wie führe ich eine tabellenlose UNION-Abfrage in MS Access durch?

Wie führe ich eine tabellenlose UNION-Abfrage in MS Access durch?

Susan Sarandon
Freigeben: 2025-01-12 09:25:43
Original
917 Leute haben es durchsucht

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

Tabellenlose UNION-Abfrage in MS Access (Jet/ACE)

In Microsoft Access mit der Jet/ACE-Datenbank-Engine können Fehler auftreten, wenn Sie versuchen, eine UNION-Abfrage zu verwenden, ohne eine Tabellendatenquelle anzugeben. Es erscheint die Fehlermeldung „Die Abfrageeingabe muss mindestens eine Tabelle oder Abfrage enthalten“.

Diese Einschränkung ergibt sich aus der Forderung der Engine nach mindestens einer Tabelle oder Abfrage in der FROM-Klausel, auch wenn keine Felder aus dieser Datenquelle verwendet werden. Um dieses Problem zu lösen, können Sie eine virtuelle Tabelle verwenden, die immer eine einzelne Zeile enthält.

Virtuelle Tabelle erstellen

<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>
Nach dem Login kopieren

Verwenden Sie virtuelle Tische

Mithilfe virtueller Tabellen können Sie jetzt tabellenlose UNION-Abfragen erstellen:

<code>SELECT "foo" AS my_text
FROM Dual
UNION ALL
SELECT "bar"
FROM Dual;</code>
Nach dem Login kopieren

Alternative Methoden

Alternativ können Sie eine SELECT-Anweisung mit einer TOP 1- oder WHERE-Klausel verwenden, um die Ergebnismenge auf eine einzelne Zeile zu beschränken.

Bitte beachten Sie, dass Prüfeinschränkungen nur in Anweisungen verfügbar sind, die über ADO (CurrentProject.Connection.Execute) ausgeführt werden. DAO (CurrentDb.Execute) unterstützt das Erstellen von Prüfeinschränkungen nicht.

Das obige ist der detaillierte Inhalt vonWie führe ich eine tabellenlose UNION-Abfrage in MS Access durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage