Office: (Office 2013) Variablen für SQL bauen

Helfe beim Thema Variablen für SQL bauen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Nur scheint mir, dass SQL kein Allesfresser ist Gute Erkenntnis. SQL ist für Massendatenverarbeitung konzipiert, also sehr viele Daten in kurzer Zeit... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Joe-OH, 20. Dezember 2015.

  1. Variablen für SQL bauen


    Gute Erkenntnis. SQL ist für Massendatenverarbeitung konzipiert, also sehr viele Daten in kurzer Zeit zu verarbeiten. Dazu sind aber gewisse Tabellenstrukturen notwendig: Einen Ferrari kann man nun nicht in einem Altstadtkern ausfahren, auf einer Schnellstraße schon eher, auf einer abgesperrten Rennstrecke (Ausschaltung von Störungen wie Gegenverkehr) dann besser.

    Du darfst Dich selber beglückwünschen, dass Du selber auf diese Programmiererweisheit gekommen bist. Das schafft nicht jeder, manche nicht mal mit Unterstützung eines externen Holzhammers.

    Ich stelle mal an den Anfang einen Vorschlag, dann sind vermutlich Ausgangsbedingungen und -gestaltungen einfacher nachvollziehbar.
    Code:
    Diese Abfrage zeigt für alle Kundennummern zu allen Quartalen die Umsätze und Vorjahresumsätze - ohne allen Schnickschnack wie Variablen, Temp-Tabellen, dynamische Stringzusammensetzung und sonst etwas (was man sich für richtige Aufgaben aufheben kann).
    Dabei würde ich dringend empfehlen, für Quartal den Monatsersten des ersten Monats im Quartal als Datum zu verwenden (4. Quartal 2015 => 01.10.2015), weil man damit ordentliche Datumsberechnungen verwenden und somit sehr einfach und variabel umgehen kann. Die von Klaus vorgeschlagenen Zahlen bieten zwar schon Möglichkeiten, wenn man aber Quartale im Dreierschritt vergleichen wollte, müsste man schon kräftig am Rad drehen.
    Bitte immer rechtzeitig (= sofort) an Erweiterbarkeit (ohne große Umprogrammierung!) denken: Gute Anwendungen wecken Wünsche nach mehr ...

    Zu der Abfrage müsste man jetzt nur die Kundennamen hinzuverknüpfen und, falls man nur Teildaten sehen will, geeignet zu filtern.

    Falls es nicht auffällt: In der Abfrage rechne ich mit dem Datum (DateAdd sowie JOIN), anzeigen (SELECT-Teil) kann man aber auch beliebige Datumsformate nach eigenem Gusto. Dann wird es auch wieder für Menschen lesbar (um den Kreis zu schließen).
     
  2. Hallo zusammen,
    danke für die vielen Tips. Nun muss ich mir erstmal für meine alten Umsatztabellen (a la Excel-Struktur) eine Prozedur schreiben, die den Neuaufbau der Tabellen hinbekommt. Dann sehen wir weiter.

    Gruß
    Joe
     
  3. Hallo zusammen,
    mit DateAdd war das für mich zuerst etwas undurchsichtig, dann habe ich die Sache begriffen, wunderbar - vielen Dank!
    Die neue Umsatzdatei habe ich nun, wie von Euch empfohlen, angepasst.
    Da stecken nun mehrere Jahre Umsatz drin.
    In vielen meiner bisherigen Berichte zeige ich immer gern aktuelles LJ-Quartal zum VJ-Quartal,
    während ich auch vom VJ die Ganzjahresumsätze ganz links zur Orientierung gern dauerhaft anzeigen möchte.
    Nun war ich erstmal soweit, dass ich sogar VVJ anzeigen kann, aber vom Vorjahr die Ganzjahresumsätze (Quartal_4) anzuzeigen, gelingt mir irgendwie nicht. Wie muss folgender SQL modifiziert werden?

    Code:
    Ich bin sehr gespannt!

    Viele Grüße

    Joe
     
  4. Variablen für SQL bauen

    4. Quartal entspricht dem Ganzjahresumsatz?
     
  5. Ja, das stimmt, sind kumulierte Umsätze.

    Joe
     
  6. Hallo,
    nun bin ich wieder an dem Punkt, wo ich meine Händlerumsätze erfassen muss.
    In der Tabelle sind nun viele Kundennummern hinterlegt, zu den Umsatzfeldern existiert die Spalte "Quartal", der letzte Eintrag geschah im letzten Jahr, Feldinhalt "01.10.2015". Nun möchte ich eine Abfrage für alle Kunden, speziell sortiert, aufbauen, in die ich die aktuellen Quartalsumsätze eingeben kann. Dazu muss aber im Feld "Quartal" das Datum "01.03.2016" stehen. Ich weiß nicht, wie ich eine bestehende Tabelle pro Kundennummer um diesen Eintrag erweitern kann.
    Funktioniert das mit einer Anfügeabfrage?

    Über diese hilfreiche Antwort würde ich mich sehr freuen!

    Joe
     
    Joe-OH, 9. Mai 2016
    #21
  7. Hallo,
    warum der 1.3.2016, das ist ja mitten im Quartal?

    Du brauchst doch in Deiner Tabelle nur einen neuen Eintrag mit dem Fremdschlüssel zum Kunden, einem Datum das auf das Quartal schließen lässt und dem Umsatzwert anzulegen. Da braucht es keine Abfrage.

    Ein Formular zur Anzeige des Kunden und darin ein über die Schlüsselfelder verknüpftes Unterformular. Dann kannst Du einfach die Umsätze erfassen.
     
    gpswanderer, 9. Mai 2016
    #22
  8. Variablen für SQL bauen

    Moin GPSWanderer,
    sorry für die Irritation, ich meinte auch den 01.01.2016 für das 1.Quartal, war ein Schreibfehler. Ich fülle die Umsätze immer gern in eine Tabelle ein, ist für meine Zwecke viel übersichtlicher, aber die müsste vorbereitet sein. Über ein Formular wäre das aus meiner Sicht zu unübersichtlich bei der Bedienung. D.h. alle Kundennummern bekommen in der Umsatztabelle im Feld Quartal das neue Datum verpasst: 01.04.2016, danach würde ich über eine Abfrage z.B. die Kundennummer ( es könnte auch über Kundengruppen und deren Niederlassungsnummern gehen) sortieren lassen und würde dann die entsprechenden Umsätze eintragen.
    Wie diese Erweiterung der Umsatztabelle am elegantesten geht, würde ich gerne wissen.
    Ich stelle mir eine VBA-Routine vor, die über eine Eingabeaufforderung das Datum abfragt, dann die Tabelle entsprechend erweitert.
    Mit den Access-Bord-Werkzeugen komme ich dafür irgendwie nicht zurecht.

    VG Joe-OH
     
    Joe-OH, 24. Mai 2016
    #23
  9. Hallo,
    Du hast es noch nicht ganz verstanden. Du brauchst keine neue Spalte für das Datum. Neue Daten erweitern die Tabelle nach unten als Datensätze, nicht als neue Spalte.

    Du brauchst also nur eine Anfügeabfrage. Eine Datenbanktabelle muss so aufgebaut sein, dass durch keine Daten keine Änderung an der Tabelle notwendig ist.
     
    gpswanderer, 24. Mai 2016
    #24
  10. Hallo GPSWanderer,
    dass ich es nicht verstanden habe, trifft dieses Mal nicht zu! Die Tabelle erhält mit bestehenden Kundennummern neue Datensätze mit dem neuen Datum, ich habe nur die Vorgehensweise der Anfügeabfrage mit den Access-Bordmitteln dazu nicht verstanden. Die VBA-Routine eilt nicht.

    VG Joe-OH
     
    Joe-OH, 25. Mai 2016
    #25
  11. Hallo,

    mir ist immer noch nicht klar, wo du inzwischen stehst und was genau du vorhast.
    Die Umsatztabelle könnte bspw. so aussehen:

    Kunden-Nr.
    Datum/Quartal
    Umsatz
    evtl. weitere Datenfelder

    Um die Umsätze zu allen Kunden zum nächsten Quartal manuell zu erfassen, könntest du das neue Datum per Anfügeabfrage zu jedem Kunden in die Umsatztabelle einfügen und diese Datensätze in einem Unterformular auflisten.

    Käme das evtl. deinen Vorstellungen entgegen?
     
    MaggieMay, 26. Mai 2016
    #26
  12. Hallo MaggieMay,

    das ist genau der Ansatz! Ich muss Umsatzeingaben leider händisch machen, weil nicht alle Umsatzträger auf den Ausdrucken meine sind (PLZ...). Dafür kommt jeder Ausdruck von einer anderen Händlergruppierung. Und innerhalb dieser Gruppierungen gibt es Niederlassen, für die ich zuständig bin. Die haben sogar laufende Nummern. So möchte ich in einer fertigen Liste nur die Umsätze in der Umsatzspalte kumuliert eintragen, sortiert nach deren Nummer. Die Spalte links daneben soll dann bereits das nächste Datum, d.h. 01.01.2016 tragen. Habe ich mal alle meine Umsätze eingegeben, das sind pro Quartal ca. 350, möchte ich für das nächste Quartal das gleiche tun. Nur dann muss in der Spalte links daneben 01.04.2016 stehen, Umsatzfelder stehen dann zwar alle auf Null, aber ich gebe ja wieder ein. Da ich der einzige im Unternehmen bin der den Aufwand betreibt (Umsatzverfolgung...)
    ist die manuelle Eingabe der schnellste Weg. Wäre ich auch für meine anderen Kollegen zuständig, müsste man die Originalblätter einer PLZ-Zuordnung und -Auswertung zuführen, dann das ganze automatisieren. Aber so, wie vorher genannt, reicht das für meinen Zweck völlig aus. Aber auf eine gute Lösung warte ich schon mehrere Jahre. Vielleicht kannst Du mir verraten, wie ich diese Anfügeabfrage, die ich für eine Eingabeliste benötige, aufbauen kann ?

    Das würde mich sehr freuen!

    Viele Grüße

    Joe-OH
     
    Joe-OH, 29. Mai 2016
    #27
  13. Variablen für SQL bauen

    Hallo,
    nein, Du hast es immer noch nicht verstanden. Es gibt keine neue Spalte. Die neuen Umsatzwerte werden als 350 neue Datensätze angehängt, also die Tabelle wird verlängert, nicht verbreitert.
    Die von MaggieMay vorgeschlagene Anfügeabfrage fügt neue Datensätze an, kein neues Feld mit den neuen Quartal.
    Aber auch die Anfügeabfrage brauchst Du nicht, Du musst nur dafür sorgen, dass das Datum (=Quartal) aus dem vorherigen Datensatz übernommen wird.
    Dann nur Niederlassungsnummer um Umsatz eintragen. Wenn Du eine Tabelle erstellst für alle Niederlassungen, kannst Du dann wiederum mit einer Anfügeabfrage arbeiten und alle Fremdschlüssel der Niederlassungen automatisch eintragen lassen und dann natürlich auch gleich das Datum.

    Deine Tabelle sollte etwas so aussehen:
     
    gpswanderer, 29. Mai 2016
    #28
  14. Hallo GPS-Wanderer,
    ich finde es ja gut, dass Du Recht behalten willst. Aber in meiner gesamten Tabelle von über 13000 Datensätzen gibt es nicht für jedes Datum eine neue Spalte. Das würde ja ein irrer Zahlenteppich werden. Wie gestaltet sich Dein letzter Satz mit Access-Bordmitteln, wenn man mal VBA außen vor lässt?

    Nur das brauche ich.

    Viele Grüße

    Joe-OH
     
    Joe-OH, 7. Juni 2016
    #29
  15. Hi,
    so könnte das bspw. aussehen: Code:
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    MaggieMay, 7. Juni 2016
    #30
