Juan Maureira escribió:
Holas
Puede que el problema sea que la función que escribiste recibe el parámetro
Event de tipo Object, este lo ocupas en la línea que te señala el error con
la instruccion Form = *Event.*Source.Model.Parent. Cuando ejecutas la Macro
desde un botón en un formulario "Event" es el boton que se activó y loq eu
hace la instrucción es obtener el formulario en el cual el boton está, por
lo tanto cuando lo ejecutas desde el Editor Basic "no sabe" cual es el
"Event" que se activó y por lo tanto no puede ejecutar el código.
Te dice que el parámetro no es opcional (lo dá el mismo botón al ejecutarse
desde el formulario) pues en Basic puedes tener parámetros opcionales en una
función
Suerte ^_^
JuanFraMaureira
Hola Juan, buenos días. Muchas gracias por tu explicación. Aunque no
conozco mucho sobre basic (apenas estoy tratando de aprender y este
código lo copié tal cual de un post en el foro de openoffice), ahora me
queda más claro el porqué del error cuando lo intento ejecutar desde el
editor de basic en base, o desde "herramienas/macros/ejecutar macro", y
de por qué funciona bien cuando lo ejecuto desde el formulario en
cuestión, asignado a un botón.
En este post mencionan que se puede hacer también adaptar para abrir
un informe, cambiando la parte de "FormDocuments" a "ReportDocuments" y
dejando el resto es igual. ¿Sería posible también adaptarlo para llamar
una consulta o una tabla? ¿qué tendría que poner en vez de
"FormDocuments" o "ReportDocuments"? Por si las dudas, vuelvo a copiar
el código más abajo.
Muchas gracias por tu atención.
Saludos.
--
Argel.
Código:
---------------------------------------------------------------
Sub OpenForm(Event As Object)
Dim Form As Object
Dim FormDoc As Object
Dim Forms As Object
Dim DBDoc As Object
Dim Args(1) As New com.sun.star.beans.PropertyValue
Dim FormName As String
Form=Event.Source.Model.Parent
Forms=Form.Parent
FormDoc=Forms.Parent
DBDoc=FormDoc.Parent
Args(0).Name="ActiveConnection" : Args(0).Value=Form.ActiveConnection
Args(1).Name="OpenMode" : Args(1).Value="open"
FormName="Nombre_del_formulario"
DBDoc.FormDocuments.loadComponentFromURL(FormName,"_blank",0,Args)
End Sub
---------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]