Tutoriales y artículos sobre Excel y Access en el mundo de los Negocios.
viernes, 14 de noviembre de 2014
Complementos para formularios más eficientes en Access con Macros
jueves, 23 de enero de 2014
Complemento para generar formularios más funcionales en Access usando Macros
Introducción y definiciones previas
Estructuras Condicionales
Observaciones:
- Sub y End
Sub indican el inicio y el final de la Macro de nombre “estructuras_condicionales”.
- Or puede
ser reemplazado por And si se quiere imponer estrictamente el
cumplimiento de varias sentencias a la vez.
- Si va una sola condición, no se imponen los
operadores lógicos (And y Or).
- La Ilustración I muestra que si se cumple lo
que se impone después del If,
entonces (Then) se ejecutarán las
sentencias seguidas de esta. En otro caso, se ejecutarán las que se encuentren
luego de Else.
- Se sugiere al lector ampliar los contenidos y
buscar el segundo tipo de estructura condicional: Select Case, lo que es equivalente a tener un If… End if de forma anidada.
Macro para pregunta con check list de formulario en Access
“Paso a paso” para lograr la Macro
- Tener las etiquetas de los campos y las preguntas que deseas que posea el formulario en cuestión.
- Inhabilitar la(s) pregunta(s) que buscas
anidar a la(s) respuesta(s) de otro campo. En este caso se debe inhabilitar la
lista desplegable asociada a “Curso que
se ha repetido”.- Formulario en “modo diseño”.- Seleccionar (pinchar) lista desplegable asociada a “Curso que ha repetido”.- Ir a “hoja de propiedades” (ALT+ENTER) de la lista y seleccionar la pestaña “Datos”.- Modificar “Sí” por “No” en opción “habilitado” (ver Ilustración III adjunta).
- Programar Macro sobre check list
asociado a la pregunta “¿Ha repetido
algún curso?” y automatizar orden de habilitar lista desplegable de “Curso que ha repetido” en caso de que la
respuesta a la primera pregunta sea afirmativa.- Formulario en “modo “diseño”.- Seleccionar el check list en cuestión.- Ir a “hoja de propiedades” (ALT+ENTER) de la lista y seleccionar la pestaña “eventos”.- Hacer click sobre botón que contiene 3 puntos suspensivos en su interior (“…”) en la opción “Al hacer click” (primera fila de opciones de la pestaña “eventos” de la “hoja de propiedades”). Esto permite especificar la forma en que el evento dará inicio a la automatización buscada. Se abrirá el cuadro “elegir generador”, el que ofrece 3 alternativas para crear el evento. Debe pinchar la opción “generador de código” para esta Macro. Presione “aceptar” (ver Ilustración IV adjunta).- El paso anterior abrirá una ventana que permitirá programar la Macro en lenguaje VBA. Ahora es cuando le será útil haber aprendido la sintaxis y uso de las estructuras condicionales (primera parte de esta publicación).- Finalmente, la Macro se computa como muestra la Ilustración V adjunta. Luego, se cierra la ventana VBA y la automatización está terminada. Se cambia a “vista formulario” y se chequea que la Macro funcione.Observaciones a partir de la Ilustración V:
- En (1) se indica que si el chek list relacionado con “¿Ha repetido algún curso?” es “sí” (True), entonces se ejecutará la sentencia especificada en (2). Notar que para aludir al check list, se invoca a través de su nombre luego de “Me.”.
- La sentencia de (2) permite habilitar la lista desplegable asociada al “Curso que ha repetido” (recordar que previamente se había inhabilitado) agregando “.Enabled = True” luego de “Me.” y el nombre de la lista desplegable (en este caso “Cuadro_combinado163”).
- Las sentencias que se especifican después del Else, se ejecutarán en caso que no se active el check list (False de (1)). De esta forma, se ejecutarán las sentencias (3) y (4).
- Tener presente que se debe terminar con el comando End If para computar la Macro
lunes, 25 de junio de 2012
Cómo crear formularios y subformularios en Access
miércoles, 2 de mayo de 2012
Listas Desplegables Anidadas en Access
Listas Desplegables Anidadas en Access
Sin duda que Access es una herramienta muy util para el manejo de bases de datos, dentro del cual podemos realizar diferentes cosas que ayudan a que la base pueda ser más amigable con el usuario. Dentro de ellas encontramos los Formularios, que permiten mejorar el aspecto que presentan las tablas dentro de la base.Pero además de estas listas desplegables normales, se pueden crear listas desplegables anidadas o dependientes de otras listas. Un ejemplo de esto puede ser el caso de provincias, ya que podemos crear una lista desplegable en donde se muestren todas las provincias de una determinada región, y en otra lista me muestre las comunas pertenecientes a esas provincias. El punto es que yo quiero que me muestre sólo las comunas asociadas a la provincia que yo seleccioné y no todas las comunas de todas las provincias. Para poder hacer esto utilizamos consultas en access.
Continuando con el ejemplo anterior, tenemos dentro del formulario una lista desplegable con la Provincia y otra lista desplegable con la comuna, tal como se muestra en la siguiente imagen:
Al hacer estas listas uno tiene la opción de poder elegir la provincia que desea, pero el problema es que en la segunda lista se muestran todas las comunas correspondientes a todas las provincias, no se hace un filtro en donde sólo me muestre las comunas correspondientes a la provincia seleccionada. Para que esto suceda uno tiene que posarse sobre la lista que depende de la otra, que en este caso es la de comunas, se hace doble clic y aparece un cuadro de opciones como se muestra en el cuadro rojo de la siguiente imagen:
Después de eso, nos posicionamos sobre la celda que dice Origen de la fila y volvemos a hacer doble clic donde se despliega una nueva ventana que nos permite poder hacer la consulta.
Ya en esta etapa, comenzamos a hacer la consulta que permite que la lista de comunas dependa de la lista de provincias. Para poder hacer hacer esto, nos vamos a la barra de herramientas a una pestaña que dice Generador, después se selecciona la opción de Formularios y se ve la opción provincias, que permite poder crear esta relación, ya que se va a convertir en el criterio de la columna Provincias, dentro de la consulta. Esto se puede ver a continuación:
Pero esto no soluciona del todo el problema ya que además debemos hacer algunos cambios en la configuración de la lista de provincias, en donde tenemos que ir a ver el generador de código para poder actualizar la tabla de comunas, y para hacer esto se pone comuna.requering. Al hacer esto ya queda solucionado el problema. Todo este proceso se puede ver en el siguiente video:
Existe otra forma de poder hacer esto, por medio puramente de consultas en las tablas correspondientes utilizando diversas fórmulas dentro de las cuales encontramos:
SELECT * FROM: me permite seleccionar algo de una determinada tabla
SELECT: me permite escoger algo de la tabla en la que estoy trabajando.
ORDER BY: me permite ordenar de acuerdo a un criterio.
WHERE: me permite establecer criterios de comparación en donde puedo igualar cosas o ver las diferencias.
Utilizando estos criterio podemos crear fórmulas que permiten poder crear la dependencia entre las listas desplegables, bajo un proceso detallado en el cual se van llamando criterios, comparándolos, etc.
Sin duda esto facilita aún más el uso de la base de datos, específicamente de los formularios, ya que permite filtrar criterios de la segunda lista, al momento de hacer una selección en la primera lista.
Uso de función Unión e Intersección y sus Ventajas
|
|
INTERSECCION
Esta función, a diferencia de la anterior, funciona como un Y en lógica (la función UNION funciona como un O lógico). Para clarificar su uso veamos el siguiente ejemplo.
Supongamos que poseemos las siguientes tablas:
Tienda
|
Ventas
|
Fecha
|
Local 1
|
$15.000.000
|
21-04-2012
|
Local 2
|
$25.400.000
|
12-02-2012
|
Local 3
|
$30.000.000
|
15-03-2012
|
Local 4
|
$6.000.000
|
1-03-2012
|
Fecha
|
Ventas
|
17-03-2012
|
$5.350.000
|
15-03-2012
|
$2.340.000
|
27-04-2012
|
$12.750.000
|
Lo que haremos en este ejercicio será ver en que fecha se realizaron ventas tanto en el local físico como en internet, para lo cual debemos intersectar ambas tablas. Como aprendimos en conjuntos, al realizar una intersección, lo que rescatamos son los elementos en común en ambos conjuntos, lo que en este caso sería la fecha que se encuentre en ambas tablas. El resultado de dicha intersección es el siguiente:
Fecha
|
15-03-2012
|
|
lunes, 19 de diciembre de 2011
Control de datos con Máscara de Entrada en Access
Las bases de datos cuando son manipuladas por un gran número de personas están expuestas a que los datos ingresados no sean coherentes con lo que previamente se definió. Por ejemplo cuando se debe ingresar el RUT, siempre existe la duda si poner puntos y guión o simplemente los números. Para este problema existen las máscaras de entrada, utilizadas en Access.
¿Para qué se utilizan las máscaras de entrada?
Permiten controlar el ingreso de datos en los campos de las tablas que conforman la base de datos. Su función específica es entregar un formato a los datos, para así, otorgar control sobre que valores se pueden introducir. Así, proporcionan una validación de datos e impide que los usuarios ingresen datos no válidos y finalmente, entrega a la base de datos facilidad de búsqueda de datos.
¿Cómo funcionan?
La máscara de entrada comprende tres secciones, las cuales son separadas por un punto y coma. Posee caracteres que indican como se debe rellenar el campo de la tabla.
Para explicarlo de mejor forma, se puede utilizar la máscara de entrada de un número telefónico para Chile, el que corresponde a (00)-(0)-(0000000);1;-.
Lo que se encuentra antes del primer ; corresponde a la primera sección, la cual es obligatoria. Esta contiene los caracteres que deberán ser introducidos en el campo de la tabla, además de marcadores de posición y datos literales. En el ejemplo se identifica que se debe introducir el código del país y de la ciudad, y a continuación ingresar el número de teléfono particular.
La segunda sección (entre ambos ; ) es opcional e indica el modo de almacenamiento dentro del campo. Si es 0, los caracteres de la máscara (en el ejemplo los paréntesis y guiones ubicados en la primera sección) se almacenan con los datos. Si es 1, los caracteres no serán almacenados con los datos, sólo se mostrarán. De esta forma, se ahorra espacio de almacenamiento en la base de datos. En el ejemplo, la sección dos tiene 1, por lo tanto los paréntesis y guiones sólo se mostrarán.
Finalmente, la última sección también es opcional. Esta indica el marcador de posición que se utilizará. En el ejemplo se utiliza guión en el medio para separar los códigos de país y región. Si no se escribe un carácter, de forma predeterminada se usará el guión bajo.
En la siguiente tabla, se muestran algunos significados de caracteres para la creación de la máscara.
¿Cómo crear una máscara de entrada?
Para crear una máscara de entrada es necesario contar con las tablas de las bases de datos. A continuación se presenta paso a paso lo que se debe ejecutar para la creación.
- Click con botón izquierdo en la tabla y seleccionar VISTA DISEÑO.
- Elegir el campo que requiere máscara de entrada, clic en TIPO DE DATOS, al lado del campo seleccionado.
- En la parte baja de la pantalla PROPIEDAD DE CAMPO, luego GENERAL, luego MASCARA DE ENTRADA
- Click en el boton que se encuentra al lado derecho del campo, como muestra la imagen.
- Seleccionar que tipo de máscara se utilizará y los marcadores de posición. (Se puede utiliz ar la opción de PROBAR, donde se muestra como se ve la máscara.)
- Si no se requiere hacer cambios, click en SIGUIENTE
- Seleccionar como se desean guardar los datos en la base (con los marcadores de posición o sin ellos) y click en SIGUIENTE
- Click en FINALIZAR
Video: ¿Cómo funciona una máscara de entrada?
Ejemplo Práctico
Para las empresas y algunos comerciantes pequeños, es de suma utilidad contar con esta clase de mecánismo para almacenar los datos de los clientes, proveedores y otros. Como se sabe, la particularidad de cada sujeto es su RUT o RUN es necesario ingresarlo a la base de datos de tal forma que se almacenen y muestren de una misma forma. Por lo tanto las máscaras de entrada son una herramienta muy útil para mantener el orden de estas, sin correr el riesgo de que sean ingresadas bajo otros criterios.
Como se señaló anteriormente en la creación de una máscara de entrada los primeros cuatro pasos se mantienen igual, lo que varía son los caracteres que se deben ingresar para crear la herramienta para el RUT o RUN. La cual corresponde a: 99.000.000-0, aquí se indica que los dos primeros dígitos no son obligatorios de ingresar, debido a que existen Rut inferiores al millón. Por otra parte el número verificador se define como un número por lo que si corresponde a "k", se transforma a "0".
Como se pudo apreciar en el artículo, para una base de datos en Access manipulada por un gran número de personas que ingresan datos, es de gran utilidad las máscaras de entrada, ya que mantienen la coherencia de los datos y les permite buscarlos de manera ágil y certera.
LINKS

















