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]

Responder a