Ich habe ein Hauptformular, in dem über einen Button ein neues Formular geöffnet wird. Im gleich Ablauf soll ein Wert in einem bestimmten Feld des neuen Formulars eingetragen werden. Der Name lautet "outKundenID"
Die Funktion oForm.getByName() greift aber auf die Namen des urspünglichen Formulars zu. Ich habe extra sogar oForm neu definiert nach dem Schließen des Hauptformulars. Wie kann ich die Felder des neuen ansprechen?
Hier der Code (Die Schleife dient der Suche nach dem Feld, nur initial per Index):
Code: Alles auswählen
SUB Formular_mit_ID (oEvent AS OBJECT)
Dim oForm As Object
Dim oSubform As Object
DIM oControl AS Object
DIM sFieldname AS String
DIM sID AS String
oForm = ThisComponent.Drawpage.Forms.GetByName("MainForm")
' Zweites Subformular abrufen, das die Labelfelder enthält
oSecondSubform = oForm.GetByName("formAuswahl")
sFieldname = "KundenID"
sID = oSecondSubform.getByName("outKundenID").Label
aFormStart() = Split(thisComponent.Title, thisComponent.UntitledPrefix)
stZiel = oEvent.Source.Model.Tag
ThisDatabaseDocument.FormDocuments.getByName( Trim(stZiel) ).open
ThisDatabaseDocument.FormDocuments.getByName( Trim(aFormStart(1)) ).close
oForm = ThisComponent.Drawpage.Forms.GetByName("MainForm")
sFieldname = "out" + sFieldname
' Nach Textfeld mit Namen suchen
For i = 0 to oForm.Count - 1
oControl = oForm.getbyindex(i)
If oControl.Name = sFieldname Then
MsgBox sIDFieldName & " gefunden mit Index i = " & i 'Fehlersuche
Exit For
End If
Next
END SUB