Informacion

Ya que tenemos lo esencial empezaremos a trabajar con ejemplos. y de ahí les pediré que me elaboren preguntas si tienen dudas.

dejen su comentario o manden sus aclaraciones a mi correo:

 

rigo_rdz_92@hotmail.com

 

Saludos

Tipos de datos

Además de las variables hay otra serie de elementos que manejan datos, como son las Constantes, procedimientos Sub, y Function, que son capaces de manejar datos de distintos tipos incluso, las funciones que devuelven datos.

 

Que tipos de datos podemos manejar:

 

  • Numéricos
  • Booleanos
  • Fecha / Hora
  • De texto(cadena)
  • Variant
  • De objeto

 

 

Datos Numéricos

 

Existen 2 familias de datos numéricos, números enteros, y de coma flotante.

Como datos Enteres tenemos lo siguientes tipos:

  • Byte

Valor Inferior = 0

Valor superior = 255

  • Integer

Valor Inferior  =  -32.768

Valor superior = 32.767

  • Long

Valor Inferior = -2.147.483.648

Valor Superior = 2.147.483.647

 

Números como Flotante(Números con Decimal)

 

Los números de cómo flotante son números que admiten valores no enteros.

 

Como datos de cómo flotante tenemos lo siguiente

 

Nombre          Tamaño

  • Single              4bytes
  • Double             8bytes
  • Currency          8bytes
  • Decimal           12bytes

 

En general estos son los tipos de datos de tipo decimal según su tamaño aumenta el numero en el que puede contener sus decimales. Al usar algún tipo de dato explicare en que consiste.

Declaración de Variables

Una variable es un elemento del código que apunta a una dirección de memoria en donde se almacena un dato. Haciendo referencia ala variable se puede devolver el dato al que apunta e incluso modificarlo.

Las constantes son similares a las variables, solo que su contenido se le asigna en el momento en el que se declaran, y después no es posible cambiarlo.

 

Hay 3 cosas que debemos considerar en una variable:

 

  • El nombre de la variable
  • El tipo de dato al que apunta
  • El alcance en el que es visible

 

Construcción del nombre de una variable o constante.

 

Nombre:

 

El nombre de una variable esta compuesto por caracteres ASCII.

 

Para su construcción hay indicar las siguientes reglas:

 

  • No se pueden usar caracteres que tienen un uso especial en Access, como son los el punto » . «, los paréntesis «( )», la barra vertical «|», o los caracteres que se pueden utilizar como operadores; entre ellos: <,>,=,+,-,*,/.
  • Una variable debe empezar por una letra o por el signo de subrayado, estos nombres serian correctos, pero lo mejor es solo usar caracteres alfabeticos: «A123456», «_PEPE», «R2P2», «Nombre».
  • El nombre de una variable no puede tener espacios en Blanco.

Funciones

En el capitulo anterior vimos lo procedimientos sub, otro de los tipos de procedimientos son las Funciones, que al igual que los procedimientos sub están delimitados por Function y End Function.

La principal diferencia entre un procedimiento sub y un procedimiento Function es que este ultimo devuelve un valor. Entre los delimitadores se escribe el código que va a realizar las tareas que deseemos y al final devolverá un valor, son las llamadas funciones.

Para declarar una Función empezaríamos, por ejemplo poniendo la palabra Public si quisiéramos que esta función sea accesible desde cualquier parte de Access, después la palabra Function, después el nombre de la Función, después del nombre abriríamos los paréntesis y pondríamos los parámetros que necesitáramos cerraríamos el paréntesis y finalmente pondríamos el tipo de datos que devolvería la función.

Supongamos que quisiéramos realizar una operación y que nos devolviera el resultado.

Esta seria la función:

Public Function Operacion(Valor1 As Double, Valor2 As Double) As Double

Operación = Valor1 * Valor2

End Function

Vamos aprobar esta Función en el formulario que hicimos anteriormente quitando el codigo que pusimos en el botón de comando cmdEjecutarProcedimiento, y colocando el siguiente.

Me.lblResultado.Caption = Operacion(Me.txtNumero1.value, Me.txtNumero2.value)

Quedando de esta manera

Private Sub cmdProcedimiento_Click()

Me.lblResultado.Caption = Operacion(Me.txtNumero1.value, Me.txtNumero2.value)

End Sub

Como podrán observar el código anterior ocupaba mas líneas de código para esta función solo ocupamos una. Tambien les comento este pequeño fragmento de código.

Me.txtNumero1.Value

En la parte Me., del código representa el formulario hace la referencia.

En la parte txtNumero1, representa el cuadro de texto que se encuentra en el formulario.

En la parte Value, representa el valor que contiene el cuadro de texto que se encuentra en el formulario.

Me.txtNumero1.Value, Entonces con el fragmento de código este, decimos que tomamos el valor del cuadro de texto que se encuentra en ele formulario actual.

Notaran que si ejecutan la función sin valores en los cuadro de texto aparecerá el siguiente mensaje de error.

Para esto existen dos funciones que podemos unir y evitar este error de valores nulos(campo vacío).

Para evitar este error que podemos hacer bueno, primero tenemos que convertir el valor del cuadro de texto a numérico, con la función Val(cadena), como se muestra en el ejemplo:

La funcion Val() permite convertir cualquier cadena a Numero.

Val(«23″) = lo convertiría a 23

Las comillas representan un valor cadena(String)

Pero que pasa si el al ejecutar la función Val() no tenemos nada generaría otro error de que no se tiene un valor numérico, entonces para eso existe la función Nz(Valor), esta función, opera así:

Nz(txtNumero1.value,»0»)

Aquí decimos que si el valor del cuadro de texto txtNumero1.Value es nulo(esta vacío), que le asigne el valor «0» de tipo cadena(String).

Entonces ya sabemos convertir un valor nulo a un tipo cadena, y una cadena que es numero, lo sabemos convertir a un valor numérico, como podríamos unir las dos funciones, ejemplo:

Val(Nz(txtNumero1.Value),»0″)

Aquí esta el ejemplo, el cual tiene el siguiente orden, es como las matemáticas primero se ejecutan el paréntesis que se encuentra adentro y después el de afuera.

Aquí primero se ejecuta la función Nz(txtNumero1.Value,»0″), porque?, porque primero tenemos que evaluar el valor del cuadro de texto txtNumero1, lo evaluamos y si es nulo(si esta vacío) entonces le ponemos la cadena numérica «0», porque cadena numérica?, porque una palabra no se puede convertir en un numero, pero un numero que esta como cadena si se puede convertir en numero, entonces decimos que si es nulo le aplicamos la cadena «0», al evaluar la función Nz(), entonces que nos queda no podemos multiplicar valores de cadena, lo que hacemos es convertirla a un valor numérico, ejemplo:

Val(Nz(txtNumero1.Value),»0″)

Aquí es cuando la convertimos, la conclusión es, la siguiente,

Si el valor del cuadro de texto txtNumero es nulo entonces ponle la cadena «0», pero no se puede multiplicar un valor cadena, entonces la convertimos a numero.

Procedimientos Sub

Un procedimiento Sub llamado también Procedimiento es un conjunto de código que realiza determinadas tareas, suele estar contenido entre las expresiones Sub y End Sub.

 

Como vimos en el ejemplo de Introducción:

 

Sub intro()

‘Declaramos una variable tipo cadena

Dim cadena As String

cadena = «Hola, el curso se llama CursoVBA»

‘Utilizamos la función Debug.Print para imprimir el contenido de cadena en la ventana inmediato

Debug.Print cadena

End Sub

 

Aquí vemos que el nombre del Procedimiento se llama intro dentro del procedimiento intro tenemos un pequeño codigo el cual le indicamos que declare una variable llamada cadena de tipo String y le asignamos un valor(«Hola, el curso se llama CursoVBA») el cual le pedimos que lo imprima en la ventana inmediato con la función Debug.Print cadena.

 

El termino de Sub puede ir precediendo de otras expresiones , por ejemplo para determinar el alcance en el que puede ser llamado el procedimiento.

 

Al procedimiento se le puede pasar una serie de datos para que lo use internamente, a esos datos se les llama Parámetros. Ejemplo

 

Sub Operación(Valor1 as Integer)

Dim Valor2 as Integer

Dim Resultado as Double

 

Resultado = Valor1 * Valor2

Debug.Print Resultado

 

End Sub

 

En el modulo conceptos escribimos el siguiente código:

 

Public Sub Multiplicación()

‘declaramos 2 variables de tipo entero, las variables enteras se declaran con Integer

‘declaramos 1 variable de tipo Double, para ver el resultado con decimales

Dim Valor1 As Integer

Dim Valor2 As Integer

Dim Resultado As Double

 

‘le asignamos valores a las variables enteras

Valor1 = 10

Valor2 = 15

 

‘hacemos la operación

‘aquí le decimos a la variable resultado que es igual ala multiplicación de las variables

‘valor1 y valor2

Resultado = Valor1 * Valor2

 

‘imprimimos el resultado

Debug.Print Resultado

 

End Sub

 

Si ejecutamos este código nos mostrara el resultado en la ventana inmediato.

 

Realizaremos el siguiente ejercicio de lo que hemos visto hasta ahora.

 

Pasos:

  • Primero vamos a crear un formulario con el nombre alcance y le vamos añadir 4 objetos 1 etiqueta llamada lblMostrarResultado, en la etiqueta le ponen como titulo valor de la multiplicación y un botón de comando con el nombre de cmdEjecutarProcedimiento, cuadros de texto con el nombre de txtNumero1 y txtNumero2 y sus etiquetas que muestren Numero1 y Numero2, no le asignamos nombre a las etiquetas.
  • Creamos un procedimiento sub con el nombre Operacion2 y le ponemos como parámetros Numero1 y Numero2 de tipo Double.
  • Declaramos la variable como publica llamada Resultado de tipo Double
  • Al tener todo lo anterior les mostrare como acceder al objeto lblResultado desde el modulo, muestro las imágenes.

 

El código debe quedar de esta manera:

 

Option Compare Database ‘Aparecen por default

Option Explicit ‘Aparecen por default

 

Public Resultado As Double

 

Sub Operacion2(Numero1 As Double, Numero2 As Double)

 

Resultado = Numero1 * Numero2

 

Forms![Alcance]![lblResultado].Caption = Resultado

 

End Sub

 

El capitón cambia el texto que muestra la etiqueta, el Titulo

 

El código del botón de comando debe quedar de la siguiente manera:

 

Private Sub cmdProcedimiento_Click()

Call Operacion2(Me.txtNumero1, Me.txtNumero2)

 

End Sub

Imagen del Formulario:

 

Espero sus comentarios para resolver las dudas que tengan por si no me supe explicar o no me entendieron. Para poder seguir con el curso

 

Saludos

Alcance de las constantes y Variables

Al declarar en la cabecera de un modulo una variable con Dim, o una constante con Const hacemos que esa variable y esa constante solo sean visibles desde dentro del código del modulo.

Para que puedan verse desde fuera es necesario ponerles la palabra Public , esto se hace de forma diferente para las variables y constantes como se muestra en el siguiente ejemplo.

 

Option Compare Database ‘Aparecen por default

Option Explicit ‘Aparecen por default

 

Public Const Pi As Double = 3.1416

Public Precio As Currency

Public Nombre As String

 

En el caso de la constante solo se le agrego la palabra Public al principio, porque?, porque tenemos que decirle que es constante la declaración de Pi, si no fuera constante solo se sustituye Dim por Public.

 

En el ejemplo con Currency hacemos que la variable Precio sea de tipo Moneda, un tipo de datos creado para manejar datos monetarios, con String hacemos que la variable Nombre sea tratada como una variable de tipo cadena, que permite manejar cadenas de caracteres.

Conceptos

En este capitulo creamos un modulo y lo guardamos con el nombre de conceptos, después escribimos el siguiente código.

Option Compare Database ‘Aparecen por default

 

Option Explicit ‘Aparecen por default

Const Pi As Double = 3.1416

En esta ultima línea declaramos una constante llamada Pi del tipo Double(un valor numérico de cómo flotante de 8 bits) y le asignamos un valor a Pi que es 3.1416.

Al declarar una constante nos impide que en otro punto del modulo le reasignemos una valor, porque, porque pi actualmente lo declaramos con el valor de 3.1416 y como constante(Const), entonces esto quiere decir que no podemos hacer lo siguiente.

Pi = 30.25

Una constante es simplemente algo que no se puede cambiar.

Para declarar algo que si se pueda cambiar entonces recurrimos alas Variables.

Dim Precio As Currency

Dim Nombre As String

 

Mas adelante explicaremos String y Currency.

Los módulos

Los módulos son los objetos en los que se guarda el código que va utilizar VBA.

Existen tres tipos de módulos:

  • Módulos generales
  • Módulos asociados a formularios e informes
  • Módulos clase

Vamos a crear una base de datos con el nombre de CursoVBA.

Al crear el modulo vacío le deben aparecer las siguientes líneas de código:

Option Compare Database

Option Explicit

Si no aparece Option Explicit, vamos hacer lo siguiente:

Desde la ventana editor que se ha abierto presionamos la opción del menú:

Herramientas > opciones

Activamos la siguiente casilla:

Al terminar de hacer esto cerramos el modulo guardando los cambios y después eliminamos el modulo creado y creamos otro y veremos que ya aparecerá el Option Explicit.

Para nuestro primer ejemplo creamos un modulo y lo guardamos con el nombre Introducción, una vez echo esto colocamos el siguiente código:

Sub intro()

‘Declaramos una variable tipo cadena

Dim cadena As String

cadena = «Hola, el curso se llama CursoVBA»

‘Utilizamos la función Debug.Print para imprimir el contenido de cadena en la ventana inmediato

Debug.Print cadena

End Sub

Ejecutamos el código presionando F5 o al dar clic en el botón de play.

Este es un ejemplo sencillo mas adelante explicaremos como utilizar estos módulos en botones de comando, cuadros combinados, etc.

¿Que es VBA?

VBA quiere decir Visual Basic para Aplicaciones.

 

Es un conjunto de librerías desarrollado por Microsoft que incluye entre otras cosas un entorno de desarrollo y un lenguaje de programación.

 

VBA no es exclusivo de Access lo podemos encontrar también en todas las aplicaciones de Office como Word, Excel .