Kombinieren Sie Reihen / Zeilen verketten
Ich bin auf der Suche nach einer Access 2007-äquivalent zu der SQL Server-die COALESCE-Funktion.
Im SQL Server könnte man etwas machen wie:
Person
John
Steve
Richard
SQL
DECLARE @PersonList nvarchar(1024)
SELECT @PersonList = COALESCE(@PersonList + ',','') + Person
FROM PersonTable
PRINT @PersonList
Produziert: John, Steve, Richard
Möchte ich das gleiche tun, aber in Access 2007.
Weiß jemand, wie man kombinieren Zeilen wie diese in Access 2007?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel für eine benutzerdefinierte Funktion (UDF) und der möglichen Nutzung.
Funktion:
Verwendung:
Einer ADO-version, inspiriert durch einen Kommentar von onedaywhen
Aus: http://wiki.lessthandot.com/index.php/Concatenate_a_List_into_a_Single_Field_%28Column%29
Ich denke Nz ist, was Sie wollen, die syntax ist
Nz(variant, [if null value])
. Hier ist der link zur Dokumentation: Nz-FunktionObwohl Nz hat eine vergleichbare Sache zu VERSCHMELZEN, Sie können es nicht verwenden in Access zu tun, der Vorgang, den Sie ausführen. Es ist nicht das VERSCHMELZEN, das den Aufbau der Liste von Reihe-Werten, es ist die concatenatiion in eine variable.
Leider ist dies nicht möglich, innerhalb einer Access-Abfrage, die eine einzelne SQL-Anweisung, und wo es keine Funktion gibt, um eine variable zu deklarieren.
Denke ich Sie brauchen würde, um eine Funktion zu erstellen, das ein resultset Durchlaufen und verketten die einzelnen Werte in einen string.
Kombinieren Zeilen in Access, werden Sie wahrscheinlich benötigen code, der ungefähr so aussieht:
Werde Sie hinzufügen möchten, error-handling-code, und bereinigen Sie das recordset, und das wird sich leicht ändern, wenn Sie die Verwendung von ADO statt DAO, aber die Allgemeine Idee ist die gleiche.
Verstehe ich hier, dass Sie haben eine Tabelle "person" mit 3 Datensätze. Es gibt nichts vergleichbares zu dem, was Sie beschreiben, in Access.
In "standard" - Access (DAO-recordset), müssen Sie ein recordset öffnen und verwenden Sie die getrows-Methode, um Ihre Daten
sobald Sie diese Arrays (es wird echokar), können Sie es verändern, zu extrahieren, die "Spalte" du wirst Sie brauchen. Es könnte eine intelligente Art und Weise zu extrahieren, die ein ein-dimensionales array aus in diesem, so dass Sie können verwenden Sie dann den "Join" - Anweisung zu verketten die einzelnen array-Wert in einen string.