Thema:

Variablen für SQL bauen

Die Seite wird geladen...
  1. Variablen für SQL bauen - Similar Threads - Variablen SQL bauen

  2. Combobox einbinden

    in Microsoft Excel Hilfe
    Combobox einbinden: Hallo, ich bastele an einer Funktion, bei der ich an einer Stelle im Programm eine Combobox aufrufen möchte, die dann mit bestimmten Werten aus einer Tabelle gefüllt ist und dann den gewählten...
  3. VBA:Laufzeitfehler beim Einlesen in Variable

    in Microsoft Excel Hilfe
    VBA:Laufzeitfehler beim Einlesen in Variable: Hallo Excel Freaks, ich habe eine Frage, ein Problem wo ich nicht mehr weiter weis.... In eine Exceldatei kopiere ich mir über Makro auf ein Tabellenblatt von anderen Exceldateien das...
  4. Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte

    in Microsoft Excel Hilfe
    Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte: Hallo zusammen, wer letzteren Thread kennt, hier eine Neuauflage. Problem: Aus Array-Berechnungen (Variablen von Let) ein weiteres Array zu erzeugen, welches für alle eindeutigen Werte aus G die...
  5. [VBA] Wert aus SQL-Abfrage in Variable speichern

    in Microsoft Access Hilfe
    [VBA] Wert aus SQL-Abfrage in Variable speichern: Hallo, ich möchte das Ergebnis folgender SQL-Abfrage in einer Variable speichern: Code: SELECT sum(Strom*12) FROM TempTab; . hat jemand eine Lösung hierfür? 353605
  6. SQL-Abfrage direkt in VBA-Variable?

    in Microsoft Access Hilfe
    SQL-Abfrage direkt in VBA-Variable?: Hi Leute! Mit SQL-Statements recordsets versorgen, row-/recordsources zu befüllen, Tabellen/Datensätze zu bearbeiten und ähnliches ist ja kein Thema. Aber irgendwie habe ich noch keine Lösung...
  7. Wert aus SQL-Abfrage in Variable speichern

    in Microsoft Access Hilfe
    Wert aus SQL-Abfrage in Variable speichern: Hallo Leute, ich habe mal ne kleine Frage. Ich würde gerne einen Wert, den ich aus einer SQL-Abfrage unter VBA erhalt in einer Variable speichern. Ich habe folgendes versucht: Variable =...
  8. Userform Textbox in variable umwandeln und per sql ausgeben

    in Microsoft Excel Hilfe
    Userform Textbox in variable umwandeln und per sql ausgeben: Hallo Leute ich brauche ich dringend Hilfe, wäre sooo lieb wenn mir jemand weiterhelfen könnte. Ich habe ein kleines Projekt aber komme gerade nicht voran. Crying or Very sad Ich habe ein...
  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