Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Funciones y Palabras Reservadas de Visual Basic
Funciones y Palabras Reservadas de Visual Basic
Visual Basic tiene un conjunto de funciones que podremos usar. A continuación veremos las más representativas, si
bien hay muchas más. Se aconseja ir a la ayuda para ampliar o profundizar sobre la cuestión
Palabras reservadas.
Rem: Nos permite incluir comentarios sobre el programa en medio del código, la sintaxis es:
Además, se puede conseguir lo mismo sin necesidad de escribir Rem, utilizando la comilla simple, es decir, la anterior
orden es equivalente a:
'Comentario
Observaremos como el editor de código reconoce los comentarios ya que les aplica como color del texto el verde.
Exit Sub: Nos permite acabar la ejecución del procedimiento en el que lo pongamos, y en punto del mismo donde se
halle situado.
End: Nos permite acabar la ejecución del programa en el punto del mismo donde se halle situado.
Funciones.
MsgBox: Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón y devuelve un
tipo Integer correspondiente al botón elegido por el usuario.
Sintaxis
Parte Descripción
prompt Requerido. Cadena que representa el prompt en el cuadro de diálogo. La longitud máxima de prompt
es de aproximadamente 1024 caracteres, según el ancho de los caracteres utilizados.
buttons Opcional. Expresión numérica que corresponde a la suma de los valores que especifican el número y
el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la identidad del
botón predeterminado y la modalidad del cuadro de mensajes. Si se omite este argumento, el valor
predeterminado para buttons es 0.
title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si se omite
title, en la barra de título se coloca el nombre de la aplicación.
helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utiliza para proporcionar
ayuda interactiva en el cuadro de diálogo. Si se especifica helpfile, también se debe especificar
context.
context Opcional. Expresión numérica que es igual al número de contexto de Ayuda asignado por el autor al
tema de Ayuda correspondiente. Si se especifica context, también se debe especificar helpfile.
Valores
El primer grupo de valores (0 a 5) describe el número y el tipo de los botones mostrados en el cuadro de diálogo; el
segundo grupo (16, 32, 48, 64) describe el estilo del icono, el tercer grupo (0, 256, 512) determina el botón
predeterminado y el cuarto grupo (0, 4096) determina la modalidad del cuadro de mensajes. Cuando se suman números
para obtener el valor final del argumento buttons, se utiliza solamente un número de cada grupo.
Nota: Estas constantes las especifica Visual Basic para Aplicaciones. Por tanto, el nombre de las mismas puede
utilizarse en cualquier lugar del código en vez de sus valores reales.
Valores devueltos
Comentarios
Cuando se proporcionan tanto helpfile como context, el usuario puede presionar F1 para ver el tema de Ayuda
correspondiente al context. Algunas aplicaciones como por ejemplo Microsoft Excel, también agregan
automáticamente un botón Ayuda al cuadro de diálogo.
Si el cuadro de diálogo cuenta con un botón Cancelar, presionar la tecla ESC tendrá el mismo efecto que hacer clic en
este botón. Si el cuadro de diálogo contiene un botón Ayuda, se suministra ayuda interactiva para ese cuadro de
diálogo. Sin embargo, no se devuelve valor alguno hasta que se hace clic en uno de estos botones.
Nota: Si se desea especificar más que el primer argumento con nombre, se debe utilizar MsgBox en una expresión. Si
deseamos omitir algún argumento de posición, debemos incluir el delimitador de coma correspondiente.
Ejemplo.
La siguiente orden genera un cuadro al cual le indicamos título, texto, le ponemos tres botones: Sí, No y Cancelar.
Además le incluimos el icono de pregunta:
InputBox: Muestra un mensaje en un cuadro de diálogo, espera que el usuario escriba un texto o haga clic en un botón
y devuelve un tipo String con el contenido del cuadro de texto.
Sintaxis
Parte Descripción
prompt Requerido. Cadena que se muestra como mensaje en el cuadro de diálogo. La longitud máxima de
prompt es de aproximadamente 1024 caracteres, según el ancho de los caracteres utilizados.
title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si omite
title, en la barra de título se coloca el nombre de la aplicación.
default Opcional. Expresión de cadena que se muestra en el cuadro de texto como respuesta
predeterminada cuando no se suministra una cadena. Si omite default, se muestra el cuadro de
texto vacío.
xpos Opcional. Expresión numérica que especifica, en twips, la distancia en sentido horizontal entre el
borde izquierdo del cuadro de diálogo y el borde izquierdo de la pantalla. Si se omite xpos, el
cuadro de diálogo se centra horizontalmente.
ypos Opcional. Expresión numérica que especifica, en twips, la distancia en sentido vertical entre el
borde superior del cuadro de diálogo y el borde superior de la pantalla. Si se omite ypos, el cuadro
de diálogo se coloca a aproximadamente un tercio de la altura de la pantalla, desde el borde
superior de la misma.
helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utilizará para proporcionar
ayuda interactiva para el cuadro de diálogo. Si se especifica helpfile, también deberá especificarse
context.
context Opcional. Expresión numérica que es el número de contexto de Ayuda asignado por el autor al tema
de Ayuda correspondiente. Si se especifica context, también deberá especificarse helpfile.
Comentarios
Cuando se especifica tanto helpfile como context, el usuario puede presionar F1 para ver el tema de Ayuda
correspondiente a context. Algunas aplicaciones como por ejemplo, Microsoft Excel, también agregan
automáticamente un botón Ayuda al cuadro de diálogo. Si el usuario hace clic en Aceptar o presiona Entrar , la
función InputBox devuelve lo que haya en el cuadro de texto. Si el usuario hace clic en Cancelar, la función devuelve
una cadena de caracteres de longitud cero ("").
Nota: Si deseamos especificar más que el primer argumento con nombre, debemos utilizar InputBox en una expresión.
Si deseamos omitir algunos argumentos de posición, debemos incluir el delimitador de coma correspondiente.
Ejemplo.
La siguiente orden genera un cuadro al cual le indicamos texto, título y asignamos el texto que escriba el usuario a la
variable cadena:
Observar que como asignamos el resultado de la función InputBox a una variable, debemos encerrar los argumentos
entre paréntesis.
Format: Visual Basic proporciona una gran flexibilidad a la hora de presentar formatos de números, así como de fechas
y horas. Puede presentar con facilidad formatos internacionales de números, fechas y horas.
La función Format convierte un valor numérico en una cadena de texto y le proporciona control sobre la apariencia de
la cadena. Por ejemplo, podemos especificar el número de decimales, los ceros a la izquierda o a la derecha y los
formatos de moneda. La sintaxis es:
Símbolo Descripción
0 Marcador de posición de dígito; imprime un cero a la izquierda o a la derecha en esa
posición, si corresponde.
# Marcador de posición de dígito; nunca imprime ceros a la izquierda ni a la derecha.
. Marcador de posición decimal.
, Separador de millares.
- + $ ( ) espacio Carácter literal; los caracteres se presentan exactamente como están escritos en la cadena
de formato.
Val: Devuelve el valor numérico de una cadena alfanumérica, solo convierte hasta que encuentra el primer carácter que
no es un número: Val(Cadena).
Aún hay muchas más funciones, cuando las necesitemos, ya las estudiaremos.
Propiedades comunes.
A continuación veremos algunas propiedades comunes a la mayoría de los controles, estas se podrán modificar desde
la vista formulario, con el control activado y en la ventana de propiedades:
Nombre: Nombre que deseemos asignar al objeto, es un identificador interno para el código.
Caption: Habitualmente igual que el nombre del objeto, pero es la forma de identificar el objeto de cara al usuario, por
ejemplo, si tenemos un botón en nuestro formulario que al pulsarlo nos acabe la ejecución, internamente le llamaremos
BotonSalir, pero basta con que le pongamos como Caption Salir, que es lo que verá el usuario.
Enabled: Sólo admite dos valores: True o False, e indica si el control está o no activado.
Visible: Sólo admite dos valores: True o False, e indica si el control está o no visible.
Ejemplo.
Crear un EXE estandar, llamar Ejemplo2 al formulario, al cual le insertaremos un botón en la parte inferior derecha,
ponerle como nombre BotonSalir y como Caption Salir ( si queremos que el usuario pueda activar el botón con la
combinación de teclas ALT + S, deberemos anteponer a la letra S del caption el símbolo &).
A este botón le insertaremos código de forma que cuando el usuario pulse, salga un cuadro por pantalla pidiendo
confirmación para salir del programa, si el usuario pulsa Sí, debe acabar la ejecución y si pulsa No, no debe hacer
nada.
Insertar otro botón en la parte inferior izquierda, ponerle como nombre BotonFecha y como Caption Fecha y hora del
sistema ( si queremos que el usuario pueda activar el botón con la combinación de teclas ALT + F, deberemos
anteponer a la letra F del caption el símbolo &)
A este botón le insertaremos código de forma que cuando el usuario pulse, imprima en el formulario la fecha en formato
largo, es decir, día de la semana, día, nombre del mes y año con 4 cifras. Debajo debe imprimir la hora del sistema. El
formulario en diseño quedará:
Y la ventana de código:
Observar que para continuar una línea de código en la siguiente, se utiliza después de un espacio el guión bajo.
Las macros no permiten la mayoría de estas cosas, y la mayoría de las acciones de macros se pueden ejecutar
desde código con el objeto (antes instrucción) DoCmd. Las macros son interesantes para crear prototipos de la
aplicación con rapidez o hacer acciones sencillas que no entrañen error; también hay algunas cosas que solo se
pueden hacer con macros (según versiones).
MODULOS
El código Visual se almacena en los módulos de una base de datos de Access, en un fichero.mdb (en Visual
Basic en algo más amplio que llamamos proyecto y que no tiene porque contener una base de datos).
Conviene no confundir la Base de datos con el código o aplicación que lo maneja aunque esté contenida en el
mismo fichero.
Cada modulo contiene una Sección de Declaraciones y a continuación una serie de procedimientos.
La Sección de declaraciones contiene la Instrucción Option Compare Database y puede contener otras como
Option Explicit, Option Base, declaraciones de variables, etc... que afectan al módulo donde se encuentren estas
declaraciones.
Cada instrucción ocupa solo una línea aunque una línea puede contener varias siempre que estén separadas
por dos puntos (: ).
Módulos de formulario o informe llamados LOCALES. Son privados de ese objeto y se crean y borran con
él ya que forman parte de su diseño; se les puede añadir procedimientos de evento o generales.
Módulos GLOBALES. Son objetos independientes y sus procedimientos pueden ser llamados desde
cualquier sitio (expresiones, procedimientos, macros, etc. estén en ese u otro módulo, sea local o global).
Para entrar en un modulo local basta seleccionar el objeto (formulario o informe) y pulsar la opción Código
del menú Ver (también con el botón código de la barra de herramientas o de iconos; otra de las formas es
Generar evento en el menú de método abreviado (el que se obtiene pulsando el botón derecho del ratón) para
ese objeto o para cualquiera de los controles contenidos en él.
PROCEDIMIENTOS
Hay dos tipos de procedimientos:
Si hay que modificar esa operación solo será necesario modificarla en un solo sitio.
Las operaciones pueden ser complejas (se podrán utilizar estructuras de control, variables, etc.
Se pueden controlar y recuperar los errores de ejecución (errores runtime)
Se pueden incluir comentarios en el código para documentarlo, aclararlo.
Los procedimientos de un módulo local son privados (por eso puede haberlos con el mismo nombre en otro
módulo local, nunca en el mismo) a no ser que se declaren públicos (PUBLIC) mientras que los procedimientos de un
módulo global son públicos (y no puede haber otro procedimiento que se llame igual), a no ser que se declaren en él como
privados (PRIVATE).
Los procedimientos privados solo pueden ser llamados desde el correspondiente módulo, mientras que los
públicos pueden ser llamados desde cualquier módulo.
Si hubiera dos procedimientos con el mismo nombre en dos módulos distintos, Access primero lo buscaría en
el modulo activo (local o global) y si no lo encontrara lo buscaría en los módulos globales (o en el resto de los
módulos globales).
VARIABLES
Almacena valores fuera de las tablas. Tiene nombre y tipo y en algún caso se les puede asignar longitud
predeterminada.
Declaración: Visual Access no obliga a declarar las variables sino que al usarlas simplemente Visual Access
las crearía (declaración implícita), pero con un tipo de datos (variant) que puede no ser conveniente.
CONVIENE DECLARAR las variables explícitamente para detectar errores de ejecución y para documentar
el código.
Las variables declaradas con DIM serán locales y dinámicas, es decir que son visibles en el procedimiento
donde se crearon y desaparecen al finalizar el procedimiento donde se crearon (distinto es que se puedan pasar
como parámetros a otros procedimientos).
STATIC nombre_variable [AS tipo] [, nombre_variable [AS tipo]...]
Las variables declaradas con STATIC serán locales y estáticas, es decir que son visibles en el procedimiento
donde se crearon pero NO desaparecen al finalizar el procedimiento donde se crearon, por lo que conservaran
el valor que tenían en la ocasión anterior.
Las variables declaradas como PUBLIC (antes GLOBAL) permitirá que una variable pueda ser visible desde
cualquier procedimiento y no desaparezca hasta que finalice el programa.
NOTA: Todas estas ordenes permiten también crear matrices, determinar el tamaño (según casos) y cláusulas
relacionadas con la programación con objetos).
Ejecuta uno de varios grupos de instrucciones, dependiendo del valor de una expresión.
Sintaxis
Select Case expresión_prueba
[Case lista_expresion−n
[instrucciones−n]] ...
[Case Else
[instrucciones_else]]
End Select
** Se puede poner: Case 2 To 5 (como rango)
** O incluso una lista: Case 5,6,8,12,−4
Estructuras de repetición o bucles.
Do...Loop
Repite un bloque de instrucciones cuando una condición es True o hasta que una condición se convierta en
True.
Sintaxis
Do [{While | Until} condición]
[instrucciones]
[Exit Do]
[instrucciones]
Loop
Las sentencias de control, denominadas también estructuras de control, permiten tomar decisiones y
realizar un proceso repetidas veces. Visual Basic dispone de las siguientes estructuras:
- If...Then
- If...Then...Else
- Select case
- For... Next
- While...Wend
- Do...loop
- Goto
Sentencia If
Permite tomar una decisión referente al camino a seguir o acción a ejecutar en un proceso basándose en el
resultado (verdadero o falso) de una condición. Su sintaxis es: If condición then acción1 [else acción2]
donde condición debe ser una expresión numérica, relacional o lógica. Si la condición es verdadera se
ejecuta la acción1 y si es falsa se ejecutará la acción2.
Sentencia SELECT
Esta expresión permite ejecutar una de varias acciones en función del valor de una expresión. Es una
alternativa a If... Then ... ElseIf cuando lo que se necesita es comprobar es la misma expresión con
diferentes valores. Su sintaxis es:
La sentencia for da lugar a un bucle que permite ejecutar un conjunto de sentencias cierto número de
veces. Su sintaxis es:
Un bucle While repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta. La
condición se verifica antes de ejecutarse el conjunto de sentencias.
While condicion
[sentencias]
Wend
Donde condición es cualquier expresión numérica, relacional o lógica. La ejecución de la sentencia
While sucede así:
Un Loop(bucle) repite la ejecución de un conjunto de sentencias mientras una condición dada sea cierta, o
basta que una condición dada sea cierta. La condición puede ser verificada antes o después de ejecutarse
el conjunto de sentencias:
Formato1 Formato2
Do
Do
[{While|Until}condición]
[sentencias]
[sentencias]
[Exit do]
[Exit do]
[sentencias]
[sentencias]
Loop[{While|Until}condición]
Loop
Sentencia Goto
Transmite el control a una línea específica del código, identificada por una etiqueta o por un número de
línea. Su sintaxis es:
Goto {etiqueta/nº de línea}
Si la línea a la que se transfiere el control es una sentencia ejecutable, se ejecuta esa sentencia y las que le
siguen. Si no es ejecutable, la ejecución se inicia en la primera sentencia ejecutable que se encuentra tras
dicha línea. Por ejemplo, el siguiente procedimeinto calcula e imprime el área de uno o más círculos.