Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Torsten. am November 05, 2014, 13:23:46

Titel: Doppelte Information im String
Beitrag von: Torsten. am November 05, 2014, 13:23:46
Hallo zusammen,
ich habe vor geraumer Zeit von Franz Hilfe zu http://www.access-o-mania.de/forum/index.php?topic=16795.msg96617#msg96617 (http://www.access-o-mania.de/forum/index.php?topic=16795.msg96617#msg96617) erhalten:
In leicht abgewandelter Form in der Bezugstabelle komme ich nicht mehr zum optimalen Ergebnis - doppelte Info im String selbst.
Der Aufbau der Tabelle mit 3 Datenreihen:
artikel_nr:150|150|150
modell:hosen|hosen|jacke
Das Ergebnis, jetzt wie gewünscht nur noch 1 Datenreihe aber mit doppelter Information im String:
artikel_nr:150
modell:hosen, hosen, jacke

Sollte aber so aussehen:
artikel_nr:150
modell:hosen, jacke


SELECT tbl_zuordnung_test.artikel_nr, sqlliste("select modell from tbl_zuordnung_test where artikel_nr ='" & [artikel_nr] & "'") AS type INTO Tabelle_NEU
FROM tbl_zuordnung_test
GROUP BY artikel_nr;


Public Function SQLListe(ByVal SQL As String, _
  Optional ByVal SepR As String = ", ", Optional ByVal SepF As String = ";", _
  Optional ByVal NoNullFields As Boolean = True) As String
'
' Die Felder, die mit dem SQL-String gewonnen werden,
' werden feldweise mit SepF, datensatzweise mit SepR getrennt
' Wenn NoNullFields gesetzt ist, werden leere Felder unterdrückt
'
Dim db As DAO.Database, rs As DAO.Recordset, i As Long, Res As String, Tmp As String
  On Error Resume Next
  Set db = CurrentDb()
  Set rs = db.OpenRecordset(SQL, dbOpenSnapshot)
  If Err.Number <> 0 Then
    Res = "#Fehler"
    Err.Clear
  Else
    On Error GoTo 0
    Res = ""
    Do While Not rs.EOF
      Tmp = ""
      For i = 0 To rs.Fields.Count - 1
        If Not (NoNullFields And IsNull(rs(i))) Then Tmp = Tmp & SepF & rs(i)
      Next
      If Tmp <> "" Then Res = Res & SepR & Mid(Tmp, Len(SepF) + 1)
      rs.MoveNext
    Loop
    rs.Close
    If Res <> "" Then Res = Mid(Res, Len(SepR) + 1)
  End If
  SQLListe = Res
End Function



Gibt es die Möglichkeit zusätzlich eine Prüfung nach doppelten Zeichenfolgen durchzuführen und diese nicht zu listen?

Freundliche Grüße Torsten
Titel: Re: Doppelte Information im String
Beitrag von: MaggieMay am November 05, 2014, 14:04:45
Hallo,

wie hast du denn die doppelten Artieklnummern eliminiert?

Das sollte sich doch ganz einfach mit Select DISTINCT modell From... lösen lassen.
Titel: Re: Doppelte Information im String
Beitrag von: Torsten. am November 05, 2014, 15:36:15
Hallo,
das vermute ich steckt in der SQLListe drinnen. Weiß aber nicht verbindlich.

Jetzt schreibst Du ...einfach mit Select DISTINCT modell From...
So einfach ist das nicht für mich.
Bitte helfe mir wenig weiter:
Wohin mit der Anweisung und was folgt nach From...

Gruß Torsten
Titel: Re: Doppelte Information im String
Beitrag von: DF6GL am November 05, 2014, 15:46:25
Hallo,

naja, das sollte aber schon klar sein.....


(Wobei ich mit Deiner Beschreibung nicht ganz so klar komme)


So hat es MaggieMay  doch gesagt:

SELECT tbl_zuordnung_test.artikel_nr, sqlliste("select DISTINCT modell from tbl_zuordnung_test where artikel_nr ='" & [artikel_nr] & "'") AS type INTO Tabelle_NEU
FROM tbl_zuordnung_test
GROUP BY artikel_nr;
Titel: Re: Doppelte Information im String
Beitrag von: Torsten. am November 05, 2014, 15:55:34
Hallo Franz,
ja da hätte ich auch als Laie drauf kommen können - (http://www.access-o-mania.de/forum/Smileys/default/embarrassed.gif)

Vielen Dank Euch beiden.

Gruß Torsten