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
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
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
Schöne Weihnachten,
Arne
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ß
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
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? :)
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
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
Hab eben auch nochmal alles Sachen in eine neue Datenbank importiert.
Kommt leider noch der gleiche Fehler.
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
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
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. ;-)
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
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.