Åben form med knap

Brugerhjælp og support til databaser i LibreOffice Base

Moderator: Lodahl

Post Reply
alangea
Posts: 4
Joined: 31. Jan 2011 00:33

Åben form med knap

Post by alangea »

Hejsa.
Helt ny til "Base".
Jeg har lavet en simpel database med 2 forms.

form1 hedder "Project"
form2 hedder "Material"

Jeg ønsker nu en knap i formen "Project" der åbner formen "Material", når der klikkes på denne med musen.
Hvordan gøres dette?

Jeg har prøvet dette:

dim oForm as Object
oForm = OpenForm("Material")

Men får en fejl i linje 2...
Jens S
Posts: 1091
Joined: 25. Mar 2007 22:42

Post by Jens S »

alangea
Posts: 4
Joined: 31. Jan 2011 00:33

Post by alangea »

Når jeg prøver dette får jeg fejl i linje 2:
"BASIC Runtime error. argument is not optional"

Her er koden:

REM ***** BASIC *****

Sub onClickOpenForm ( oEvent as variant )
OpenForm(oEvent, "Material")
End sub


Sub OpenForm( oEvent as variant, aFormName as string) as variant
Dim args(1) As New com.sun.star.beans.PropertyValue
Dim container as variant
Dim oCon
oCon = oEvent.Source.Model.Parent.ActiveConnection
container = oCon.Parent.DatabaseDocument.FormDocuments
args(0).Name = "Project ID"
args(0).Value = oCon
args(1).Name = "OpenMode"
args(1).Value = "open"
container.loadComponentFromURL(aFormName,"_blank",0,args())
End Sub[/img]
Jens S
Posts: 1091
Joined: 25. Mar 2007 22:42

Post by Jens S »

Jeg har fundet denne makro til dig:

Code: Select all

Sub openFormular
	ThisDatabaseDocument.FormDocuments.GetByIndex(0).open()
End Sub
Index starter med 0 for den første formular og makro skal udføres fra en åben formular (evt. en knap).

Du kan evt. også se efter en tilføjelse der hedder 'Switchboard', som jeg ikke har prøvet, men må være noget lignende MS Access switchboard.

mvh
Jens
alangea
Posts: 4
Joined: 31. Jan 2011 00:33

Post by alangea »

Takker.
Det var lige hvad jeg havde brug for :)
Hvorfor gøre det mere besværligt en det egentlig er...
Sveinir
Posts: 7
Joined: 29. Nov 2008 00:18
Location: 2000 Frederiksberg

Post by Sveinir »

Hvis man vil være sikker på, hvilken formular, man åbner, kan man gøre sådan:

Code: Select all

ThisDatabaseDocument.FormDocuments.getByName(formularnavn).open() 
Erstat formularnavn med det faktiske navn, enten i en variabel eller som en konstant, f.eks. "Material". altså

Code: Select all

ThisDatabaseDocument.FormDocuments.getByName("Material").open() 
Sveinir
Post Reply