Page 1 of 1

Åben form med knap

Posted: 31. Jan 2011 00:37
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...

Posted: 31. Jan 2011 10:03
by Jens S

Posted: 4. Feb 2011 23:18
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]

Posted: 16. Feb 2011 09:59
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

Posted: 20. Feb 2011 02:26
by alangea
Takker.
Det var lige hvad jeg havde brug for :)
Hvorfor gøre det mere besværligt en det egentlig er...

Posted: 10. Sep 2011 20:26
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