ich schreibe zur Zeit an einem Makro, welches zum Ziel hat, ein zweites Formular zu öffnen, und die im ersten Formular eigegebene ID zu übernehmen und in die zugehörige Tabelle zu speichern. Ich habe also zwei Formulare und zwei Tabellen. Meine bisherige Vorgehensweise:
1. Aktuelle Daten im Formular(1) in die Tabelle(1) speichern.
2. Das Feld "ID" auslesen und irgendwie speichern, dass es in einem anderen Formular abgerufen werden kann. Hierzu habe ich etwas von versteckten Feldern gelesen, die dann Temporär mit dem Wert belegt werden? Oder geht das direkter?
3. Das nächste Formular öffnen. Es ist für mich an dieser Stelle wichtig, dass ein seperater Bogen geöffnet wird, da dieser nur manchmal (Bei 'Nein' einer vorherigen Frage) gebraucht wird.
4. Den Wert 'ID' aus der ersten Tabelle ins zweite Formular einzutragen. Hierzu müsste ich den unter 2. gespeicherten Wert auslesen und ganz normal eintragen. Dies muss sicher funktionieren, damit die Daten am Ende nicht durcheinander geraten.
Der Stand so weit: Mein Makro kann speichern und ein zweites Formular öffnen. Wenn ich beiden zusammen in ein sub schreibe erhalte ich allerdings bei der Formular öffnen Zeile (ganz unten) den 'Objektvariable nicht belegt' Fehler. In einem eigenen Makro funktioniert es allerdings, auch ohne dass ich irgendwelche Variablen definiere.. Zu den Punkten 2. und 4. bin ich bisher noch Ideenlos.
Code: Alles auswählen
sub Saveandopen
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:RecSave", "", 0, Array())
ThisDatabaseDocument.FormDocuments.getByName("Formular2").open
end sub
Liebe Grüße,
Rob