Office: (Office 2003) Gruppenwechsel erkennen in Tabelle

Helfe beim Thema Gruppenwechsel erkennen in Tabelle in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich bin ABAP Entwickler und schreibe gelegentlich Programme in VB für Excel. Jetzt soll ich für einen Kollegen eine eigentlich... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Von_Cavallar, 16. November 2011.

  1. Gruppenwechsel erkennen in Tabelle


    Hallo zusammen,

    ich bin ABAP Entwickler und schreibe gelegentlich Programme in VB für Excel. Jetzt soll ich für einen Kollegen eine eigentlich einfache Aufgabe in ACCESS lösen: Für alle gleichen Materialnummern in Spalte A soll die Summe aus Spalte B ermittelt werden und einmal in Spalte C geschrieben werden. In Excel kein Problem da ich die Tabelleneinträge ja sortieren kann. Aber wie mache ich das in ACCESS? Sämtliche Versuche die Tabelle zu sortieren mit Beispielen aus den Foren funktionieren nicht. Obwohl in der Tabellenansicht die ersten 20 Materialnummern gleich sind findet das Programm nur 7 die hintereinander kommen. Mir ist klar dass ich die Tabelle physisch nicht sortieren kann, aber wie kann ich dies zur Laufzeit machen? Muss ich die Einträge in ein Array einlesen und die Werte pro Materialnummer addieren?

    Hier Mein Versuch:

    Sub calculat_IP()
    Dim Db As Database
    Dim Rs As Recordset
    Dim i_row As Integer
    Dim i_last_row As Integer
    Dim d_sum As Double
    Dim s_soc_old As String


    Set Db = CurrentDb()
    'Set Rs = Db.OpenRecordset("SAG_SOC_Calc", dbOpenDynaset)
    Set Rs = Db.OpenRecordset("Select * From SAG_SOC_Calc Order By [SOC_Materialnummer]", dbOpenDynaset)
    Rs.MoveLast '

    :)
     
    Von_Cavallar, 16. November 2011
    #1
  2. Das kannst du mit einer Abfrage machen, VBA braucht man dafür nicht.

    Anbei die SQL-Ansicht (klick mich) einer Abfrage zum Testen:
    Code:
     
    Arne Dieckmann, 18. November 2011
    #2
  3. Hallo Arne,

    Vielen Dank für die schnelle Antwort, werd ich gleich ausprobieren!

    Schönen Abend noch,

    Gruß Wolfgang
     
    Von_Cavallar, 18. November 2011
    #3
  4. Gruppenwechsel erkennen in Tabelle

    Hallo Arne,

    ich habe die Abfrage erstellt und bekomme als Ergebnis die Materialnummern und die Summe aller gleichen Mat. Wenn ich meinen Kollegen aber richtig verstanden habe will er als Ergebnis die gesamte Tabelle UND in der letzen Spalte jeweils die Summe aller gleichen Materialnummern. Entweder einmal bei einer beliebigen Materialnummer oder in jeder Zeile. Wie kann ich die Abfrage in die Tabelle integrieren oder wie müsste die Abfrage aussehen damit ich alle Spalten angezeigt bekomme? Muss ich dann doch mit VBA arbeiten?

    Danke,

    Gruss Wolfgang
     
    Von_Cavallar, 24. November 2011
    #4
  5. Du könntest mit einer Unterabfrage arbeiten. Eine andere Möglichkeit wäre der Einsatz von DSum() in einer "berechneten" Spalte der Abfrage.

    Anbei ein ungetesteter Ansatz mit einer Unterabfrage:
    Code:
     
    Arne Dieckmann, 24. November 2011
    #5
  6. Funktioniert auch nicht mit der Unterabfrage (in ABAP ist das ein nested select), die Summenspalte bleibt leer und die erste Spalte SMatNummer auch. Ich versuch es jetzt mal mit einem Beispiel in ABAP und dann werd ich mich erst mit der SQL Syntax näher beschäftigen müssen damit ich es umschreiben kann. Und ich kauf mir ein ACCESS Buch ;-)

    Danke für Deine Mühe,

    Gruss Wolfgang
     
    Von_Cavallar, 24. November 2011
    #6
  7. Den Ansatz von Arne würde ich auch so verwenden. Ihm ist nur ein Flüchtigkeitsfehler unterlaufen (verwechselter Alias):
    Code:
     
  8. Gruppenwechsel erkennen in Tabelle

    Danke, aber jetzt steht in jeder berechneten Spalte immer der Wert der Zeile mal Anzahl der gleichen Materialnummern:

    Mat Stück Summe
    mat1 1 3
    mat1 4 12
    mat1 30 90
    mat2 2 4
    mat2 5 10

    So sollte es aussehen:
    Mat Stück Summe
    mat1 1 35
    mat1 4 35
    mat1 30 35
    mat2 2 7
    mat2 5 7
     
    Von_Cavallar, 24. November 2011
    #8
  9. Code:
    Das ist jetzt das gleiche wie oben mehrfach gezeigt. Mit dauernd wechselnden Bezeichnungen sollte man umgehen können oder aber diese vermeiden.
     
  10. Das mit den Bezeichnungen war doch nur ein kurzes Beispiel um klarzustellen was die Abfrage zurückbringt und wie das Ergebnis eigentlich aussehen soll *sos

    Es gibt in der Tabelle insgesatm 10 Spalten, die Namen sind jetzt mal nebensächlich. Der Wert aus der 9. Spalte soll so oft addiert werden wie es gleich Materialnummern in der 1. Spalte gibt und dann in die 10 Spalte geschrieben werden. Es sollen aber ALLE Spalten ausgegeben werden, in der 10. eben der berechnete Wert. Im Anhang ein Beispiel in Excel.

    Kann das denn wirklich in einer SQL Abfrage gelöst werden? Die Tabelle hat 25.000 Einträge, wenn für jede Zeile die Abfrage aufgerufen werden soll für die Summenberechung in der letzten Spalte sind das 25.000 +1(für den Tabelleninhalt an sich) select statements. Ist es nicht effektiver die Tabelle einmal zu lesen und den fehlenden Wert dann mit VBA zu berechnen?
     
    Von_Cavallar, 25. November 2011
    #10
  11. Effektiv wäre es, die Summen einmal pro Mat zu ermitteln, sprich eine simple Gruppierung/Aggregierung anzuwenden. Damit ergibt sich dann aber eine andere und zusätzliche Tabelle (in Form einer Abfrage).

    Excel-like-Tabellen nachzubauen ist eben aufwändiger und eigentlich nicht empfehlenswert.
     
  12. Hallo,

    ich habe den Verdacht, dass hier grundsätzliche Missverständnisse vorliegen. Die vorgestellten Lösungsvorschläge hätten längst zum Erfolg führen müssen, deine Ergebnismeldungen finde ich nicht nachvollziehbar.
    Solltest du das nicht mit Access lösen?!
    Vielleicht auch mit zweien, aber ganz sicher ohne VBA. *wink.gif*
    Das ist ja auch richtig so, denn wie man sieht sind das ja alles Auswahlabfragen, sozusagen als erster Schritt, auf deren Basis dann eine Aktualisierungsabfrage erstellt werden könnte.
     
    Anne Berg, 25. November 2011
    #12
  13. Gruppenwechsel erkennen in Tabelle

    Hallo zusammen,

    @anne
    ja, da bin ich wohl mißverstanden worden oder hab mich so ausgedrückt. ABAP deshalb weil ich da die SQL Syntax kenne, wenn es dann da funktioniert hätte, hätte ich versucht es in reines SQL zu übersetzen.

    @ebs17
    -> Excel-like-Tabellen nachzubauen ist eben aufwändiger und eigentlich nicht empfehlenswert.

    Will Excel ja gar nicht nachbauen, will schlicht die Anfrage meines Kollegen lösen, mir fehlen aber die Kenntnisse dies in ACCESS zu machen.

    Kann jemand ein gutes Buch empfehlen, im Forum "Bücher" ist man sich auch nicht einig.

    Sollte jemand zugriff auf SAP Daten über VBA (RFC) brauchen, da kann ich helfen.

    Gruss Wolfgang
     
    Von_Cavallar, 25. November 2011
    #13
  14. Hier eine Lösung falls es jemand interessiert, nicht auf meinem Mist gewachsen, mit VBA:

    Code:
    Code:
     
    Von_Cavallar, 26. November 2011
    #14
  15. Wow. Benötigt man in SAP / ABAP derart viel Aufwand, um ein paar Summen zu ermitteln, oder ist das nur persönlicher Stil?

    Ich bin nach wie vor davon überzeugt, dass die in mehreren Varianten gezeigte gleiche Abfrage genau das macht, was Du in Deiner Beschreibung wünschst, und das einfach, locker und schnell.

    Die eigentliche Abfrage wäre eigentlich
    Code:
    ... und man hätte ohne besondere Begründung nicht das Bestreben, alles (Ausgangsdaten und Berechnungsergebnisse) in eine Tabelle (eben Excel-like) packen zu müssen.
     
