von Puck78 » Fr, 06.01.2017 12:16
Hallo R,
entschuldige, wenn ich Dich nun zweimal umsonst bemüht habe. Ich habe anhand Deines ersten Hinweises und Deinen Anregungen aus diesem älteren Post (
viewtopic.php?t=53803)
Re: Recordset des Formulars manipulieren
Beitrag von F3K Total » Fr, 15.06.2012 18:25
noch einmal herumprobiert und siehe da, es hat geklappt. Folgendes Makro liefert nun das gewünschte Ergebnis:
Code: Alles auswählen
Sub CallOrderFormStammTrans( oEvent as Object )
Dim adrForm as Object
Dim newForm as Object
Dim ssql(0) as string
adrForm = oEvent.Source.Model.Parent
oform = Thiscomponent.drawpage.forms.MainForm
oListenfeld1 = oform.getByName("lbEmittent")
s_selection = oListenfeld1.CurrentValue'Ausgewählten Wert aus Listbox 1 auslesen
oListenfeld2 = oform.getByName("lbStamm")
s_selection2 = oListenfeld2.CurrentValue'Ausgewählten Wert aus Listbox 2 auslesen
oListenfeld3 = oform.getByName("lbGeschaeftsjahr")
s_selection3 = oListenfeld3.CurrentValue'Ausgewählten Wert aus Listbox 3 auslesen
newForms = thisDatabaseDocument.FormDocuments.getByName("frm_Aktien_Umlauf_Stamm").open
newForm = newForms.drawpage.forms.MainForm
do
wait 10
loop until newForm.isloaded
newForm.movetoinsertrow
newForm.Columns.ISIN.updatestring(s_selection2)
newForm.Columns.Geschaeftsjahr.updatestring(s_selection3)
oListenfeld1 = newForm.getByName("lbEmittentStA")
oListenfeld1.ListSourceType = 3'Sql
ssql(0)= "SELECT ""Name_Emittent"" FROM ""T_Stammdaten_Emittent"" WHERE ""Name_Emittent"" ='"+s_selection+"'"
oListenfeld1.ListSource=ssql'Sql Befehl eintragen
End Sub
Deine Codezeile
habe ich eliminieren müssen - anderenfalls hat das Makro in Verbindung mit den als NOT NULL definierten Spalten der Zieltabelle eine Fehlermeldung erzeugt. Zudem habe ich im Formular Änderungen zugelassen, sonst waren keine manuellen Eingaben möglich.
Falls Du hier noch etwas Eleganteres im Ärmel hast, bin ich für Vorschläge dankbar, kann aber mit der jetzigen Lösung gut weiterarbeiten.
Vielen Dank noch einmal für Deine Hilfe, beste Grüße und schönes Wochenende
Puck78
Hallo R,
entschuldige, wenn ich Dich nun zweimal umsonst bemüht habe. Ich habe anhand Deines ersten Hinweises und Deinen Anregungen aus diesem älteren Post ([url]http://de.openoffice.info/viewtopic.php?t=53803[/url])
[quote]Re: Recordset des Formulars manipulieren
Beitrag von F3K Total » Fr, 15.06.2012 18:25 [/quote]
noch einmal herumprobiert und siehe da, es hat geklappt. Folgendes Makro liefert nun das gewünschte Ergebnis:
[code]Sub CallOrderFormStammTrans( oEvent as Object )
Dim adrForm as Object
Dim newForm as Object
Dim ssql(0) as string
adrForm = oEvent.Source.Model.Parent
oform = Thiscomponent.drawpage.forms.MainForm
oListenfeld1 = oform.getByName("lbEmittent")
s_selection = oListenfeld1.CurrentValue'Ausgewählten Wert aus Listbox 1 auslesen
oListenfeld2 = oform.getByName("lbStamm")
s_selection2 = oListenfeld2.CurrentValue'Ausgewählten Wert aus Listbox 2 auslesen
oListenfeld3 = oform.getByName("lbGeschaeftsjahr")
s_selection3 = oListenfeld3.CurrentValue'Ausgewählten Wert aus Listbox 3 auslesen
newForms = thisDatabaseDocument.FormDocuments.getByName("frm_Aktien_Umlauf_Stamm").open
newForm = newForms.drawpage.forms.MainForm
do
wait 10
loop until newForm.isloaded
newForm.movetoinsertrow
newForm.Columns.ISIN.updatestring(s_selection2)
newForm.Columns.Geschaeftsjahr.updatestring(s_selection3)
oListenfeld1 = newForm.getByName("lbEmittentStA")
oListenfeld1.ListSourceType = 3'Sql
ssql(0)= "SELECT ""Name_Emittent"" FROM ""T_Stammdaten_Emittent"" WHERE ""Name_Emittent"" ='"+s_selection+"'"
oListenfeld1.ListSource=ssql'Sql Befehl eintragen
End Sub[/code]
Deine Codezeile
[code]newForm.insertrow[/code]
habe ich eliminieren müssen - anderenfalls hat das Makro in Verbindung mit den als NOT NULL definierten Spalten der Zieltabelle eine Fehlermeldung erzeugt. Zudem habe ich im Formular Änderungen zugelassen, sonst waren keine manuellen Eingaben möglich.
Falls Du hier noch etwas Eleganteres im Ärmel hast, bin ich für Vorschläge dankbar, kann aber mit der jetzigen Lösung gut weiterarbeiten.
Vielen Dank noch einmal für Deine Hilfe, beste Grüße und schönes Wochenende
Puck78