eigentlich wollte ich ohne Makros auskommen, aber jetz ist der Punkt, an dem ich doch damit einsteigen muss.
Meine erste Aufgabe lautet:
Aus dem MainForm "RB", welches ein SubForm "Kont" enthält und welches nur zur Darstellung der Tabelleneinträge berechtigt (also kein editieren, löschen und neu anlegen in "Kont"), soll im Falle, dass ein neuer Datensatz in "Kont" angelegt werden muss, das eigentliche Formular "Kont" aufgerufen werden, ein neuer leerer Datensatz angezeigt werden, der Feldwert "RBID" in "Kont" (entnommen als "ID" aus dem aktuellen Datensatz des vorher angezeigten MainForm "RB") voreingetragen werden und nachdem der Bediener die restlichen Felder ausgefüllt hat, mit dem Schließen des Formulars "Kont" der neue Satz natürlich in "Kont" gespeichert und im Subform "Kont" zum zurückgekehrten Form "RB" angezeigt werden, was eine vorherige Aktualisierung erforderlich macht. (Hoffentlich war der Satz verständlich

Beim Makro scheitere ich nun schon am Einlesen der Drawpage. LO-Basic sagt:
Das Makro steht erst am Anfang. Aber wenigstens die Deklaration der Variablen und Einlesen der Variablenwerte sollte doch gelingen. Vielleicht bin ich auch blind - manchmal sucht man ja ein Komma oder Punkt. Aber ich finde den Fehler nicht.BASIC-Laufzeitfehler.
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message: .
Hier der bisherige Code:
Code: Alles auswählen
Sub NewKont
DIM oDoc as Object
DIM oDrawpage as Object
DIM oForm1 as Object
DIM oForm2 as Object
DIM laktRBID as long
oDoc = thisComponent
oDrawpage = oDoc.Drawpage
oForm1 = oDrawpage.forms.getByName("RB")
laktRBID = oForm.getlong(1)
thisdatabasedocument.formdocuments.getByName("Kont").open
oForm2 = oDrawpage.forms.getByName("Kont")
oForm2.movetoinsertrow()
'Nach dem Speichern muss zurück zu Form "RB"
'und die Anzeige aktualisiert werden,
'so dass neuer Kontakt im SubForm "Kont" von Mainform "RB"
'angezeigt wird
End Sub
Code: Alles auswählen
oDrawpage = oDoc.Drawpage
Was mache ich falsch?
Peter