Hallo robert,
vielen Dank fuer deine Hilfe, hat alles wunderbar geklappt.
Gruesse
Martin Jennigers
Robert Großkopf schrieb:
Hallo Martin,
Ich habe eine DBmit zwei Tabellen erstellt
empfaenger
Empf-ID
Name
Adresse
Postleitzahl
Ort
Kontonummer
ueberweisungen
ID
Datum
Betrag
Mitteilung
Empf-ID
Ich würde folgendes machen:
1. Gründe eine Tabelle tmp
Diese Tabelle hat 2 Felder: ID und Empf-ID.
ID wird automatisch erstellt, ist Primärschlüssel.
2. Hauptformular - besteht nur aus einer Listbox, in der der Empfänger steht.
Tabelle für das Hauptformular ist die Tabelle tmp.
SELECT "Name","Empf-ID" FROM "empfaenger"
Empf-ID wird hier in tmp geschrieben.
Anschließend erfolgt die Speicherung über ein Makro, verbunden mit dem
Ereignis "Modifiziert"
sub DatenAktualisieren
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:RecSave", "", 0, Array())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Refresh", "", 0, Array())
end sub
Das Makro ersetzt Dir lediglich Den Druck auf den Button "Speichern" und das
anschließende "Aktualisieren".
Das Hauptformular soll jedes Mal sicher auf den neuesten Datensatz springen
(ist allerdings immer nur einer, wenn nicht irgendetwas unvorhergesehenes
passiert). Das Makro wird direkt mit dem Formular verbunden, Ereignis "Beim
Laden"
sub Neuer
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:NewRecord", "", 0, Array())
end sub
2. Deine vorherigen Tabellen stehen jetzt in 2 Unterformularen zu dem
Hauptformular. Das Ganze braucht man gar nicht vom Layout her zu erkennen
erkennen. Das Auswahlfeld steht einfach da, wo Du vorher in Deinem vorherigen
Hauptformular das Namensfeld hattest.
Beide Unterformulare beziehen jetzt aus tmp die Empf-ID und zeigen die
dazugehörigen Informationen an.
3. Der einzige Haken: Du kannst so keine neuen Empfänger eingeben. Hier würde
ein gesondertes Feld für neue Empfänger helfen, das neben dem Hauptformular
in dem Formular liegt. Auch die Eingabe kann durch Makros automatisiert
werden.
Ich habe so etwas einmal als Beispieldatenbank hergestellt, bevor ich mich
größer mit Makros befasst habe. Die dort verwandten Makros sind alle mit dem
Makrorecorder erstellt.
Der Link zu diesem Beispiel mit einem Formularblatt, das zwei Hauptformulare
und zu dem zweiten Hauptformular auch noch zwei Unterformulare enthält:
http://www.scoolonline.de/download/Inventur.zip
Wenn Du deine Datenbank nur selbst betreibst und nicht auf viele andere PCs
transportieren willst rate ich Dir allerdings, die Formulare nicht im
Dokument selbst zu speichern. Das ist zwar praktisch zum Transport der
Makros, aber leider hat OpenOffice in der Base-Version hier einen Bug, der
auch in der 2.3.1 noch existiert: Das Formular muss 2 Mal hintereinander
gestartet werden, damit die Makros auch gefunden werden.
Melde Dich gerne zurück, wenn etwas zu kompliziert aussieht.
Gruß
Robert
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]