Seite 1 von 1

Zugriff auf aktuelle Datensatz

Verfasst: Di, 26.02.2013 01:10
von Luke78
Hallo zusammen

gibt es irgendeine Möglichkeit auf die Werte eines gerade gespeicherten Datensatzes zuzugreifen?

Ich brauch in einem Unterformular die Autowert ID eines neu gespeicherten Datensatzes. Ich käme natürlich an die ID, wenn ich die in einem verknüpften Textfeld anzeigen lasse, das möchte ich aber aus verschiedenen Gründen nicht.

Gibt es einen Zugriff a la oSubForm.currentRow oder ähnliches? Hab mir schon n Wolf gesucht, verzweifel aber mal wieder an der imho mangelhaften Doku von Base.

Besten Gruß

Re: Zugriff auf aktuelle Datensatz

Verfasst: Di, 26.02.2013 06:40
von F3K Total
Moin,
klar, gibt es:
Angenommen dein Formular heißt im Formularnavigator MainForm, das Subformular SubForm und die ID, ein Integer Wert, steht in der zugrundeliegenden Tabelle/Abfrage in der ersten Spalte:
  • oform = ThisComponent.drawpage.Forms.getbyname("MainForm").getbyname("SubForm")
    nID = oform.getint(1)

    kurz, auf Groß- und Kleinschreibung achten:
  • oform = ThisComponent.drawpage.Forms.MainForm.SubForm
    nID = oform.getint(1)

    ...oder wenn du die Spalte nicht kennst, aber die Bezeichnung, z.B. ID
  • oform = ThisComponent.drawpage.Forms.MainForm.SubForm
    ncolumn = oform.findcolumn("ID")
    nID = oform.getint(ncolumn)
Gruß R

Re: Zugriff auf aktuelle Datensatz

Verfasst: Di, 26.02.2013 09:11
von juetho
Zwei kleine Ergänzungen:
1. Die ID kann erst nach insertRow zur Verfügung stehen. (Ob noch andere Umstände berücksichtigt werden müssen, habe ich nicht geprüft; ich habe keine geeignete odb-Testdatei.)
2. Wenn die ID den Datentyp INTEGER verwendet, muss in Makros (sicherheitshalber) getLong verwendet werden. Die Datentypen integer sind in Basic (Makros) und den Datenbanken unterschiedlich definiert. (In der Neufassung des Handbuchs weisen wir darauf ausdrücklich hin.)
Gruß Jürgen

Re: Zugriff auf aktuelle Datensatz

Verfasst: Di, 26.02.2013 09:33
von Luke78
Hi erstmal Danke!

Das mit der mangelhaften Dokumentation war nicht persönlich gemeint :) , bin da glaub ich von Flash auch etwas verwöhnt.

Hatte es mit analag zu updateInt mit getInt ausprobiert, aber das scheiterte dann wohl an der groß/kleinschreibung bzw. werde ich es mal mit Long ausprobieren.

Grüße