Werte für folgende Wochen ändern

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

JohnHarper
Beiträge: 9
Registriert: Mi, 12.01.2011 00:22

Werte für folgende Wochen ändern

Beitrag von JohnHarper »

Hallo an alle!
Habe ein Problem an dem ich gerade ein wenig am knabbern bin. Habe nirgends was gefunden, dass mir hilft.

Hier das Problem:

Ich habe eine Datenbank in der ich verschiedene Daten (was auch sonst :) ) habe, die sich nach Kalenderwoche sortieren lassen bzw. ich lasse mir die Datensätze Wochenweise anzeigen in Form einer Tabelle.

Nun will ich ein Makro machen, dass mir, wenn ich eine Woche ausgewählt habe, einen bestimmten Wert aus dieser Woche auf die folgenden Wochen überträgt.

Also z.B. wenn der Name in einer Zeile in der ersten Woche Meier ist und in der zweiten Woche Müller und in der 3., 4., ... anders, dann soll per Knopfdruck der Wert aus der jeweiligen Zeile der 2. Woche auf alle folgenden übertragen werden.

Ich habe zwei Tabellen. Meine Datenbank mit sämtlichen Daten die nach KW und Jahr sortiert sind (Datenbank) und eine Tabelle in der mir das derzeitige Datum gespeichert wird bzw. ich das Datum auch ändern kann (Datum)

Das Makro ist kein großes Problem, aber der SQL-Code will einfach nicht wie ich will.

Code: Alles auswählen

SQLTXT1 = "Update ""Datenbank"" set ""Name"" = (Select ""Datenbank"".""Name"", Week(""Datum"".""Datum"") As ""Woche"", Year(""Datum"".""Datum"") As ""Jahr1"" From ""Name"",""Datum"" Where (""Name"".""KW"" = ""Woche"" And ""Name"".""Jahr""= ""Jahr1"")) Where (""Name"".""KW""> (Select Week(""Datum"".""Datum"") From ""Datum"") Or ""Name"".""Jahr"" > (Select Year(""Datum"".""Datum"") From ""Datum""))"
Habe ich bei dem Code einen Fehler gemacht?

Zur Erläuterung so wie ich es mir dachte:
Es soll der Name aus der aktuellen Woche genommen werden und in das gleiche Feld für jede Woche > 2 (derzeitig) und jedes Jahr > 2011 (also alle folgenden Jahre) eingetragen werden. Das Makro läuft zwar durch, aber irgendwie nicht richtig. Es ändert sich einfach nix...
JohnHarper
Beiträge: 9
Registriert: Mi, 12.01.2011 00:22

Re: Werte für folgende Wochen ändern

Beitrag von JohnHarper »

Hmmm...

Hab es nun mit mehreren SQL- Befehlen versucht.

Habe erst eine Tabelle erstellt. Dann habe ich die Werte, die ich aus meiner Hauptdatenbank brauche (eine bestimmte Woche) in diese neue Tabelle kopiert.

Dann sollte er mir die Daten aus der neuen Tabelle in die Felder schreiben für die folgenden Wochen.

Aber auch das macht er nicht.

Geht es trotzdem irgendwie???
gogo
*****
Beiträge: 207
Registriert: Mi, 10.11.2010 13:11

Re: Werte für folgende Wochen ändern

Beitrag von gogo »

Ich kann nicht erkennen woraus sich der aktuelle Bezug ergibt. Du musst dem Programm ja irgendwie mitteilen, was genau Du willst, d.h. irgendwie muss es einen Input des Benutzers geben, den das Programm dann als Wert erkennt und woandershin schreibt.

Code: Alles auswählen


Update Datenbank
   set Name = (
                      Select Datenbank.Name, Week(Datum.Datum) As Woche, Year(Datum.Datum) As Jahr1 
                      From Name,Datum 
                      Where (Name.KW = Woche And Name.Jahr= Jahr1)
               )
   Where (
               Name.KW> (Select Week(Datum.Datum) From Datum)
               Or
               Name.Jahr > (Select Year(Datum.Datum) From Datum)
          )

Beim set-Statement holst Du Daten in 3 Spalten (Select Datenbank.Name, Week(Datum.Datum) As Woche, Year(Datum.Datum) As Jahr1 ), die wirst Du wohl kaum in Deine Spalte Name reinquetschen können, und ob die Where-Klauseln in der Form funktionieren wage ich jetzt mal zu bezweifeln...
wenn ich eine Woche ausgewählt habe, einen bestimmten Wert aus dieser Woche auf die folgenden Wochen überträgt.
Kontrollfeld auslesen, als String in das SQL-Statement einbauen

g
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
Antworten