Saltar al contenido

Llamar a una función de VBA en un subprocedimiento

Luego de de una extensa selección de datos resolvimos este atascamiento que pueden tener ciertos usuarios. Te brindamos la solución y deseamos resultarte de mucha apoyo.

Solución:

Estas son algunas de las diferentes formas en que puede llamar a las cosas en Microsoft Access:

Para llamar a un sub formulario o función desde un módulo

El sub en el formulario al que está llamando DEBE ser público, como en:

Public Sub DoSomething()
  MsgBox "Foo"
End Sub

Llame al submarino así:

Call Forms("form1").DoSomething

El formulario debe estar abierto antes de realizar la llamada.

Para llamar a un procedimiento de evento, debe llamar a un procedimiento público dentro del formulario y llamar al procedimiento de evento dentro de este procedimiento público.

Para llamar a una subrutina en un módulo desde un formulario

Public Sub DoSomethingElse()
  MsgBox "Bar"
End Sub

…simplemente llámelo directamente desde su procedimiento de evento:

Call DoSomethingElse

Para llamar a una subrutina desde un formulario sin usar un procedimiento de evento

Si lo desea, puede vincular la función al evento del control de formulario sin tener que crear un procedimiento de evento bajo el control. Para hacer esto, primero necesita una función pública en el módulo en lugar de una sub, como esta:

Public Function DoSomethingElse()
  MsgBox "Bar"
End Function

Luego, si tiene un botón en el formulario, en lugar de poner [Event Procedure] en el evento OnClick de la ventana de propiedades, pon esto:

=DoSomethingElse()

Cuando haga clic en el botón, llamará a la función pública en el módulo.

Para llamar a una función en lugar de un procedimiento

Si llamar a un sub se parece a esto:

Call MySub(MyParameter)

Entonces llamar a una función se ve así:

Result=MyFunction(MyFarameter)

donde Result es una variable de tipo devuelta por la función.

NOTA: No siempre necesita la palabra clave Llamar. La mayoría de las veces, puedes simplemente llamar al sub así:

MySub(MyParameter)

si pptCreator es una función/procedimiento en el mismo archivo, puede llamarlo como se muestra a continuación

call pptCreator()

Llamar a un subprocedimiento: técnica de 3 vías

Una vez que tenga un procedimiento, ya sea que lo haya creado usted mismo o sea parte del lenguaje Visual Basic, puede usarlo. Usar un procedimiento también se conoce como llamarlo.

Antes de llamar a un procedimiento, primero debe ubicar la sección de código en la que desea utilizarlo. Para llamar a un procedimiento simple, escriba su nombre. Aquí hay un ejemplo:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"

msgbox strFullName
End Sub

Sub Exercise()
    CreateCustomer
End Sub

Además de usar el nombre de un procedimiento para llamarlo, también puede precederlo con la palabra clave Call. Aquí hay un ejemplo:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    Call CreateCustomer
End Sub

Al llamar a un procedimiento, sin o sin la palabra clave Call, puede escribir opcionalmente un paréntesis de apertura y cierre en el lado derecho de su nombre. Aquí hay un ejemplo:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    CreateCustomer()
End Sub

Procedimientos y Niveles de Acceso

Al igual que un acceso variable, el acceso a un procedimiento puede ser controlado por un nivel de acceso. Un procedimiento puede hacerse público o privado. Para especificar el nivel de acceso de un procedimiento, precedalo con la palabra clave Private o Public. Aquí hay un ejemplo:

Private Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Las reglas que se aplicaron a las variables globales son las mismas:

Privado: si un procedimiento se hace privado, puede ser llamado por otros procedimientos del mismo módulo. Los procedimientos de módulos externos no pueden acceder a dicho procedimiento.

Además, cuando un procedimiento es privado, su nombre no aparece en el cuadro de diálogo Macros.

Público: Un procedimiento creado como público puede ser llamado por procedimientos del mismo módulo y por procedimientos de otros módulos.

Además, si un procedimiento se creó como público, al acceder al cuadro de diálogo Macros, aparece su nombre y puede ejecutarlo desde allí.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *