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...
Åben form med knap
Moderator: Lodahl
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]
"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]
Jeg har fundet denne makro til dig:
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
Code: Select all
Sub openFormular
ThisDatabaseDocument.FormDocuments.GetByIndex(0).open()
End Sub
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
Hvis man vil være sikker på, hvilken formular, man åbner, kan man gøre sådan:
Erstat formularnavn med det faktiske navn, enten i en variabel eller som en konstant, f.eks. "Material". altså
Sveinir
Code: Select all
ThisDatabaseDocument.FormDocuments.getByName(formularnavn).open()
Code: Select all
ThisDatabaseDocument.FormDocuments.getByName("Material").open()