Pregunta

Sé que esta es una pregunta simple para alguien, pero nunca he usado ningún módulo de funciones porque no entendía qué eran.

Así que tengo un montón de cosas para las que puedo usar esto (reducir la redundancia), pero quiero saber cómo invoco un procedimiento secundario (como hacer clic en un botón) desde un formulario.

Probé esto...

Sub Command_Click()
    Call "pptCreator"
End Sub

Sé que es bastante malo, pero no tengo idea de cómo convertir esto en un procedimiento.

¿Fue útil?

Solución

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

Para llamar a un subformulario o función desde un módulo

El sub del formulario al que llama DEBE ser público, como en:

Public Sub DoSomething()
  MsgBox "Foo"
End Sub

Llame al sub 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 el procedimiento de su evento:

Call DoSomethingElse

Para llamar a una subrutina desde un formulario sin utilizar 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 un sub, como este:

Public Function DoSomethingElse()
  MsgBox "Bar"
End Function

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

=DoSomethingElse()

Cuando hace 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 ve así:

Call MySub(MyParameter)

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

Result=MyFunction(MyFarameter)

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

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

MySub(MyParameter)

Otros consejos

Si pptCreator es una función / procedimiento en el mismo archivo, se puede llamar así como a continuación

call pptCreator()

Llamar a un procedimiento Sub - 3 Camino técnica

Una vez que tenga un procedimiento, ya sea que lo creó o si es parte del lenguaje Visual Basic, puede utilizarlo. Usando un procedimiento también se conoce como llamar a él.

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

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"

msgbox strFullName
End Sub

Sub Exercise()
    CreateCustomer
End Sub

Además de utilizar el nombre de un procedimiento para llamarlo, también puede precederla con la palabra clave Call. He aquí un ejemplo:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    Call CreateCustomer
End Sub

Cuando se llama a un procedimiento, sin o sin la palabra clave Call, puede escribir opcionalmente una apertura y un cierre paréntesis en la parte derecha de su nombre. He aquí un ejemplo:

Sub CreateCustomer()
    Dim strFullName As String

    strFullName = "Paul Bertrand Yamaguchi"
End Sub

Sub Exercise()
    CreateCustomer()
End Sub

Los 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 ser hecha pública o privada. Para especificar el nivel de acceso de un procedimiento, precedido de la privada o la palabra clave pública. He aquí 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 los mismos:

     

Privada: Si un procedimiento se hace privada, que puede ser llamado por otros procedimientos del mismo módulo. Procedimientos de módulos externos no pueden acceder a un procedimiento de este tipo.

     

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

     

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

     

Además, si un procedimiento se creó como pública, cuando se accede al cuadro de diálogo Macros, su nombre aparece y se puede ejecutar desde allí

Los procedimientos en un módulo comienzan a ser útil y genérico cuando se pasa en argumentos.

Por ejemplo:

Public Function DoSomethingElse(strMessage As String)  
    MsgBox strMessage
End Function

Ahora se puede mostrar cualquier mensaje que se pasa con la variable de cadena llamada strMessage.

Para agregar una función a un nuevo botón en su Formulario: (y evitar el uso de la función macro para llamar)

Una vez que ha creado su función (MyFunctionName Función ()) y se encuentra en forma de vista de diseño:

  1. Añadir un nuevo botón (no creo que se puede volver a asignar un botón de edad - no estoy seguro sin embargo).
  2. Cuando la ventana del asistente de botón se abre en Cancelar.
  3. Vaya a las propiedades del botón Tab Evento - Al hacer clic -. Campo
  4. A que los campos del menú desplegable seleccione:. Procedimiento de evento
  5. Ahora haga clic en el botón al lado del menú desplegable que tiene en ella ... y se le llevará a un nueva Private Sub en los formularios de Visual ventana Básico.
  6. En ese privada Tipo Sub: Call MyFunctionName
    Debe ser algo como esto:

Private Sub Command23_Click ()

Llamada MyFunctionName

End Sub

  1. A continuación, sólo guardarlo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top