Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aggregatfunktion GROUP_CONCAT() in Access nutzen?

1,393 views
Skip to first unread message

Arne

unread,
Dec 16, 2009, 7:48:06 AM12/16/09
to
Hallo Leute,
ich brauche eine Aggregatfunktion wie GROUP_CONCAT() aus mysql in
Access. Die Funktion soll einfach gruppierte Werte mit Kommas getrennt
in eine Zeile schreiben. Wie bekomm ich sowas in Access hin? Ich habe
per Google folgenden Beitrag gefunden:
http://www.tech-archive.net/Archive/Access/microsoft.public.access.queries/2004-03/1674.html

Dort wird auf eine Seite verlinkt wo es scheinbar ein Beispiel geben
soll. Leider kann die Seite nicht vollständig geladen werden weil bei
der Erzeugung der Seite ein Script fehler auftritt :(

Weis jemand Rat?

Gruß Arne

Gunter Avenius

unread,
Dec 16, 2009, 7:54:53 AM12/16/09
to
Hallo Arne,

Arne schrieb folgendes:


> ich brauche eine Aggregatfunktion wie GROUP_CONCAT() aus mysql in
> Access. Die Funktion soll einfach gruppierte Werte mit Kommas getrennt
> in eine Zeile schreiben. Wie bekomm ich sowas in Access hin? Ich habe
> per Google folgenden Beitrag gefunden:
> http://www.tech-archive.net/Archive/Access/microsoft.public.access.queries/2004-03/1674.html
>
> Dort wird auf eine Seite verlinkt wo es scheinbar ein Beispiel geben

> soll. Leider kann die Seite nicht vollst�ndig geladen werden weil bei


> der Erzeugung der Seite ein Script fehler auftritt :(
>
> Weis jemand Rat?

Schau Dir mal ConcatVar an:
http://www.tech-archive.net/Archive/German/Access/microsoft.public.de.access/2005-02/2566.html

Gru�
Gunter
--
__________________________________________________________
Access FAQ: http://www.donkarl.com

home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de

C. Sekulla

unread,
Dec 21, 2009, 8:41:19 AM12/21/09
to

"Arne" <arn...@googlemail.com> schrieb im Newsbeitrag
news:dbc8751b-dd77-4274...@p19g2000vbq.googlegroups.com...
Hi Arne,

ich mach das mit einer VBA-Funktion. Der Aufruf ist �hnlich den
DOM-Funktionen aus AC.
z.B. Test: Domstring("DISTINCT Feld1";"tabT1";"Nr = " & Str([Nr]))

cu CS

Public Function DomString(ByVal sField As String, ByVal sTable As String, _
Optional ByVal sWhere As String = "", Optional ByVal sSeperator As
String = ", ") As String
Dim sSQL As String
Dim rsDom As DAO.Recordset
Dim dbCUDB As DAO.Database
Dim sValue As String

On Error GoTo Fehler
DomString = ""

Set dbCUDB = CurrentDb()
sSQL = "Select " & sField & " From " & sTable

If Len(sWhere) Then
sSQL = sSQL & " Where " & sWhere
End If

Set rsDom = dbCUDB.OpenRecordset(sSQL)

With rsDom
If .BOF = False And .EOF = False Then
.MoveFirst
Do While Not .EOF
If Not IsNull(.Fields(0)) Then
sValue = CStr(.Fields(0))
If Len(sValue) Then
sValue = Trim$(sValue)
End If
DomString = DomString & sValue & sSeperator
End If
.MoveNext
Loop
DomString = Left$(DomString, Len(DomString) - Len(sSeperator))
' Debug.Print DomString
End If
.Close
End With
Set rsDom = Nothing
dbCUDB.Close
Set dbCUDB = Nothing
Ende:
Exit Function

Fehler:
If Not (rsDom Is Nothing) Then
rsDom.Close
End If
Set rsDom = Nothing
If Not (dbCUDB Is Nothing) Then
dbCUDB.Close
End If
Set dbCUDB = Nothing
Resume Ende
End Function


Arne

unread,
Dec 21, 2009, 5:12:25 PM12/21/09
to
Danke ihr beiden. Ich werds im neuen Jahr mal ausprobieren.

Schöne Weihnachten,
Arne

Arne

unread,
Jan 8, 2010, 11:18:12 AM1/8/10
to
Danke für den Link nochmals.
Ich hab jetzt versucht einzubauen. Hab die Funktio per C&P in ein
Modul kopiert. Und dann die Funktion in einer Abfrage aufgerufen. Beim
Ausführen der Abfrage kommt dann die Meldung "Undefinierte Funktion
'ConcatVar' in Ausdruck." Er scheint die Funktion also scheinbar nicht
zu finden? Oder was hab ich falsch gemacht?

Gruß Arne

On 16 Dez. 2009, 13:54, Gunter Avenius <nos...@avenius.net> wrote:
> Hallo Arne,
>
> Arne schrieb folgendes:
>
> > ich brauche eine Aggregatfunktion wie GROUP_CONCAT() aus mysql in
> > Access. Die Funktion soll einfach gruppierte Werte mit Kommas getrennt
> > in eine Zeile schreiben. Wie bekomm ich sowas in Access hin? Ich habe
> > per Google folgenden Beitrag gefunden:

> >http://www.tech-archive.net/Archive/Access/microsoft.public.access.qu...


>
> > Dort wird auf eine Seite verlinkt wo es scheinbar ein Beispiel geben

> > soll. Leider kann die Seite nicht vollständig geladen werden weil bei


> > der Erzeugung der Seite ein Script fehler auftritt :(
>
> > Weis jemand Rat?
>

> Schau Dir mal ConcatVar an:http://www.tech-archive.net/Archive/German/Access/microsoft.public.de...
>
> Gruß

Karl Donaubauer

unread,
Jan 8, 2010, 11:22:33 AM1/8/10
to
Arne wrote:
> Gunter Avenius wrote:
>> ...

>>> ich brauche eine Aggregatfunktion wie GROUP_CONCAT() aus mysql in
>>> Access. Die Funktion soll einfach gruppierte Werte mit Kommas
>>> getrennt in eine Zeile schreiben. Wie bekomm ich sowas in Access hin?
>>> Ich habe per Google folgenden Beitrag gefunden:
>>> http://www.tech-archive.net/Archive/Access/microsoft.public.access.qu...
>>
>>> Dort wird auf eine Seite verlinkt wo es scheinbar ein Beispiel geben
>>> soll. Leider kann die Seite nicht vollst�ndig geladen werden weil

>>> bei der Erzeugung der Seite ein Script fehler auftritt :(
>> ...> Danke f�r den Link nochmals.

> Ich hab jetzt versucht einzubauen. Hab die Funktio per C&P in ein
> Modul kopiert. Und dann die Funktion in einer Abfrage aufgerufen. Beim
> Ausf�hren der Abfrage kommt dann die Meldung "Undefinierte Funktion

> 'ConcatVar' in Ausdruck." Er scheint die Funktion also scheinbar nicht
> zu finden? Oder was hab ich falsch gemacht?

In welche Art von Modul hast du den Code kopiert?
Es muss ein Standardmodul sein. Das sind die, die man - je nach
Access-Version - im Datenbankfenster oder Navigationsbereich
aufgelistet sieht.

--
Servus
Karl
****************
Access-FAQ: http://www.donkarl.com /// http://www.donkarl.com?NEK
.NET-Entwickler-Konferenz f�r Accessler 27./28.2.2010


Arne

unread,
Jan 8, 2010, 12:33:37 PM1/8/10
to
On 8 Jan., 17:22, "Karl Donaubauer" <NoS...@donkarl.com> wrote:
[...]

> In welche Art von Modul hast du den Code kopiert?
> Es muss ein Standardmodul sein. Das sind die, die man - je nach
> Access-Version - im Datenbankfenster oder Navigationsbereich
> aufgelistet sieht.

ja in genau so eins hab ichs reinkopiert. wenn ich im query editor ins
kontext menü gehe und "aufbauen" auswähle wird sie auch in der liste
der funktionen in der datenbank aufgelistet. so falsch kanns also
nicht gewesen sein, oder? :)

Thomas Möller

unread,
Jan 8, 2010, 3:00:13 PM1/8/10
to
Hallo Arne,

Am 08.01.2010 18:33, schrieb Arne:
>> In welche Art von Modul hast du den Code kopiert?
>> Es muss ein Standardmodul sein. Das sind die, die man - je nach
>> Access-Version - im Datenbankfenster oder Navigationsbereich
>> aufgelistet sieht.
>
> ja in genau so eins hab ichs reinkopiert. wenn ich im query editor ins

> kontext men� gehe und "aufbauen" ausw�hle wird sie auch in der liste


> der funktionen in der datenbank aufgelistet. so falsch kanns also
> nicht gewesen sein, oder? :)

dann pr�f mal bitte Deine Verweise. Details zum wie und warum findest Du
hier:
www.donkarl.com?FAQ7.1
(Link in einer Zeile)

HTH
--
Thomas

Homepage: www.Team-Moeller.de

Arne

unread,
Jan 12, 2010, 7:29:16 AM1/12/10
to
On 8 Jan., 21:00, Thomas Möller <Thomas_N_O_S_P_...@Team-Moeller.de>
wrote:
> dann prüf mal bitte Deine Verweise. Details zum wie und warum findest Du

> hier:www.donkarl.com?FAQ7.1
> (Link in einer Zeile)

hm wäre ne Idee. Leider kann ich die "Visual Basic for Applications"
und die "Microsoft Access Object Library" nicht wegklicken. Access
merkt an, dass die Bibliotheken noch verwendet werden, obwohl ich alle
Tabellen, Formulare, Module usw. geschlossen habe.

Gruß Arne

Arne

unread,
Jan 12, 2010, 7:37:17 AM1/12/10
to

Hab eben auch nochmal alles Sachen in eine neue Datenbank importiert.
Kommt leider noch der gleiche Fehler.

Thomas Möller

unread,
Jan 12, 2010, 12:01:35 PM1/12/10
to
Hallo Arne,

Am 12.01.2010 13:29, schrieb Arne:
>> dann pr�f mal bitte Deine Verweise. Details zum wie und warum findest Du


>> hier:www.donkarl.com?FAQ7.1
>> (Link in einer Zeile)
>

> hm w�re ne Idee. Leider kann ich die "Visual Basic for Applications"


> und die "Microsoft Access Object Library" nicht wegklicken. Access
> merkt an, dass die Bibliotheken noch verwendet werden, obwohl ich alle
> Tabellen, Formulare, Module usw. geschlossen habe.

das ist so normal und auch okay.

Wenn Du nur diese beiden Verweise in der Anwendung hast, kannst Du einen
defekten Verweis als Ursache f�r Dein Problem ausschlie�en.

CU
--
Thomas

Homepage: www.Team-Moeller.de

Karl Donaubauer

unread,
Jan 12, 2010, 3:23:32 PM1/12/10
to
Arne wrote:
> Gunter Avenius wrote:
>> ...
>>> ich brauche eine Aggregatfunktion wie GROUP_CONCAT() aus mysql in
>>> Access.
>> ...
> Ich hab jetzt versucht einzubauen. Hab die Funktio per C&P in ein
> Modul kopiert. Und dann die Funktion in einer Abfrage aufgerufen. Beim
> Ausf�hren der Abfrage kommt dann die Meldung "Undefinierte Funktion

> 'ConcatVar' in Ausdruck." Er scheint die Funktion also scheinbar nicht
> zu finden? Oder was hab ich falsch gemacht?

Stammen die Daten aus einer lokalen oder eingebundenen
Access/JET-Tabelle, oder machst du da etwas mit ODBC
und mySQL oder dergl.?

Poste auch mal den SQL-Text der Abfrage.

Arne

unread,
Jan 13, 2010, 8:28:39 AM1/13/10
to
On 12 Jan., 21:23, "Karl Donaubauer" <nos...@donkarl.com> wrote:
> Stammen die Daten aus einer lokalen oder eingebundenen
> Access/JET-Tabelle, oder machst du da etwas mit ODBC
> und mySQL oder dergl.?
>
> Poste auch mal den SQL-Text der Abfrage.

Eigtl. kommen die Daten per ODBC aus ner MS-SQL. Zum Arbeiten zu Hause
spiegel ich sie mir aber manchmal in eine Access-DB.

hier ist mal der SQL-Code:
SELECT B.BelID, B.Belegdatum, [Belegjahr] & "-" & [Belegnummer] AS
Belegnr, B.Belegart,B.A0Empfaenger, B.A0Matchcode, [ZWInternEW]+
[Steuerbetrag] AS BruttobetragEW, B.WKz, ConcatVar
("Artikelgruppe","dbo_KHKVKBelegePositionen","BelID",[BelID],"",",")
AS Artikelgruppen
FROM dbo_KHKVKBelege as B
WHERE (((dbo_KHKVKBelege.Belegdatum)=#12/14/2009#) AND
((dbo_KHKVKBelege.Belegkennzeichen) In
("VFR","VFG","VFS","VSD","VSL","VSR")));

Gruß Arne

Karl Donaubauer

unread,
Jan 13, 2010, 1:28:37 PM1/13/10
to
Arne wrote:
> ...

> Eigtl. kommen die Daten per ODBC aus ner MS-SQL. Zum Arbeiten zu Hause
> spiegel ich sie mir aber manchmal in eine Access-DB.
>
> hier ist mal der SQL-Code:
> SELECT B.BelID, B.Belegdatum, [Belegjahr] & "-" & [Belegnummer] AS
> Belegnr, B.Belegart,B.A0Empfaenger, B.A0Matchcode, [ZWInternEW]+
> [Steuerbetrag] AS BruttobetragEW, B.WKz, ConcatVar
> ("Artikelgruppe","dbo_KHKVKBelegePositionen","BelID",[BelID],"",",")
> AS Artikelgruppen
> FROM dbo_KHKVKBelege as B
> WHERE (((dbo_KHKVKBelege.Belegdatum)=#12/14/2009#) AND
> ((dbo_KHKVKBelege.Belegkennzeichen) In
> ("VFR","VFG","VFS","VSD","VSL","VSR")));
>

Sieht ok aus und h�rt sich auch alles ok an, bis auf die Kleinigkeit,
dass es halt nicht funktioniert. Wenn du willst, dann stelle irgendwo
eine Minimalvariante der DB hoch (1 lokale Tabelle mit 1 DS,
1 Abfrage, 1 Modul reicht). Dann kann man sich das ansehen.

Vielleicht erledigt sich das Problem ja schon beim Zusammenstellen
einer solchen Demo-DB. ;-)

Arne

unread,
Jan 13, 2010, 1:53:03 PM1/13/10
to
On 13 Jan., 19:28, "Karl Donaubauer" <nos...@donkarl.com> wrote:
[...]

> Vielleicht erledigt sich das Problem ja schon beim Zusammenstellen
> einer solchen Demo-DB. ;-)

Karl, du wirst lachen. Genau so isses :) Ich lösch eben Zeugs aus der
DB und wollte eine Minmalversion zusammenstellen für euch. Geh nochmal
durch und wollte alls hübsch machen und hab dabei das Modul von
ConcatVar nach modConcatVar umbenannt weils ja eigtl die bessere
Benennung wäre. Und genau das war der Fehler. Jetzt gehts nämlich :)
Meine Güte!