Thema:

Gruppenwechsel erkennen in Tabelle

Die Seite wird geladen...
  1. Gruppenwechsel erkennen in Tabelle - Similar Threads - Gruppenwechsel erkennen Tabelle

  2. In einer Zelle Zahlen erkennen und trennen

    in Microsoft Excel Hilfe
    In einer Zelle Zahlen erkennen und trennen: Guten Tag zusammen Ich habe folgende Daten in einer Zelle und muss diese in mehrere Spalten aufteilen, insbesondere benötige ich die Zahl, die hinter dem X steht PKP210SX90AOS08...
  3. Reihenfolgen erkennen

    in Microsoft Excel Hilfe
    Reihenfolgen erkennen: Hallo Profis Ich möchte eine Statistik der EM 2024 erstellen. Ich habe in Spalte C bis BA, das sind die 51 Spiele, die erreichten Punkte der Kollegen. Nun brauche ich eine Formel, die die...
  4. Zahl in Zelle erkennen, sortieren und dann zählen.

    in Microsoft Excel Hilfe
    Zahl in Zelle erkennen, sortieren und dann zählen.: Liebe Community Ich komme mit meiner Exceltabelle nicht weiter. Ich erstelle eine Tabelle mit Daten (auch als Mehrzahl von Datum gemeint), die sich stetig verändern. Bei der Tabelle geht es um...
  5. Excel Erkennung von Zeiten und Überstunden

    in Microsoft Excel Hilfe
    Excel Erkennung von Zeiten und Überstunden: Moin, Ich habe ein Problem und komme einfach nicht weiter beim erstellen von Stundennachweisen. Problem: Ich möchte das Excel bei einer Zeitangabe/Arbeitszeit z.B. 07:00 bis 18:00 + eine Pause,...
  6. Zusammenhängende Zeiträume in einer Spalte erkennen und Start- sowie Enddatum ermitteln

    in Microsoft Excel Hilfe
    Zusammenhängende Zeiträume in einer Spalte erkennen und Start- sowie Enddatum ermitteln: Hallo zusammen, irgendwie komme ich einfach mit meinem Problem nicht weiter und hoffe sehr auf Eure Hilfe! Ich habe eine Personaldatei, in der je Zeile ein Urlaubstag steht. Die ersten Spalten...
  7. Losnummer erkennen, Gewinner ausgeben

    in Microsoft Excel Hilfe
    Losnummer erkennen, Gewinner ausgeben: [ATTACH] Hallo! Habe leider nur sehr grundlegende Excel-Kenntnisse. In einer Tabelle werden jedem Loskäufer (IDs in Spalte A) die Losnummern (Spalten D bis M) zugeteilt, die er erworben hat. Ziel...
  8. Makro für Sortierung eines Bereiches und Einfügen einer Leerzeile bei Gruppenwechsel

    in Microsoft Excel Hilfe
    Makro für Sortierung eines Bereiches und Einfügen einer Leerzeile bei Gruppenwechsel: Hallo Forumgemeinde, Ich habe eine Tabelle mit verschiedenen Angaben in den Spalten A bis N. Derzeit gibt es ca. in 30 Zeilen Eintragungen, täglich kommen ca. 2-3 Zeilen dazu. Deshalb muss die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden