Transcript
Page 1: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 1

Unidad didáct ica 11

VBA

VBA (Visual Basic para Aplicaciones) es un lenguaje de programación creado por Microsoft para Office que incluye su propio entorno de desarrollo.

Esto no es un curso de Visual Basic. Se trata de comprender la utilización de este

lenguaje para generar diferentes procedimientos que asignaremos a eventos de objetos de nuestra base de datos.

Al finalizar el estudio de estas lecciones serás capaz de:

Conocer el entorno de desarrollo de Visual Basic.

Definir variables, expresiones y objetos.

Establecer propiedades a distintos objetos de Access.

Page 2: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 2

Lección 1

Entorno de desarrol lo

Es el lugar en el que generamos los diferentes procedimientos y funciones que afectarán a los diferentes objetos de nuestra base de datos.

Podemos acceder a él seleccionando la ficha Herramientas de bases de datos, grupo Macro, opción Visual Basic.

Page 3: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 3

La ventana de código

En ella podemos escribir y editar el código de Visual Basic.

Selector de “Objetos”

Muestra el nombre del objeto seleccionado. Si hacemos clic en el

“desplegable” se mostrarán todos los controles situados en el formulario.

Selector de “Procedimientos”

Muestra todos los eventos relacionados con el control seleccionado.

Los botones que se muestran en la esquina inferior derecha de la ventana

permitirán mostrar todos los procedimientos del módulo o únicamente el procedimiento seleccionado.

Ver procedimiento / Ver módulo completo

Explorador del proyecto

Muestra una lista de todos los proyectos y de los elementos de cada uno de ellos.

Page 4: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 4

Ver código

Muestra la ventana de código asociada al elemento seleccionado.

Ver objeto

Muestra la ventana del objeto correspondiente al elemento seleccionado.

Alternar carpetas

Permite ocultar y mostrar las carpetas y los elementos que contienen éstas.

Propiedades

Muestra los valores de las propiedades del elemento seleccionado.

Cuadro de objetos

Es el desplegable que se encuentra en la parte superior y, en él, aparecen

todos los objetos del elemento seleccionado en el explorador de proyectos.

Lista alfabética

Muestra las propiedades del objeto ordenadas en orden alfabético.

Lista por categorías

Muestra las propiedades del objeto seleccionado agrupadas por categorías.

Page 5: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 5

Ventana "inmediato"

Puedes mostrarla desde la opción “Ver/Ventana inmediato” y permite probar la

ejecución de instrucciones escribiendo la línea de código y pulsando la tecla “Enter”.

Barra de herramientas estándar

Esta barra incluye los típicos botones de cortar, copiar, pegar y buscar. La

posibilidad de deshacer y rehacer. Desde ella podemos mostrar u ocultar diferentes

paneles como el explorador de proyectos, propiedades y examinador de objetos.

Podemos crear nuevos procedimientos y guardarlos. También permite ejecutar el

procedimiento, interrumpir su ejecución y restablecerla.

Page 6: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 6

Lección 2

Procedimientos y func iones

Son sucesiones de instrucciones que realizan diferentes tareas o calculan valores. Podemos clasificar los procedimientos en dos tipos…

Procedimientos Sub()

Realizan una serie de procesos pero no devuelven un valor. Las instrucciones van

comprendidas entre las expresiones Sub() y End Sub.

Proced01

Private Sub Comando0_Click()

MsgBox "Bienvenido"

End Sub

Fíjate que la ejecución del procedimiento se ha asignado automáticamente al

evento “Al hacer clic” del botón.

Resultado

Proced02

Tenemos un formulario con un botón de comando al que le hemos

asignado la ejecución del siguiente procedimiento al hacer clic en él.

Page 7: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 7

Si quieres realizar el ejemplo…

Crea un formulario en vista “Diseño”.

Inserta un control del tipo “Botón de comando” (si quieres desactiva el “Asistente

para controles” puesto que la acción se la asignaremos de forma manual).

Pulsa el botón derecho del ratón sobre el “Botón de comando” insertado y

selecciona la opción “Generar evento”. En la ventana que aparece, elige “Generador

de código” y pulsa el botón “Aceptar”. Entrarás en el “Entorno de desarrollo” en el

que ya aparece el procedimiento asignado al evento “Al hacer clic” del botón. En la

posición en la que queda situado el cursor escribe la instrucción del ejemplo:

MsgBox "Bienvenido"

Cierra la ventana del “Entorno de desarrollo” y prueba.

El manejo del “Entorno de desarrollo” y sus diferentes paneles y componentes será

comentado en posteriores lecciones.

Procedimientos Function()

Este tipo de procedimientos se denominan genéricamente funciones y, devuelven

el valor resultante de una serie de cálculos o procesos. Las instrucciones estarán comprendidas entre las expresiones Function y End Function.

Funcion01

Tenemos un formulario con tres cuadros de texto (Precio,

Cantidad e Importe) y un botón de comando al que le asignaremos la ejecución de una función que calcule el importe.

Page 8: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 8

La función sería:

Function CalculaImporte()

Importe.Value = Cantidad.Value * Precio.Value

End Function

Así como los procedimientos van directamente asignados a eventos, las funciones

serán creadas y, después asignadas al evento en el que queramos que se ejecuten.

Observa que, a la función le damos un nombre para poder hacer referencia a ella

en el momento que decidamos ejecutarla. Dicho nombre no podrá contener

espacios en blanco ni caracteres extraños. A continuación del nombre abriremos y

cerraremos paréntesis (en algunos casos escribiremos una serie de argumentos entre ellos).

Si quieres realizar el ejemplo…

Crea un formulario en vista “Diseño”.

Inserta tres controles del tipo “Cuadro de texto” y un botón de comando (a los

cuadros de texto les he puesto como nombre: Precio, Cantidad e Importe).

Accede al “Entorno de desarrollo” pulsando las teclas “Alt+F11” y escribe lo siguiente:

Function CalculaImporte()

Importe.Value = Cantidad.Value * Precio.Value

End Function

De momento no te preocupes por el contenido de la expresión (aunque, en este

caso es muy sencillo de entender). Ya comentaremos los conceptos de objeto, propiedad y método en próximas lecciones.

Una vez creada la función, cierra la ventana del “Entorno de desarrollo” y, vamos a

decidir el momento en el que se ejecutará. Pulsa el botón derecho del ratón sobre

el “Botón de comando” insertado en el formulario y selecciona la opción

“Propiedades”. Sitúate en el apartado “Eventos” y, en el evento “Al hacer clic”, escribe el nombre de la función precedido del signo “=”.

=CalculaImporte()

¡No te preocupes por las mayúsculas y minúsculas, a Access le da igual!

Ahora prueba a introducir el precio y la cantidad y pulsa el botón “Calcular” para comprobar que está todo correcto.

Page 9: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 9

Lección 3

Var iab les

Podemos definir una variable como un contenedor en el que almacenamos cierta información para utilizarla posteriormente.

Proced01

Private Sub Comando0_Click()

dato = "Carlos"

MsgBox "Hola " + dato + ", Bienvenido"

End Sub

Hemos creado una variable a la que le hemos puesto como nombre “dato” y le

hemos asignado el valor “Carlos”. A continuación mostramos un cuadro de mensaje

en el que unimos texto y el contenido de la variable dato mediante el signo “+”.

Resultado

Variables01

Tenemos un formulario con un “Botón de comando” al que le hemos asignado la ejecución del siguiente procedimiento…

Page 10: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 10

Nombre de variable

El nombre de la variable tiene que cumplir las siguientes condiciones…

No se pueden usar caracteres especiales de Access, como el punto, los paréntesis, la barra vertical o caracteres utilizados como operadores (+, -, /, *, <, >).

Debe empezar por una letra o por el carácter de subrayado “_”.

No puede contener espacios en blanco.

No se pueden utilizar palabras reservadas de VBA (for, if, integer…)

Puede tener hasta 255 caracteres.

No puede haber dos variables con el mismo nombre dentro del mismo procedimiento.

Para definir las variables que utilizaremos en el procedimiento utilizaremos la instrucción Dim, seguida del nombre de la variable y de su tipo de datos.

Tipos de datos

Al igual que en los campos, el tipo de datos permite establecer la clase de

información que se almacenará en la variable.

Numéricos

Existen dos grupos

Números enteros. Permite almacenar valores enteros. Sus tipos son:

Tipo Tamaño Valor inferior Valor superior

Byte 1 byte 0 255

Integer 2 bytes -32.768 32.767

Long 4 bytes -2.147.483.648 2.147.483.647

Page 11: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 11

Números de coma flotante. Permiten almacenar valores enteros y no enteros.

Sus tipos son:

Tipo Tamaño Negativos Positivos

Single 4 byte De -3,402823E38

a -1,401298E-45

De 1,401298E-45 a

3,402823E38

Double 8 bytes De -1.79769313486231E308

a -4,94065645841247E-324

De 4,94065645841247E-324 a 1,79769313486232E308

Currency 8 bytes De -922.337.203.685.477,5808

a 0

De 0 a

922.337.203.685.477,5807

Decimal 12 bytes

El tipo decimal es un poco raro, permite almacenar hasta 29 dígitos enteros con

hasta 28 posiciones decimales.

+/-79.228.162.514.264.337.593.543.950.335 sin punto decimal;

+/-7,9228162514264337593543950335 con 28 posiciones a la derecha del signo decimal;

el número más pequeño distinto de cero es +/-0,0000000000000000000000000001

Ejemplo

Dim dato1 As integer

Date

Permite almacenar datos de tipo Fecha/Hora con formato Mes/Día/Año.

Ejemplo

Dim dato1 As date

Boolean

Permite almacenar datos de tipo Sí/No o True/False.

Ejemplo

Dim dato1 As boolean

Page 12: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 12

String

Almacena datos de cadena de texto. Existen dos tipos…

Longitud variable. El número máximo de caracteres que se pueden almacenar es

de 2^31.

Ejemplo

Dim dato1 As string

Longitud fija. Limitamos el número de caracteres al definir la variable, hasta un

máximo de 65.536. Esto lo hacemos utilizando el carácter “*” seguido del número de caracteres máximo.

Ejemplo

Dim dato1 As string * 25

Variant

Permite almacenar cualquier tipo de datos.

Ejemplo

Dim dato1 As string * 25

Podemos definir más de una variable en la misma línea. Por ejemplo…

Dim dato1, dato2, dato3 As string

Ámbito

Hasta ahora, en los ejemplos, el ámbito de una variable lo hemos definido con la

instrucción Dim, pero existen otras instrucciones que permiten especificar el

alcance de dicha variable.

Dim

La variable sólo será visible por los procedimientos incluidos en un módulo (si se

define en la cabecera del mismo) y sólo será visible en el interior de un procedimiento si se define en él.

Page 13: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 13

Private

Se suele utilizar para que una variable o un procedimiento sólo sean visibles dentro

del modulo en el que se crean.

Public

Se utiliza para que una variable o un procedimiento sean visibles desde cualquier

parte de la aplicación.

Global

Su ámbito es el mismo que el de la instrucción Public.

Page 14: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 14

Lección 4

Expresiones

Los datos que manipulamos en los diferentes procedimientos, generalmente los

utilizamos para realizar operaciones. Estas operaciones son denominadas genéricamente expresiones.

Los operadores que podemos utilizar en las expresiones son los siguientes.

Operadores aritméticos

Operador Operación

+ Suma o unión (en cadenas de texto)

- Resta

* Multiplicación

/ División

\ División entera

Mod Resto de una división

^ Potencia

Operadores de comparación

Operador Comparación

= Igual a…

> Mayor que…

< Menor que…

>= Mayor o igual que…

<= Menor o igual que…

<> Distinto de…

Page 15: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 15

Operadores de concatenación

Operador Función

+ Suma dos números o une dos cadenas de texto

& Une dos cadenas de texto (recomendado)

Operadores lógicos

Operador Función

And Conjunción lógica

Or Disyunción lógica

Not Negación lógica

Page 16: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 16

Lección 5

Objetos, propiedades y métodos

Los objetos representan elementos de una aplicación. En el caso de Access: un formulario, un informe, un control, un campo…

A los objetos se les pueden asignar propiedades y métodos.

Propiedades

Son características que poseen los objetos (posición, color, dimensiones, valor…)

Son acciones que afectan a un objeto. Para asignar un método a un objeto, utilizamos la siguiente sintaxis…

Objeto.Propiedad

Métodos

Son acciones que afectan a un objeto. Para asignar un método a un objeto,

utilizamos la siguiente sintaxis…

Objeto.Método()

Page 17: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 17

Lección 6

Estructuras condic ionales

Permiten ejecutar una serie de instrucciones dependiendo de una serie de condiciones.

Podemos utilizar diferentes estructuras condicionales.

If…Then

La sintaxis básica es…

If condición then

Instrucciones que se ejecutarán si se cumple la condición

Else

Instrucciones que se ejecutarán si no se cumple la condición

End if

La instrucción Else es opcional.

Private Sub Form_Current()

If HABITANTES > 5000 Then

Tamaño = "Grande"

Else

Tamaño = "Pequeño"

End If

End Sub

De esta manera, si la localidad tiene más de 5000 habitantes, en el cuadro de texto

se mostrará el rótulo “Grande” y, si no tiene más de 5000 habitantes, se mostrará el rótulo “Pequeño”.

He creado un formulario en columnas basado en la tabla “Pueblos”.

En él he insertado un cuadro de texto al que le he puesto como

nombre “Tamaño”. Después, en el evento del formulario “Al activar registro” he generado el siguiente procedimiento:

Page 18: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 18

Condicional01

Select Case

Permite establecer una serie de resultados para diferentes posibilidades. Su sintaxis

es…

Select Case campo

Case valor1

Instrucciones

Case valor2

Instrucciones

Case Else

Instrucciones

End Select

Page 19: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 19

Private Sub Form_Current()

Select Case PROVINCIA

Case "Zaragoza"

DeDonde = "Hola zaragozano"

Case "Huesca"

DeDonde = "Hola oscense"

Case "Teruel"

DeDonde = "Hola Turolense"

End Select

End Sub

Condicional02

He creado un formulario en columnas basado en la tabla “Pueblos”.

En él he insertado un cuadro de texto al que le he puesto como

nombre “DeDonde”. Después, en el evento del formulario “Al activar registro” he generado el siguiente procedimiento:

Page 20: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 20

Lección 7

Propiedades de formulario

Te muestro una serie de propiedades de formulario (objeto Form) modificadas mediante la asignación de una serie de procedimientos.

Crea un formulario en vista Diseño e inserta en él una serie de etiquetas o de botones de comando (como prefieras). Yo he insertado etiquetas…

Propiedades01

Cambiar título del formulario: Para ello utilizamos la propiedad “Caption”.

Genera un procedimiento asignado al evento “Al hacer clic” de la etiqueta con la

siguiente instrucción…

Private Sub Etiqueta3_Click()

Form.Caption = "He cambiado el título"

End Sub

Quitar botones de desplazamiento: De esto se encarga la propiedad

NavigationButtons la cual tiene dos valores “True” (visibles) y “False” (ocultos).

Genera un procedimiento asignado al evento “Al hacer clic” de la etiqueta con la siguiente instrucción…

Private Sub Etiqueta8_Click()

Form.NavigationButtons = False

End Sub

Page 21: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 21

Quitar selector de registro: Mediante la propiedad RecordSelectors podemos

hacer que se muestre o no. Genera un procedimiento asignado al evento “Al hacer clic” de la etiqueta con la siguiente instrucción…

Private Sub Etiqueta9_Click()

Form.RecordSelectors = False

End Sub

Quitar separador de registros: La propiedad DividingLines hacer que se

muestre o no la línea de separación entre registros. Genera un procedimiento asignado al evento “Al hacer clic” de la etiqueta con la siguiente instrucción…

Private Sub Etiqueta10_Click()

Form.DividingLines = False

End Sub

Existen otras muchas propiedades de formulario que podemos modificar (Mostrar u

ocultar los botones de maximizar, minimizar y cerrar, modificar el estilo de los

bordes, quitar o poner el botón de cerrar, modificar su tamaño…) Si quieres probar,

ya habrás observado que, al escribir en el procedimiento la palabra Form y un

punto, se muestra la lista de propiedades que afectan al objeto. No cuesta nada

probar el efecto que causan en el formulario.

Page 22: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 22

Lección 8

Propiedades de et iquetas

A continuación probaremos como afectan a las etiquetas de un formulario la

modificación de los valores de algunas de sus propiedades. Estas propiedades son extensivas a los cuadros de texto.

He creado un formulario en vista Diseño en el que he insertado una serie de etiquetas para probar.

Propiedades 02

Cambiar el color del texto de la etiqueta: Propiedad ForeColor. Valor, código

