Hallo,
ja das geht,
hier ein kurzes Makro dazu.
Wenn Du mit dem Cursor in der Calc Tabelle in der Spalte ID stehst und dann das Makro aufrufst (z.B. per Tastenkombination oder Schaltfläche) passiert genau was Du möchtest.
Du mußt nur den Namen der Datenbank mit Endung .odb und den Namen des geöffneten Formulares im Code anpassen.
Ausserdem ermittelt das Makro die aktuelle Zeile aus der
ersten Spalte der dem Formular zugeordneten Abfrage/Tabelle mit .getint(
1)
Sollte deine ID in der dritten Spalte des Dateninhaltes des Formulares stehen, ändere hier in .getint(
3)
Code: Alles auswählen
Sub S_jump_to_BaseForm
nID=thiscomponent.currentselection.value
ocompmenum = stardesktop.Components.createEnumeration
while ocompmenum.hasmoreelements()
ocomp=ocompmenum.nextelement
if instr(1,ocomp.Title,"Datenbankname.odb : Formularname",1) > 0 then
odoc=ocomp
odoc.currentcontroller.frame.containerwindow.toFront
endif
wend
oform = odoc.DrawPage.forms.MainForm
oresult=oform.createResultSet
oresult.first
nrow = 1
do
nIDF=oresult.getint(1)
if nID=nIDF then
nfound=nrow
exit do
endif
nrow=nrow+1
loop until oresult.next = false
oform.absolute(nfound)
End Sub
Gruß R
Edit:
Code: Alles auswählen
if ocomp.Title = "Datenbankname.odb : Formularname" then
in
Code: Alles auswählen
if instr(1,ocomp.Title,"Datenbankname.odb : Formularname",1) > 0 then
geändert, sonst geht es nur wenn das Formular einmal im Entwurfsmodus geöffnet wurde, weil an den Titel noch "schreibgeschützt" drangehängt wird.