Gruß Arne

Karl Donaubauer

unread,
Jan 13, 2010, 2:25:40 PM1/13/10
to
Arne wrote:

> Karl Donaubauer wrote:
> [...]
>> Vielleicht erledigt sich das Problem ja schon beim Zusammenstellen
>> einer solchen Demo-DB. ;-)
>
> Karl, du wirst lachen. Genau so isses :) Ich l�sch eben Zeugs aus der
> DB und wollte eine Minmalversion zusammenstellen f�r euch. Geh nochmal
> durch und wollte alls h�bsch machen und hab dabei das Modul von

> ConcatVar nach modConcatVar umbenannt weils ja eigtl die bessere
> Benennung w�re. Und genau das war der Fehler. Jetzt gehts n�mlich :)
> ...

Die Reduktion auf das wesentliche bringt die Ursachen oft ans Tageslicht.

Das mit dem Modulnamen h�tte mir auch einfallen k�nnen, denn damit
bist du nicht der erste. Nur ist die Fehlermeldung immer etwas irref�hrend.

Arne

unread,
Jan 13, 2010, 2:47:26 PM1/13/10
to
On 13 Jan., 20:25, "Karl Donaubauer" <nos...@donkarl.com> wrote:
[...]

> Die Reduktion auf das wesentliche bringt die Ursachen oft ans Tageslicht.
>
> Das mit dem Modulnamen h tte mir auch einfallen k nnen, denn damit
> bist du nicht der erste. Nur ist die Fehlermeldung immer etwas irref hrend.

Hmm, jetzt zickt die Funktion leider doch noch rum. Und zwar:

Unzulässiger Prozeduraufruf oder ungültiges Argument (Fehler 5)

Folgende Zeile ist das aus dem verlinkten Code aus dem ersten Beitrag
(http://www.tech-archive.net/Archive/Access/
microsoft.public.access.queries/
2004-03/1674.html&usg=AFQjCNE9Tp42VY72s4JIHDGm0y81zhAyOg)

MidB$(t, p, l) = fld(j).Value & tRsSep

sieht für mich auch komisch aus. wofür steht eigtl das $, konnte dazu
nix finden in der online hilfe.

Arne

unread,
Jan 13, 2010, 2:48:47 PM1/13/10
to
0 new messages