Macro maken voor herladen formulier (Base)

tuxy
Berichten: 115
Lid geworden op: do okt 29, 2009 11:53 am
Locatie: Adinkerke, België
Contacteer:

Macro maken voor herladen formulier (Base)

Bericht door tuxy »

Hallo,

Naar aanleiding van mijn database-applicatie die te vinden is in volgend topic:

http://user.services.openoffice.org/nl/ ... 1812#p1812

Probeer ik uit te 'vissen' hoe ik de onderstaande 'herlaad' Macro aan de praat kan krijgen, deze macro heb ik gedownload van volgend engelstalig forum:
(met dank aan Romke!)

http://www.oooforum.org/forum/viewtopic ... ght=commit

Code: Selecteer alles

sub NaUpdateRealListbox(oEvent as object)
'This event must be run when the list box is updated (second from below)
dim oForm
oForm=oEvent.source.parent
if oForm.implementationname ="com.sun.star.comp.forms.ODatabaseForm" then
    UpdateFormAndReload oForm 'Check there is form must be stored
end if
end sub


sub listbox_commit_Changed(oEvent as object)
'Bound to listbox changed (second from top)
oEvent.source.model.commit
end sub


sub UpdateFormAndReload(oForm as object)
with oForm
   if .isnew then
       .insertrow
       .reload
   elseif .ismodified then
       .updaterow
       .reload
   end if
end with
end sub 
Daar ik totaal geen ervaring heb met het gebruik van macro's, lukt het me niet om deze macro in te stellen aan de hand van mijn database.
Ik heb deze Macro opgeslagen in 'Mijn Macro's', maar wanneer ik deze wil testen, heeft deze volgende fout:

'BASIC-runtime-fout. Het argument is niet optioneel.'

Daarmee verwijst ooBase naar volgende regel:

oForm=oEvent.source.parent

Wie kan me helpen om deze macro probleemloos uit te voeren?

Christophe
OpenOffice 3.1 / Vista / Ubuntu Linux 10.04
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Macro maken voor herladen formulier (Base)

Bericht door RPG »

Hallo

Macro's waar zoiets als oEvent in staan worden nooit direct gerund.

Je moet deze macro binden aan je listbox zie de helpfile : scripts toewijzen

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
tuxy
Berichten: 115
Lid geworden op: do okt 29, 2009 11:53 am
Locatie: Adinkerke, België
Contacteer:

Re: Macro maken voor herladen formulier (Base)

Bericht door tuxy »

Ik heb de Macro toegewezen aan de keuzelijst, via de gebeurtenis 'Status gewijzigd', maar er gebeurt niets.

Ik hoef hopelijk niets te veranderen aan de Macro?

Eigenlijk vind ik het niet erg dat de knop [Zoek] dient om het formulier te vernieuwen, maar spijtig dat ik het bevestigingsvenster 'formulier gewijgd. Wilt u wijzigingen opslaan?' krijg.

Is er een manier om dit uit te schakelen?

Christophe
OpenOffice 3.1 / Vista / Ubuntu Linux 10.04
eremmel
Berichten: 670
Lid geworden op: di sep 01, 2009 10:11 am
Locatie: Barneveld, Nederland

Re: Macro maken voor herladen formulier (Base)

Bericht door eremmel »

Kijk eens naar deze discussie Filter form with combobox en Beginner stuck linking combo to subform. Bevat voorbeelddocumenten en macro's, ook voor Keuzelijst (listbox).

Ik bind mijn macro's aan de gebeurtenis (event) 'Gewijzigd' en niet aan 'Status Gewijzigd'. De help van OOO zegt: "De gebeurtenis Gewijzigd vindt plaats als het besturingselement de focus verliest en de inhoud van het besturingselement werd veranderd sinds het verlies van de focus." Dit is m.i. wat u wilt. (De help van OOo is niet slecht alleen soms moet je even zoeken...).

Die knop van bevestigen kan alleen via macro zoals in discussie beschreven voorkomen worden.
Kijk een naar de verwijzingen.
W11 21H2 (build 22000), LO 7.4.1.2(x64)
Het is Microsoft marketing die laat geloven dat computers geschikt zijn voor niet technici
tuxy
Berichten: 115
Lid geworden op: do okt 29, 2009 11:53 am
Locatie: Adinkerke, België
Contacteer:

Re: Macro maken voor herladen formulier (Base)

Bericht door tuxy »

Eremmel,

Dit lijkt me interessant.

Bedankt.

Christophe
OpenOffice 3.1 / Vista / Ubuntu Linux 10.04
Plaats reactie