Ich habe in einer Tabelle "Planung" unterschiedliche Monatsfelder: Plan_Januar - Ist_Januar, Plan_Febr - Ist_Febr
Meine Idee war, ich erstelle mir je 1 Abfrage für die Werttypen Plan und Ist.
In diesen Abfragen habe ich per Alias die Perioden gleich benannt (Jan:Ist_Januar bzw. Jan:Plan_Januar). Die Periodennamen sind also in beiden Abfragen gleich. Im Formular Planung sollen nun per Klick auf einen Butto entweder die Ist- oder die Planwerte angezeigt werden. Im Makro habe ich das so nicht hinbekommen. Kann mir da jemand einen Tipp geben?
Vielen Dank schon mal.
Alfred Mautes
Hallo,
ZitatKann mir da jemand einen Tipp geben?
Ja, das ist ein falscher, unnormalisierter Tabellenaufbau. Es ist eine weitere Tabelle zur Erfassung der Planungswerte zu erstellen. Diese Tabelle ist so aufzubauen:
PlanungID_F Monat Plan Ist
1 1/2011 12 10
1 2/2011 10 8
usw.Das Feld PlanungID_F ist das Fremdschlüssel zur jetztigen Tabelle "Planung".
Die Darstellung erfolgt mit einen Hauptformular (Planungsdaten) und einem Unterformular für die Planungswerte (neue Tabelle). Du hast dann alles auf einen Blick, das Umschalten ist gar nicht mehr notwendig.
Auf diese Art und Weise kannst Du beliebig viele Monate erfassen ohne das Formaular ändern zu müssen.
Auch eine Kostenkontrolle ist auf diese Art ganz leicht zu realisieren.
Erst mal vielen Dank für den Tipp. Der von Dir geschilderten Aufbau macht sicherlich Sinn. Ein Tabellenaufbau mit Periodenspalten für unterschiedliche Werteklasssen (Ist/Plan) ist sicherlich nicht typisch für eine Datenbank. Es geht mir hierbei aber mehr darum, dass ich in einem Endlosformular bzw. der Datenblattansicht bspw. eine Dienstart filtern kann und dann Werte in den Hochrechnungszeitraum kopieren kann.
Ich könnte aber auch folgendes machen. Ich baue die Tabelle so auf, das ich ein Feld Werteklasse anlege (Ist/Plan). Dann könnte ich aus dem Formular heraus die Werteklasssen und den Planungsbereich (Kosten/Kennzahl) filtern. Das wäre für den Anwender eine sehr übersichtliche Geschichte. Er könnte beispielsweise auf einen Blick die Ist und Planwerte einer Dienstart/Kst. ersehen.
Trotzdem würde mich mal interessieren, ob es die Möglichkeit gibt, aus einem Formular heraus die dem Frm zugeordnete Abfrage zu ändern.
Hallo,
baue die Tabelle auf wie vorgeschlagen, alles andere ist nicht Datenbankkonform.
Mit dem anderen Aufbau hast Du ebenfalls alle Möglichkeiten.
Du hast in einem Formular alles auf einen Blick, Ist, Soll, Gesamt, einfach alles.
Du brauchst dann auch nicht kopieren, das Enlosformular (im Hauptformular) wird einfach auf den gewünschten Hochrechnungszeitraum gefiltert. Im Formularfuß kannst Du Dir einfach dann die Summen des zeitraums anzeigen lassen.
Das lässt sich alles mit den Grundfunktionalitäten von Access erreichen, ohen irgend etwas programmieren zu müssen.
Du wirst mit dem gegenwärtigen Aufbau nicht glücklich werden, viel zu umständlich und unflexibel.
Hallo Alfred,
ZitatTrotzdem würde mich mal interessieren, ob es die Möglichkeit gibt, aus einem Formular heraus die dem Frm zugeordnete Abfrage zu ändern.
Natürlich
Me.RecordSource = "DeineAbfrage", oder
Forms!DeinForm.RecordSource = "DeineAbfrage"
Das soll jetzt aber keine Aufforderung sein, die Hinweise von MzKlMu zur
Normalität nicht zu beachten, - er weiss wovon er spricht.
hth
gruss
ekkehard
Hallo,
Zitat... aus einem Formular heraus die dem Frm zugeordnete Abfrage zu ändern...
Dim SQL as String
SQL = "SELECT * FROM Tabelle WHERE Einschränkung"
Me.Recordsource = SQL
Wobei die Abfrage dynamisch gestaltet werden kann / soll / muss um die Datenherkunft unter bestimmten Voraussetzungen zu ÄNDERN