Neuigkeiten:

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

Mobiles Hauptmenü

dynamische Spaltennamen

Begonnen von AndreasE, Januar 26, 2012, 13:00:47

⏪ vorheriges - nächstes ⏩

AndreasE

Hallo zusammen,

ich möchte in einer Abfrage die Spaltennamen aus einer Funktion generieren, in diesem Falle soll der erste Spaltenname heißen: "KW + aktuelle Kalenderwoche", die zweite Spalte so heißen "KW + aktuelle Kalenderwoche + 1" usw. Die aktuelle Kalenderwoche ermittle ich aus Format(Format(Datum();"ww");"00"). Das klappt beim Feldinhalt ohne Probleme, jedoch nicht beim Feldnamen.
Da sich der Abfragezeitraum ständig ändert, wäre es schön, wenn sich die Spaltenüberschriften (Feldnamen) dynamisch anpassen würden.

Es würde mir sehr helfen, wenn jemand eine Idee hätte.  :)

Danke schon mal,
AndreasE

Jonny

Hallo Andreas,

nenne doch die Spalten Aktuell, Aktuell2, Aktuell3 usw.
auf keinen Fall mit + Zeichen. Alle Sonderzeichen insbesondere die Rechenoperanden und das Leerzeichen führen zu unerwartete Ergebnisse.
Und das vieleicht sogar an eine ganz andere Stelle und man einen hohen Aufwand den Fehler zu finden und alles zu berichtigen.

Ich nehme noch nichmal die Umlaute.

Gruß

Johann

AndreasE

Hallo Johann,

das mit den festen Spaltennamen wollte ich eigentlich vermeiden, da in den Spalten immer Zahlen verschiedener Wochen stehen sollen, je nachdem wann die Abfrage aufgerufen wird.
Wenn dann beispielsweise in der Spalte "Aktuell" heute die Zahl von KW4 steht, so ist es in zwei Wochen eben schon KW6. Das ist wohl nicht so übersichtlich.

Gruß Andreas

bahasu

N'abend,

mal ins "Unreine" gedacht:
In einer Abfrage kann man doch mit "... as XYZ" den Namen den eigenen Bedürfnissen anpassen.
Warum bastelst Du Dir nicht entsprechend per VBA die Abfrage zurecht?

Mir fehlt allerdings im Moment das Verständnis war in diesen nicht näher bestimmten Spalten dann als Werte stehen sollen. Sind die Inhalt von der Kalenderwoche unabhängig?

Harald
Servus

AndreasE

Hallo Harald,

es geht in der Abfrage um Auftragsbestandszahlen in Stück.
Wenn ich z.B. heute den Auftragsbestand für die kommenden 10 Wochen aufrufe, steht in der 1. Spalte (Name dann "KW05") die Stückzahl für die Woche 5. In der zweiten Spalte ("KW06") dann die Zahl für die Woche 6 usw.
Mache ich die Abfrage jedoch in zwei Wochen, steht in der ersten Spalte (soll jetzt "KW07" heißen) die Zahl für Woche 7, in der zweiten Spalte (jetzt "KW08") steht die Zahl für die Woche 8 und so weiter.
Das heißt, ich will immer eine Vorschau für die kommenden 10 Wochen, abhängig vom Zeitpunkt des Aufrufes.

Gruß
Andreas

bahasu

Hi,

hört sich nach Excel an:
- horizontal die Zeit im KW
- senkrecht die Auftragsart?

Bereitest Du das per Kreuztabelle auf?
Sorry, aber mir ist immer noch nicht klar, wie die Daten vorliegen.
Kannst Du eine Beispiel-Datenbank mit ein paar Spieldaten zur Verfügung stellen?

Harald
Servus

AndreasE

Hallo Harald,

das Abfrageergebnis gibt pro Artikel einen Datensatz aus mit den Stückzahlen, die in den nächsten 10 Kalenderwochen geliefert werden müssen.
Da sich diese Kalenderwochen eben abhängig vom Aufrufzeitpunkt ändern, müssten eben die Spaltenüberschriften mittel einer Funktion z.B. Date() angepasst werden.
Meine Frage ist eigentlich, ob dies irgendwie in Access machbar ist. Ich habe es bisher nicht geschafft.

