Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Tabellarisches UFO mit Werten befüllen ( Positionsnr erzeugen )

Begonnen von Bernie110, Oktober 14, 2014, 16:21:13

⏪ vorheriges - nächstes ⏩

Bernie110

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



       




MaggieMay

Hallo,

möglicherweise lässt sich die lfd. Nummer im Formular berechnen.
Schau mal ob Donkarls Access FAQ 4.39 dir da weiter hilft.
Freundliche Grüße
MaggieMay

Bernie110

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






Bernie110

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