Makro in Base-Formular

04/02/2009 - 13:59 von Jens Pfahl | Report spam
Hallo,
ich betreibe eine kleiner MySQL-Datenbank (Brief-Tagebuch) bei der
OpenOffice.org-Base als Frontend von mehreren Computern im Netzwerk
eingesetzt wird.
Im letzten Jahr haben wir die Vergabe der Tgb.Nr. so gelöst:
- Datenbank aktualisieren
- neuen Datensatz anlegen
- Datensatznummer im Feld Tgb-Nr übernehmen
- Datensatz abspeichern.

Wenn der Datensatz versàumt wurde sofort abzuspeichern bzw. vor anlegen
eines neuen Datensatzes zu aktualisieren, kam es immer wieder zu Problemen
bei zeitgleicher Nutzung. so dass im nachhinein mühsam die Sache in Ordnung
gebraucht werden musste.

Ich möchte deshalb mit einem Schalter im Formular erreichen, dass die
Vorgehensweise automatisiert wird. Dazu habe ich einen Schalter angelegt
und mit dem dem Makrorecorder ein Makro angefangen zu erstellen, dass dann
dem Schalter unter Ereignisse "Beim Auslösen" zugeordnet werden soll.

Bisher sieht es so aus:

sub Neuer_Datensatz
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:Refresh", "", 0, Array())

rem -
dispatcher.executeDispatch(document, ".uno:NewRecord", "", 0, Array())

rem -
dispatcher.executeDispatch(document, ".uno:RecSave", "", 0, Array())

end sub


Zwischen NewRecord und RecSave muss es mir jetzt gelingen, die
Tagebuchnummer anzulegen. Nur da bin ich dann mit meinem Latein am Ende.
Die Nummer muss in ein Feld das Tgb-Nr heißt. Dieses Feld ist kein
Schlüsselfeld, da jedes Jahr wieder mit 1 begonnen werden sollteDeshalb
habe ich auch nicht den Aut-Wert genutzt.

Kann mir hier einer weiterhelfen?

Gruß Jens Pfahl
 

Lesen sie die antworten

#1 Marc Santhoff
04/02/2009 - 17:24 | Warnen spam
Am Wed, 04 Feb 2009 13:59:32 +0100 schrieb Jens Pfahl:

Zwischen NewRecord und RecSave muss es mir jetzt gelingen, die
Tagebuchnummer anzulegen. Nur da bin ich dann mit meinem Latein am Ende.
Die Nummer muss in ein Feld das Tgb-Nr heißt. Dieses Feld ist kein
Schlüsselfeld, da jedes Jahr wieder mit 1 begonnen werden sollteDeshalb
habe ich auch nicht den Aut-Wert genutzt.



Möchtest Du die Nummer in das Formular eintragen oder direkt in die DB
schreiben? Und ist es eine Nummer oder ein Text? Und hast Du schon eine
Nummer oder muß die erst ermittelt (=aus der DB gelesen) werden?

Marc

(Please reply to newsgroup)

Ähnliche fragen