I want to open a form in base with a macro.

I want to use this macro to open aForm in base.

Sub openform()

ThisDatabaseDocument.FormDocuments.getByName("test").open 

End Sub

Form “test” exists and is closed.

When I run the marco I get the foultcode “Objectvariabele niet ingesteld”

I use Libreoffice 6.0.1.1 (x64)

What do I wrong?

Je kunt een objectvariabele niet direct gebruiken zoals je een numerieke of stringvariabele kunt gebruiken. Die moet eerst worden ingesteld of geïnitialiseerd, wat wil zeggen dat er ruimte voor moet worden gemaakt in het geheugen van de computer. Bekijk maar eens wat voorbeelden van macro’s die vergelijkbare dingen moeten doen. Stel jezelf ook de vraag of het de moeite waard is om macro’s voor LibreOffice te gaan ontwikkelen, het is moeilijk en de tijd die je met de macro’s wint weegt waarschijnlijk niet op tegen de ontwikkeltijd.

Meer hulp is te vinden op het Engelstalige forum van Apache OpenOffice, daar zijn gewoon veel meer actieve gebruikers met verstand van zaken dan op een Nederlandstalig forum. Je kunt op www.openoffice.org ook boeken als PDF vinden.

Welke manieren zijn er dan nog meer om met een knop formulieren te openen en sluiten? Ik ben gewend om een database met acces te maken. Maar waar ik nu vrijwillerswerk doe gebruiken ze libreoffice. Is er niet ergens een voorbeelddatabase met dit soort toepassingen? Of een boek?

In hoofdstuk 9 (Macro’s) van het BASE Handbook (https://wiki.documentfoundation.org/Documentation/Publications#LibreOffice_Base_Handbook) wordt eea besproken. er zitten ook voorbeeld databases bij.
ook het document adrewbase.pdf (even googelen) bevat een schat aan informatie.
Hoop dat je hiermee verder kunt.

Net even in mijn database toegepast:

SUB MainformOpen
	ThisDatabaseDocument.FormDocuments.getByName( "WorkList1" ).open
END SUB

SUB OpenReport
	ThisDatabaseDocument.ReportDocuments.getByName("PackingList").open
END SUB

Om een formulier direct op te starten kan je onderstaande code gebruiken.

SUB Form_Directstart
   DIM oDatasource AS OBJECT
   oDatasource = ThisDatabaseDocument.CurrentController
   If NOT (oDatasource.isConnected()) THEN
      oDatasource.connect()
   END IF
   ThisDatabaseDocument.FormDocuments.getByName("Formname").open
END SUB

alle info heb ik uit hftk 9 Macro document gehaald.

Bedankt voor de moeite.
Het werkte bij mij niet omdat ik de macro’s op het algemene macro blad had gezet.
Nu ik ze draai op het macroblad onder de databasenaam waarin ik werkt werkt het wel.