de color RGB (si quieres conocer el código que corresponde a un determinado color,

muestra las propiedades de la etiqueta y, en la propiedad “Color del texto” pulsa el

botón de los tres puntos, selecciona un color y se mostrará el código que le

corresponde. Asigna el siguiente procedimiento al evento “Al hacer clic” de la etiqueta.

Private Sub Etiqueta4_Click()

Etiqueta4.ForeColor = 4966415

End Sub

O también:

Private Sub Etiqueta4_Click()

Etiqueta4.ForeColor = RGB(255, 0, 0)

End Sub

De esta manera indicamos la cantidad de rojo, verde y azul (de 0 a 255) que

utilizamos para dar color al texto.

Page 23: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 23

Cambiar el color de fondo de la etiqueta: Asigna previamente a la etiqueta un

color de fondo y, después genera un procedimiento asignado al evento “Al hacer

clic” de la misma. Mediante la propiedad BackColor podemos variar el color de su fondo. Los valores serán los mismos que para modificar el color del texto.

Private Sub Etiqueta5_Click()

Etiqueta5.BackColor = 4966415

End Sub

Cambiar la posición de la etiqueta: De esto se encarga la propiedad Move con

sus argumentos Left (posición desde el borde izquierdo de la ventana) y Top

(posición desde el borde superior de la ventana). También podemos establecer su

tamaño con los argumentos Width (ancho) y Height (alto). La unidad de medida

que utilizamos para los diferentes valores es el twip (TWentIeth of a Point)

Vigésima parte de un punto. Equivale a 1/1440 de una pulgada. Una unidad

independiente de la pantalla utilizada para asegurar que la colocación y la

proporción de los elementos de la pantalla de la aplicación son los mismos en todos

los sistemas de pantallas. Un twip es una unidad de medida de la pantalla igual a

1/20 de un punto de impresora. Existen aproximadamente 1440 twips en una

pulgada lógica o 567 twips en un centímetro lógico (la longitud de un elemento de

pantalla que mide una pulgada o un centímetro al imprimirse.

Asigna el siguiente procedimiento al evento “Al hacer clic” de la etiqueta.

Private Sub Etiqueta6_Click()

Etiqueta6.Move Left:=0, Top:=0

End Sub

De esta manera se situará en la esquina superior izquierda de la ventana.

Ocultar la etiqueta: De esto se encarga la propiedad Visible con los valores “True” (visible) y “False” (oculto).

Asigna el siguiente procedimiento al evento “Al hacer clic” de la etiqueta.

Private Sub Etiqueta7_Click()

Etiqueta7.Visible = False

End Sub

Por supuesto que existen muchas otras propiedades. Crea tus propias etiquetas y

prueba con diferentes propiedades para comprobar su funcionamiento.

Page 24: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 24

Lección 9

InputBox

Muestra una ventana con un mensaje y un cuadro de texto en el que el usuario deberá introducir información que será procesada posteriormente.

Su sintaxis básica es:

Variable o campo = InputBox(Mensaje,Título de la ventana,Valor predeterminado)

He creado una tabla y un formulario en columnas basado en ella, con los siguientes campos:

Inputbox01

En el evento “Al cargar” del formulario he generado el siguiente procedimiento:

Private Sub Form_Load()

Apellidos = InputBox("Introduce tus apellidos", "Entrada de datos",

"Escribe aquí")

Nombre = InputBox("Introduce tu nombre", "Entrada de datos",

"Escribe aquí")

Telefono = InputBox("Introduce tu teléfono", "Entrada de datos",

"Escribe aquí")

End Sub

Al cargarse el formulario se mostrarán (una detrás de otra) tres cuadros de diálogo

en los que se me pedirá que introduzca la información solicitada. Esta información irá a parar a los diferentes campos del formulario.

Inputbox02

Page 25: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 25

Lección 10

MsgBox

Muestra una ventana con un mensaje y una serie de botones que podemos controlar.

Su sintaxis es…

MsgBox “Mensaje”

De esta forma, simplemente se muestra un cuadro de mensaje con un botón de “Aceptar”.

He creado otro formulario basado en la tabla anterior y, en el evento “Al cargar” he generado el siguiente procedimiento de evento…

Private Sub Form_Load()

MsgBox "Bienvenido"

End Sub

El resultado es…

Msgbox01

La sintaxis, algo más completa, es…

Variable = MsgBox(Mensaje,botones,título de la ventana)

He modificado el código asignado al evento “Al cargar” del formulario anterior por este…

Private Sub Form_Load()

Dim respuesta

respuesta = MsgBox("¿Quieres introducir datos", vbYesNo, "Entrada

de datos")

If respuesta = vbNo Then

DoCmd.Close

End If

End Sub

Page 26: Unidad didáctica 11 VBA - Plataforma Formatelformacion.desarrollando.net/cursosfiles/formacion/curso... · 2010-09-14 · VBA 1 Unidad didáctica 11 VBA VBA (Visual Basic para Aplicaciones)

VBA 26

En el código he definido una variable que he llamado respuesta. A continuación,

muestro un cuadro de mensaje con dos botones “Sí” y “No”, y controlo el botón

pulsado almacenando su valor en la variable. Pregunto por el contenido de la

variable, si ha pulsado el botón “No”, cierro el formulario. En caso contrario se abriría el formulario.

El resultado de la función MsgBox, sería…

Msgbox02


Recommended