Automatisches Update in Feld1 bei Eintrag Feld2 in Formular

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Re: Automatisches Update in Feld1 bei Eintrag Feld2 in Formular

Beitrag von Wolf »

aob hat geschrieben: Vielleicht stelle ich meine Frage nochmals leicht abgewandelt. Ich habe in der Tabelle "Musiker" ein Zahlenfeld, das den "Status" von Musikern angibt, z.B. 3=Schnupperkandidat, 4=Mitspieler etc. Des weiteren habe ich in der Tabelle "Mitglieder" ein Feld für das Eintrittsjahr. Ausserdem gibt es ein Formular, in dem via Unterformulare beide Felder auftauchen. Sobald nun im Formular bei "Eintrittsjahr" eine Jahreszahl eingegeben wird, soll der Wert von Status automatisch auf "4" gesetzt werden, egal welchen Wert er vorher hatte.

Besten Dank!
Hallo,

Um mal so aus der Huefte zu schiessen... Ich wuerde das Statusfeld dahingehend konfigurieren, dass automatisch 4 als Wert eingetragen wird.
Das habe ich gerade Testweise in einer DB gemacht, und im Anhang ein Bild wie ich Status eingestellt habe.
Beim Anfuegen eines neuen Datensatzes wird nun automatisch eine 4 eingetragen.

Wolf
Dateianhänge
db04.jpeg
db04.jpeg (50.09 KiB) 1836 mal betrachtet
Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Re: Automatisches Update in Feld1 bei Eintrag Feld2 in Formular

Beitrag von Wolf »

aob hat geschrieben:.... wenn ich für einen bestehenden Musiker-Datensatz neu das Feld Eintrittsjahr ausfülle, darf ich nicht vergessen, gleichzeitig den Status vom bisherigen Wert auf "4" zu ändern. Sonst habe ich Unstimmigkeiten in der Datenbank. Es kommt natürlich nicht allzu häufig vor und Fehler fallen meist schnell auf. Aber eine saubere Datenbanklösung würde ich natürlich bevorzugen.


aob
OK, dass heißt also nicht nur beim Anlegen eines neuen Datensatzes/Musikers sondern auch beim ändern bestehender Daten muss zwingend der Status mit geändert werden.
Ich glaube, dass geht nur per Ereignisroutine und Makro.
Das Ereignis (kann man wählen) im Dialog Kontrollfeld-Eigenschaften wird dann mit einem makro verknüpft, welches dann den Status entsprechend ändert.
So würde ich das machen, habe aber selbst noch ein Problem.
Ein per Makro geändertes Textfeld wird von der Datenbank nicht als geändert anerkannt, das Diskettensymbol "Speichern" bleibt inaktiv. Ich muss erst absichtlich in das Feld klicken und ein Leerzeichen (z.B.) anfügen und wieder löschen, dann erkennt die Datenbank, dass das Datenfeld bzw. dessen Inhalt geändert wurde. Das macht aus meiner Sicht den Einsatz von Makros nicht gerade komfortabel.
Vielleicht weißt Du da etwas???

Wolf
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Automatisches Update in Feld1 bei Eintrag Feld2 in Formular

Beitrag von eBayer »

Hallo Wolf,
Deine Frage zum Thema "Feld per Makro füllen" wurde hier bereits ausgiebig behandelt und kann ganz einfach in Deinem Sinne gelöst werden.
siehe hier: viewtopic.php?f=8&t=24909&p=106452&hilit=commit#p106452

Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Re: Automatisches Update in Feld1 bei Eintrag Feld2 in Formular

Beitrag von Wolf »

eBayer hat geschrieben:Hallo Wolf,
Deine Frage zum Thema "Feld per Makro füllen" wurde hier bereits ausgiebig behandelt und kann ganz einfach in Deinem Sinne gelöst werden.
siehe hier: viewtopic.php?f=8&t=24909&p=106452&hilit=commit#p106452

Gruß eBayer
OK, Danke fuer den Hinweis mit "Commit".
Hab dann auch gefunden wie ich das programmieren muss. Darauf waere ich nicht gekommen, der Datenbank zu sagen "Ich vertraue dir die Daten jetzt an!" :D

Fuer alle die Suchen:

Code: Alles auswählen

oTextfeld.Text = "Meine Daten"
oTextfeld.Commit()
OK, was dazu gelernt und schon klappt wieder was.

Danke Dir herzlichst.

Wolf
Zuletzt geändert von Wolf am Di, 23.02.2010 13:19, insgesamt 2-mal geändert.
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Automatisches Update in Feld1 bei Eintrag Feld2 in Formular

Beitrag von eBayer »

So einfach geht das.......
erst Wert zuweisen und dann commit... siehe unten
Gruß eBayer


oMyForm.getByName(FeldName).text = Inhalt (FeldName ist natürlich Dein Datenfeld und Inhalt ist der neue Wert)
oMyForm.getByName(FeldName).commit(true) (Commit ist notwendig, damit das Formular die Änderung auch mitbekommt und beim speichern berücksichtigt)
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Re: Automatisches Update in Feld1 bei Eintrag Feld2 in Formular

Beitrag von Wolf »

eBayer hat geschrieben:So einfach geht das.......
Hallo,

Jetzt haben sich unsere Antworten aber überschnitten.
Aber Danke trotzdem. Und für Alle die nach uns noch suchen werden, gibt es nun ausreichend Fundstücke :)

Wolf
Antworten