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
Hallo,
wie hast du denn die doppelten Artieklnummern eliminiert?
Das sollte sich doch ganz einfach mit Select DISTINCT modell From... lösen lassen.
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
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;
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