Ich bin auf der Suche nach einer Access 2007-Entsprechung der SQL Server-Funktion COALESCE.
In SQL Server können Sie Folgendes tun:
Person
%Vor%SQL
%Vor%Was produziert: John, Steve, Richard
Ich möchte dasselbe aber in Access 2007 machen.
Kann jemand Zeilen wie diese in Access 2007 kombinieren?
Ich denke, Nz ist was du willst, Syntax ist Nz(variant, [if null value])
. Hier ist der Link zur Dokumentation: Nz-Funktion
Obwohl Nz mit COALESCE vergleichbar ist, können Sie es nicht in Access verwenden, um die Operation auszuführen, die Sie ausführen. Es ist nicht die COALESCE, die die Liste der Zeilenwerte erstellt, es ist die Verkettung zu einer Variablen.
Leider ist dies nicht möglich innerhalb einer Access-Abfrage, die eine einzelne SQL-Anweisung sein muss und wo es keine Möglichkeit gibt, eine Variable zu deklarieren.
Ich denke, Sie müssten eine Funktion erstellen, die eine Ergebnismenge öffnet, darüber iteriert und die Zeilenwerte zu einer Zeichenkette verkettet.
Um Zeilen in Access zu kombinieren, benötigen Sie wahrscheinlich Code, der ungefähr so aussieht:
%Vor%Sie möchten Code zur Fehlerbehandlung hinzufügen und Ihr Recordset bereinigen. Dies wird sich leicht ändern, wenn Sie ADO anstelle von DAO verwenden, aber die allgemeine Idee ist dieselbe.
Ich verstehe hier, dass Sie eine Tabelle "Person" mit 3 Datensätzen haben. Es gibt nichts vergleichbar mit dem, was Sie in Access beschreiben.
In "Standard" Access (DAO-Recordset) müssen Sie ein Recordset öffnen und verwenden Sie die Getrows-Methode, um Ihre Daten
zu haben %Vor%Sobald Sie dieses Array haben (es wird zweidimensional sein), können Sie es manipulieren, um die "Spalte" zu extrahieren, die Sie benötigen. Es könnte eine schlaue Art sein, ein eindimensionales Array daraus zu extrahieren, so dass Sie dann die "Join" -Anweisung verwenden können, um jeden Array-Wert in einer Zeichenfolge zu verketten.
Tags und Links ms-access access-vba coalesce ms-access-2007