Seite 1 von 1

DatensatzID aus SubForm ermitteln?

Verfasst: Do 8. Nov 2018, 19:46
von pschulze59
Hallo,

wie ermittle ich die Datensatz-ID des in einem SubForm angezeigten Datensatzes, wenn die ID selbst nicht Bestandteil des SubForms ist?
Mein bisheriger Versuch mit

Code: Alles auswählen

laktKontID = oDoc2.getlong(0)
speichert die "Position" des Datensatzzeigers im SubForm. Das ist aber nicht die ID des Datensatzes, da die Anzeige im SubForm auf einer SELECT-Anweisung bzw. Abfrage basiert und nur bestimmte Datensätze anzeigt.

Wie kann ich aus der Position dann den Datensatz adressieren und davon dessen ID auslesen?

Peter

Re: DatensatzID aus SubForm ermitteln?

Verfasst: Do 8. Nov 2018, 21:52
von RobertG
Hallo Peter,

prinzipiell muss die ID natürlich in der Abfrage stehen, ansonsten bekommst Du die nicht raus. Sie muss aber nicht Inhalt eines Formularfeldes sein:

Code: Alles auswählen

nName = oForm.findColumn("Name")
sName = oForm.getString(nName)
Dies ist ein Beispiel aus dem Handbuch. Du musst den Namen aus der Abfrage nehmen. Der muss natürlich eindeutig sein.
Bei Deiner Variante müsste oDoc2 das Unterformular sein und "0" die Position sein, an der das Feld "ID" in der Abfrage steht. Meines Wissens geht das aber bei der Spaltenzählung erst bei "1" los. Habe ich so auch im Handbuch hinterlegt.

Gruß

Robert

Re: DatensatzID aus SubForm ermitteln?

Verfasst: Do 8. Nov 2018, 22:09
von pschulze59
Danke, Robert,

zu dem Schluss war ich dann letztlich auch gekommen und hatte entsprechen schon begonnen, das Formular zu erweitern.
In dem Zusammenhang entstand dann aber das nächste Problem (siehe nächsten thread viewtopic.php?f=10&t=19757), nämlich dass mir die ID nur was nützt, wenn ich sie nach Rückkehr ins ursprüngliche Formular zum Auffinden des richtigen Datensatzes auch verwenden kann. Ein Select kommt mir dabei nicht infrage, weil es die Datenmenge auf genau den Datensatz einschränkt und eine Schleife zum Suchen und Finden ist auch nicht elegant.