Auch mittels VBA ist es mir bisher nicht gelungen, in der Datenbank eine SELECT-Abfrage durchzuführen, die dann eine Datenblattansicht ausgibt oder das Ergebnis nach Excel exportiert.
Die SELECT-Abfrage greift auf eine in der Datenbank bestehenden Abfrage zu. Alles unter Access 2007.

Vielleicht hat ja jemand eine Idee oder einen Tipp für mich. Wäre sehr schön. Dann könnte ich den ganzen Ablauf automatisieren.

Danke.
Andreas

Jonny

Hallo,
nimm in der Abfrage feste Namen.
Dann mache einen Bericht davon. Hier kannst du per VBA die Caption der Bezeichnungsfelder ändern.
Du kannst auch den Bericht nach Excel exportieren.

Gruß

Johann

AndreasE

Hallo Johann,

danke für den Tipp.
Ich werde das am Montag einmal ausprobieren, das scheint mir ein machbarer Weg zu sein.

Gruß
Andreas

bahasu

Hi,

anbei im Anhang eine Idee, wie ich es nach Deinen Angaben intepretiert habe.

Es gibt eine Tabelle, mit Artikel und 3 Stückzahlen (zur Vereinfachung nur 3 statt 10)
Es gibt ein Formular (tabellarische Darstellung), bei dem die Beschriftung der Spalten von den Stückzahlen sich am aktuellen Datum orientiert.

Einfacher wäre es gewesen, anhand Deiner Tabelle/Abfrage das Konzept vorzustellen.
Bin gespannt, ob das einen möglichen Weg darstellt.

Harald


[Anhang gelöscht durch Administrator]
Servus

AndreasE

Hallo Harald,

das ist eigentlich genau das, was ich suche.
Lässt sich Deine Vorgehensweise denn auch auf die Beschriftung der Spalten in einer Abfrage übertragen?

Ich habe übrigens auch einen Lösungsweg gefunden.
Mittels CreateQueryDef erstelle ich eine Abfrage, bei der ich über Variablen die Spaltennamen in der SQL-Anweisung setzen kann.
Das hat nur den Nachteil, dass es die Abfrage in der DB noch nicht geben darf, so dass ich sie vor dem Aufruf erst löschen oder jedesmal einen anderen Abfragenamen vergeben muss.

Danke für Deine Unterstützung.

Gruß
Andreas

bahasu

N'abend Andreas,

fein, wenn es geholfen hat.
Deine Umsetzung ist das, was ich in Antwort 3 angesprochen hatte.

Mit
   Set qd = CurrentDb.QueryDefs("DeinQuery")
   qd.SQL = "SELECT ...  FROM ...;"
   qd.Close

kannst Du eine bestehende Abfrage Deinen Wünschen entsprechend anpassen.

Harald
Servus

bahasu

N'abend, die zweite,

ist dieses Tabellenkonstrukt so notwendig?
Kann es auch mal passieren, dass nicht 10 sondern 9 oder 11 Stückzahlen anstehen?

Harald
Servus

AndreasE

Guten Abend Harald,

wenigstens die Anzahl der auszugebenden Kalenderwochen steht fest und ändert sich nicht.
Sonst könnte man auch über ein Formular die Anzahl abfragen und das Query entsprechend anpassen. Ist aber momentan nicht angefordert.

Danke nochmals an alle.
Ein schönes Wochenende wünscht

Andreas

AndreasE

Ergänzung zur letzten Antwort:

Harald, Du hast sicher recht mit Deinem Einwand, dass die nicht bei allen Artikeln Stückzahlen für die gleiche Anzahl Wochen vorhanden sind.
Ich löse das aber so, dass ich alle Zahlen, die über die ausgegebenen 10 Kalenderwochen hinausreichen in einer zusätzlichen Summenspalte ausgebe.

Gruß
Andreas