Hallo Zusammen,
ich suche nach einer Möglichkeit eine Positionsnummer zu vergeben, weiss aber nicht wie ich es anstellen soll, da das UFO auf mehrere Abfragen basiert.
Mit diesem Code war das Ganze noch ziemlich geschmeidig.
Der Code fasst die Datensätze nach Strasse / Kunde ect . zusammen und vergibt eine Position von 1 - n.
Hier war das noch einfach, da der DS bearbeitet werden konnte.
Das war der Code aus dem alten Programm.
If Me!TOUR_ERFASSUNG_SchnellFrm_DT_UFO.Form.Recordset.RecordCount > 0 Then
Me!TOUR_ERFASSUNG_SchnellFrm_DT_UFO.Form.OrderBy = "Empf_Strasse , EMPF_Ort"
Me!TOUR_ERFASSUNG_SchnellFrm_DT_UFO.Form.OrderByOn = True
Set rs = Me!TOUR_ERFASSUNG_SchnellFrm_DT_UFO.Form.RecordsetClone
rs.MoveFirst
aktOrt = rs!EMPF_Ort
aktName = rs!EMPF_Adresse2
aktEmpf = rs!EMPF_FirmenName1
aktABG_Firmenname1 = rs!ABG_FirmenName1
I = 1
Do Until rs.EOF
If Not (aktOrt = rs!EMPF_Ort And aktName = rs!EMPF_Adresse2 And aktEmpf = rs!EMPF_FirmenName1 And aktABG_Firmenname1 = rs!ABG_FirmenName1) Then
I = I + 1
aktOrt = rs!EMPF_Ort
aktName = rs!EMPF_Adresse2
aktEmpf = rs!EMPF_FirmenName1
aktABG_Firmenname1 = rs!ABG_FirmenName1
End If
rs.Edit
rs!EntladePos = I
rs.Update
rs.MoveNext
Loop
rs.Close: Set rs = Nothing
End If
End If
Jetzt hab ich die "selben" Daten ( nur mit anderer Benamsung ) auf mehrere Tabellen aufgeteilt und durch mehrere Abfragen / Unterabfragen in fast der gleichen Darstellung wie in meinem alten Programm.
Jetzt lässt sich dieser Code nicht mehr anwenden.
Hat jemand eine Idee, wie man das o.g .Verfahren anwenden könnte um
meinen Datensätze eine Art Zusammenfassung zuverpassen.
Ich möchte dabei unbedingt eine Art Positionsnummer generieren.
Der SQL String der Abfrage sieht derzeit so aus.
Die Daten sind bereits gruppiert.
SELECT A_QYR_TOUR_DISPO_Letzter_WERT_F_TA_B.TOUR_ID, A_QYR_TOUR_DISPO_Letzter_WERT_F_TA_B.STATUS_TA, A_qyr_TA_MAIN_TABELLE.Ladedatum, A_qyr_TA_MAIN_TABELLE.Entladedatum, A_qyr_TA_MAIN_TABELLE.[NOT], A_qyr_TA_MAIN_TABELLE.ABS_STRASSE_LANG, A_qyr_TA_MAIN_TABELLE.EMPF_STRASSE_LANG, A_qyr_TA_MAIN_TABELLE.ABS_ORT_LANG, A_qyr_TA_MAIN_TABELLE.EMPF_ORT_LANG, Count(A_qyr_TA_MAIN_TABELLE.TA_ID) AS AnzahlvonTA_ID
FROM A_qyr_TA_MAIN_TABELLE INNER JOIN A_QYR_TOUR_DISPO_Letzter_WERT_F_TA_B ON A_qyr_TA_MAIN_TABELLE.TA_ID = A_QYR_TOUR_DISPO_Letzter_WERT_F_TA_B.TA_ID
GROUP BY A_QYR_TOUR_DISPO_Letzter_WERT_F_TA_B.TOUR_ID, A_QYR_TOUR_DISPO_Letzter_WERT_F_TA_B.STATUS_TA, A_qyr_TA_MAIN_TABELLE.Ladedatum, A_qyr_TA_MAIN_TABELLE.Entladedatum, A_qyr_TA_MAIN_TABELLE.[NOT], A_qyr_TA_MAIN_TABELLE.ABS_STRASSE_LANG, A_qyr_TA_MAIN_TABELLE.EMPF_STRASSE_LANG, A_qyr_TA_MAIN_TABELLE.ABS_ORT_LANG, A_qyr_TA_MAIN_TABELLE.EMPF_ORT_LANG;
Jemand eine Idee ?
Lg Bernie
Hallo,
möglicherweise lässt sich die lfd. Nummer im Formular berechnen.
Schau mal ob Donkarls Access FAQ (http://www.donkarl.com/) 4.39 dir da weiter hilft.
Hallo Maggie,
vielen Dank für deine Antwort.
Das kenne ich.
Ist nicht ganz das was ich suche, da ich den Wert gerne speichern würde.
Lg Bernie
So ich habs jetzt einfach mal so versucht.
If Me!TOUR_TA_ÜBERSICHT.Form.Recordset.RecordCount > 0 Then
Me!TOUR_TA_ÜBERSICHT.Form.OrderBy = "EMPF_Ort_Lang , EMPF_STRASSE_LANG"
Me!TOUR_TA_ÜBERSICHT.Form.OrderByOn = True
Set rs = Me!TOUR_TA_ÜBERSICHT.Form.RecordsetClone
rs.MoveFirst
aktOrt = rs!EMPF_ORT_LANG
aktName = rs!EMPF_STRASSE_LANG
aktEmpf = rs!NOT
aktABG_Firmenname1 = rs!ABS_ORT_LANG
I = 1
Do Until rs.EOF
If Not (aktOrt = rs!EMPF_ORT_LANG And aktName = rs!EMPF_STRASSE_LANG And aktEmpf = rs!NOT And aktABG_Firmenname1 = rs!ABS_ORT_LANG) Then
I = I + 1
aktOrt = rs!EMPF_ORT_LANG
aktName = rs!EMPF_STRASSE_LANG
aktEmpf = rs!NOT
aktABG_Firmenname1 = rs!ABS_ORT_LANG
End If
' an TA übergeben
CurrentDb.Execute "Update TA_TABELLE Set Pos ='" & I & "' where TA_ID = " & rs!TA_ID
rs.MoveNext
Loop
rs.Close: Set rs = Nothing
End If
Funktioniert auch..
Allerdings.. kann da mal jemand drüber sehen..
will nicht das meine DB explodiert :-)
So oder hättet Ihr einen besseren Vorschlag ?
Lg Bernie