sábado, 15 de septiembre de 2012

Como utilizar Macros en MS Access con ejemplo

Como crear una macro en Access 2007 con ejemplo

Primero debemos preguntarnos:

¿ Para qué crear una macro?

¿Para qué sirve una macro?

Una macro es una especie de rutina que puede ser ejecutada en respuesta a algún evento que ocurre en el sistema. Por ejemplo, podemos accionar una rutina cuando una exclusión de registro estuviera para ser efectiva y esta rutina puede exigir confirmación por el usuario.

Por lo tanto una macro es una herramienta para automatizar diferentes tareas y mejorar la funcionalidad de los formularios que ya hemos utilizado anteriormente en la cátedra.

Esta herramienta es un lenguaje de programación simplificado que se escribe generando una lista de acciones a realizar.

También sirven para crear métodos abreviados de teclado y para que se ejecuten tareas automáticamente cada vez que se inicie la base de datos.

La mayor utilidad de las macros es que estas permiten mejorar la funcionalidad de formularios, informes y controles sin escribir código en un módulo de Visual Basic para Aplicaciones (VBA)

El generador de macro se muestra en la siguiente captura de pantalla:

Esta ventana es muy parecida a la vista Diseño de tabla que ya conocemos y tiene la misma dinámica pero ahora en vez de campos lo que definimos son las acciones que queremos que se ejecuten.

Como podemos observar, al principio consta de dos columnas: Acción y Comentario, aunque puede que aparezca también la columna Argumentos, que se puede mostrar y ocultar, y que explicaremos más adelante.

En la imagen puedes ver cómo en la columna Acción deberemos seleccionar una acción de entre las existentes en el cuadro desplegable.

En la columna Comentario podremos escribir una pequeña descripción opcional sobre el por qué de la acción o un comentario sobre su efecto.

Cuando selecciones una Acción en la lista desplegable, en la parte inferior izquierda aparecerán sus opciones y a la derecha una descripción breve de lo que hace la acción.

 

 Partes de una macro:

Argumentos:

Un argumento es un valor que proporciona información para la acción, como la cadena que se debe mostrar en un cuadro de mensaje, el control que se debe operar, etc. Algunos argumentos son necesarios y otros son opcionales. Los argumentos se pueden ver en el panel Argumentos de acción, en la parte inferior del Generador de macros

Condiciones

Una condición especifica ciertos criterios que se deben cumplir para que se pueda realizar una acción. Se puede utilizar cualquier expresión que pueda dar como resultado True/False o Sí/No. La acción no se ejecutará si la expresión devuelve como resultado False, No o 0 (cero). Si la expresión devuelve cualquier otro valor, la acción se ejecutará.

Para que una condición pueda controlar más de una acción, escriba unos puntos suspensivos (...) en la columnaCondición para cada acción subsiguiente que desee que se aplique a la condición. Si la expresión devuelve False, No o 0 (cero), no se ejecutará ninguna de las acciones. Si la condición devuelve cualquier otro valor, todas las acciones se ejecutarán.

Para mostrar la columna Condiciones en el Generador de macros, en la ficha Diseño, en el grupo Mostrar u ocultar, haga clic en Condiciones .

Es importante recordar que debemos tener cuidado con el orden en el que establecemos las acciones, pues es muy importante. Por ejemplo si tenemos dos acciones (entre varias) que abren y cierran un formulario. El formulario deberá estar abierto antes de ejecutar la orden de cerrar el formulario, por lo que la acción de apertura debería ir antes de la de cierre.

En todo momento podemos utilizar los botones de Insertar o Eliminar filas   para insertar nuevas acciones entre dos existentes o eliminar una acción.

Para cambiar el orden en el que se encuentren las acciones podemos seleccionar algunas de ellas y arrastrarlas con el ratón para colocarlas en otra posición.

 

Cuando la Macro está terminada, puede guardarse , ejecutarse   y cerrarse. Más tarde podremos llamarla desde un control Botón de comando, o ejecutarla directamente desde la ventana de la base de datos haciendo clic en Ejecutar o bien haciendo doble clic directamente sobre ella.

 Ejemplo de macros en Excel:

“creación de un  formulario de ingreso de alumnos de la universidad a una base de datos”
Primero debemos crear la tabla con los campos que queremos obtener:
El que tendrá la siguiente vista de hoja de datos:
Después creamos un formulario el cual queda de la siguiente manera:

Aquí es donde crearemos las macros.
La primera macros será la que agregue un nuevo registro a la base de datos, los pasos son los siguientes:
1)      Vamos a crear pinchamos  macros


2)      Nos aparecerá la siguiente pantalla:

Donde se ingresan las acciones a seguir por la macros en orden , en primer lugar se coloca la acción AIOcurrirError lo le dira que hacer a la macro en caso de un error de esta, lo importante viene ahora con la acción IrARegistro relaciona automáticamente los campos del formulario con la base de datos y ingresara como señala en argumentos de esa acción un nuevo registro, una muestra del argumento se ve en la siguiente imagen:



En registro se coloca nuevo con lo cual se ingresaran los nuevos datos.

Se asocia la macros a un botón creado y la macro se ejecutara en ese momento.

Por otro lado al momento de ingresar un rut en el formulario aparecerá un cuadro de mensaje que mostrara el formato que debe de tener el rut, de la siguiente forma:

Esto también es una macro, la cual tiene las siguientes acciones:

Y se ejecutara al hacer click en el cuadro de ingreso, lo cual se configura de la siguiente forma:
En el campo donde se coloca el rut se tiene que configurar en propiedades al hacer click.

grupo 11

Leer más...

Semejanzas y diferencias entre MS Access y MS SQL Server


Introducción

Antes de explicar semejanzas y diferencias entre MS Access y MS SQL Server, debemos entender que es lo que son. Ambos software se conocen con el nombre de sistema de gestión de bases de datos (SGBD), estos son programas que permiten administrar datos, ya sea mediante el uso, la actualización y/o la creación de estos. Los datos pueden estar presentes en una, o muchas bases de datos, y ser utilizados por uno o varios usuarios. El objetivo fundamental de un SGBD es suministrar a los usuarios herramientas que le permitan manejar los datos para entregar valor y/o utilidad a estos.

Descripción MS Access:

Sistema de gestión de bases de datos creado por Microsoft, desarrollado principalmente para uso personal o de pequeñas organizaciones. MS Access es una potente base de datos, capaz de trabajar sobre sí misma o bien con otros lenguajes de programación, como Visual Basic. El software permite realizar consultas directas a las tablas contenidas mediante instrucciones SQL.  Dentro de las principales funciones presentes en MS Access podemos mencionar que los usuarios pueden crear tablas, consultas, formularios e informes, y conectarlos entre sí con macros. Los usuarios más avanzados pueden usar VBA para escribir soluciones para una manipulación más compleja de datos y control de usuarios.
 

Descripción MS sql Server:

Sistema de gestión de bases de datos relacionales, también creado por Microsoft, que ha sido desarrollado en base a SQL, una de sus principales características radica en las cantidades de datos y consultas que puede procesar de manera simultánea. Además MS SQL Server permite: soporte de transacciones, soporte procedimientos almacenados, inclusión de un entorno gráfico de administración, permite trabajar en modo cliente-servidor y por último permite administrar información de otros servidores de datos. Está diseñado para grandes compañías, y administrar un gran número de transacciones simultáneas. 
 

Semejanzas y diferencias:

A pesar de ser dos SGBB, Access y SQL server son muy distintos. Entre sus principales similitudes podemos encontrar:

  1-. Ambos son sistemas de almacenamiento de datos en forma de tablas relacionales. 

  2-. Ambos admiten comandos en lenguaje SQL, aunque el de SQL Server está mucho más desarrollado, ya que realmente es la interfaz del servidor con el cliente. 

  3-. Ambos son sistemas creados por Microsoft.

Las diferencias entre estos Sistemas de almacenamiento son más profundas y la primera a mencionar es el enfoque de cada uno de éstos. Access está más enfocado en “uso de escritorio” o personal, pensado para manejarse desde un solo equipo (o máximo una pequeña red local). Cabe mencionar que no esta pensado para que muchos clientes accedan al mismo tiempo a las bases de datos. Por otro lado, SQL Server permite el acceso a las bases de datos a miles de usuarios simultáneamente, y no sólo eso, sino que también permite almacenar grandes volúmenes de datos (TeraBytes) que incluyen elementos como fotografías, videos, textos, números, etc, con millones de registros.

Otra diferencia entre estos Sistemas de almacenamiento se aprecia a la hora de publicar bases de datos en Internet; SQL Server es autónomo, mientras que Access no lo es. Al utilizar Access en el manejo de bases de datos en Internet, se genera una sobrecarga de consumo de memoria que recaerá sobre el servidor web, generándole problemas por ejemplo en todas las páginas web del dominio. Esto nunca ocurrirá con SQL Server, pues es él quién realiza toda la gestión relacionada con los datos.

Otra diferencia es que SQL Server permite que los clientes puedan manipular los datos desde cualquier computador conectado a Internet, mientras que Access sólo permite crear aplicaciones que trabajan en red con los archivos, sin embargo todo el procesamiento se efectúa en un solo equipo.
SQL Server ofrecer ventajas a la hora de publicar datos en Internet, como por ejemplo la estabilidad para el servidor web, ya que se libera al servidor web de las actividades referentes a los datos, es decir no lo sobrecarga, y en conclusión podrá mejorar su rendimiento y estabilidad. Access, hace todo lo contrario, es decir sobrecarga al servidor web, aumentando el riesgo de inestabilidad para el servidor web.

Sin embargo, Access también ofrece ventajas, como por ejemplo la compatibilidad a la hora de compartir archivos, ya que es más probable que las personas tengan Access en sus computadores, y que por lo tanto este intercambio se efectúe sin problemas. 

Otra ventaja que tiene Microsoft Access es la capacidad de construir sistemas de software para gestionar una gama de servicios muy rápidamente. Además, Access, permite crear una interfaz usuaria totalmente interactiva, que permite a los usuarios introducir datos e informar sobre éstos, mientras que SQL Server sólo almacena los datos en tablas, no tiene la capacidad de realizar un front-end, como Access. 

SQL Server usa Address Windowing Extension (AWE) para hacer el direccionamiento de 64-bit. Esto le impide usar la administración dinámica de memoria, y sólo le permite alojar un máximo de 64 GB de memoria compartida. Además SQL Server no maneja compresión de datos (excepto la versión 2008 Enterprise Edition), por lo que las bases de datos pueden llegar a ocupar mucho espacio en disco y requiere de un sistema operativo Microsoft Windows, por lo que no puede instalarse, por ejemplo, en servidores Linux.

La siguiente tabla evidencia  diferencias entre MS Access y MS SQL Server

Característica
MS Access
MS SQL Server
Nº de Procesadores en Paralelo
1
16
Instancias de servidores sobre un ordenador
Ninguna
Ilimitado
Procesamiento de consultas más rápido
bajo
Muy Alto
Arquitectura cliente-servidor
No
Consola o interfaz para administrar la base de datos
Si
Si
Escalabilidad
Ninguna
Si, Procesadores Multisimétricos
Nº de Usuarios conectados
255
Ilimitados
Limite de usuarios concurrentes
255
Ilimitados
Seguridad integrada
Si
Si, A nivel de SQL y de sistema operativo
Admite triggers
No
Si
Admite procedimientos almacenados
No
Si
Relaciones de tablas e integridad de referencia
Si
Si
Funciones Meta datos
No
Si



Funciones Básicas de SQL

Funciones Integradas

Estas funciones no pueden ser modificadas, y ayudan a realizar diversas operaciones. Devuelven tipos de datos escalares o tablas. Generalmente las funciones integradas son utilizadas para:

- Tener acceso a información del sistema SQL Server sin acceder a las tablas directamente.

- Permite realizar tareas como SUM, GETDATE o IDENTITY.




Funciones Escalares
 
Las más parecidas a las funciones del lenguaje de la programación, normalmente son  usadas para cálculos matemáticos básicos, ya que devuelven un valor único (escalar). En su formato simple no cuentan con un cuerpo de función, a diferencia de las funciones escalares de varias instrucciones, las que sí cuentan con uno, definido en un bloque BEGIN-END, además de una serie de instrucciones de Transact-SQL que devuelven un valor único. Mientras que en el formato simple, el resultado es un valor escalar proviniendo de una instrucción única, generalmente la instrucción SELECT.

Tipo de Funciones Escalares:
 
 
 
Funciones con Valores de Tabla
 
Como su nombre lo dice las funciones con valores de tabla definidas por el usuario devuelven un tipo de datos table. Al igual que las escalares simple no tienen cuerpo, por lo que la tabla es el resultado de una instrucción SELECT.
 
Las funciones con valores de tabla de varias instrucciones, sí poseen un cuerpo de la función y contienen una serie de instrucciones de Transact-SQL, las que crean e insertan filas en los resultados de la tabla. El cuerpo de la función está definido por un bloque BEGIN-END.
 
Estas funciones son un híbrido entre vista y procedimiento almacenado, ya que son consultas con una instrucción SELECT, pero a diferencia de los procedimientos anteriores, las funciones con valores de tabla permiten el uso de parámetros. Esta función resulta ser más eficiente al realizar consultas con parámetros, a diferencia de las otras 2.

Conclusión:

Ambos productos creados por Microsoft están enfocados a públicos completamente distintos. En primer lugar, Access está enfocado al usuario promedio de computadores, aquel que desea aprender a usar SQL, y tiene algún tipo de base de datos personal que desea manejar. Por lo mismo en nivel empresarial, es utilizado solo en pequeñas Pymes, que generalmente lo obtienen de forma ilegal,  o aprovechando que viene integrado en el paquete empresarial de Office. Es muy extraño ver Access en empresas más grandes, principalmente por su valor comercial, ya que la licencia permite ser instalada solo en un equipo, y se debe comprar una licencia por cada equipo que la empresa posee, y la integración entre estos no es automática. En cambio, la licencia de SQL Server se adquiere para un conjunto de equipos, y en caso de ser necesario extender la cantidad de equipos integrados, solo se cancela un diferencial a al costo total del producto. Además de que la integración de nuevos equipos al sistema de base de datos se realiza de forma automática, como se detalló con anterioridad.
Además, como se dijo anteriormente, SQL Server posee capacidad para integrar varios equipos, con un servidor central, lo cual aumenta la cantidad de consultas y/o transacciones simultaneas que se pueden realizar, por lo que lo más probable es que al salir al mundo laboral, nos encontremos con este tipo de aplicaciones, o alguna similar de otro proveedor (Oracle, IBM, etc.). Sin embargo, el sistema relacional, y el lenguaje base (SQL) sigue siendo el mismo de Access, y es por esto que se justifica su aprendizaje durante este curso, ya que posee una interfaz más amigable para nosotros que no tenemos mayores conocimientos de bases de datos, por lo que resulta como un “salto intermedio” al uso de SGBD mayores, con los cuales nos encontraremos en el futuro.





 Grupo 5
Leer más...

Formularios a través de validaciones de datos y controles. Lista limitada por otra lista, Controles de Formulario y Controles Activex.



Actualmente los formularios se han vuelto una herramienta útil para el ingreso de datos, logrando ser muy importante para el registro de clientes, captura de su información y posterior almacenamiento de esta. Por dicha razón se  hace necesario explicar qué son, cómo utilizarlos y en qué contexto hacerlo, para esto se responderán algunas preguntas y se expondrá un tutorial de lista sobre lista.

¿Qué es un Formulario?
Es un documento diseñado con formato y estructura estándar para capturar, organizar, y editar de manera eficiente la información. Un formulario puede ser impreso o en línea, y ambos pueden ser creados con Excel.
  • Los formularios impresos contienen instrucciones, formato, etiquetas y espacios en blanco para escribir datos.
  • Los formularios en línea tienen las mismas características que los impresos. Además, contienen controles, que son objetos que muestran datos o hacen que sea más fácil para los usuarios entrar o editar los datos, realizar una acción o seleccionar una opción. En general, los controles facilitan el uso de los formularios.

¿Qué son los Controles de Formulario?
Los controles de formulario en Excel son objetos que podemos colocar dentro de una hoja y que nos darán funcionalidad adicional para interactuar mejor con los usuarios y tener un mejor control sobre la información.
Podemos utilizar estos controles para ayudar a los usuarios a seleccionar elementos de una lista predefinida o permitir que el usuario inicie una macro con tan solo pulsar un botón.

¿Qué son los Controles Activex?
Los Controles ActiveX son objetos gráficos que se colocan en un formulario (userforms) o en una determinada posición de la hoja de trabajo, con el objetivo de mostrar, seleccionar o introducir (capturar) datos, para la realización de una acción determinada (ej. ejecución de una macro) o para facilitar la lectura de un formulario.
Estos objetos pueden consistir por ejemplo en cuadros de texto, cuadros de lista (combobox), botones de opciones, casillas de verificación, botones de comandos, barras de desplazamiento u otros elementos.

¿Cuales son los Controles de Formulario y Activex?
Dado que ambos tipos de controles son muy parecidos se pueden explicar en conjunto, sin embargo se debe tener claro que las herramientas Activex tienen mas propiedades estéticas y de programación que las de formulario.
A continuación se entrega una descripción de ambos tipos de controles:

Etiqueta: Permite describir, a través de un texto o imagen,  el propósito de una celda.

Cuadro de grupo (formulario)  o Control de marco (activex): Agrupa en un cuadro un conjunto de controles iguales, los cuales pueden ser, por ejemplo, un grupo de solo casillas de verificación o solo botones de opción, Para usarlo en formato activex se debe obtener desde el botón “más controles”.

Botón o botón de comando: Ejecuta una acción, a través de una macro, cuando el usuario hace click en él.

Casilla de verificación: Esta herramienta toma el estado activado, desactivado o mixto (activado y desactivado simultáneamente). Se puede activar más de una casilla a la vez.

Botón de opción: Permite la selección excluyente de opciones, es decir, en un conjunto de botones de opción se puede activar uno sólo. Esta herramienta puede tomar el estado: activado, desactivado o mixto.

Cuadro de lista:  Muestra una lista de elementos, los cuales el usuario puede seleccionar de tres formas distintas según el tipo de cuadro de lista:

Selección única: es una lista de botones de opciones, donde se puede elegir sólo un elemento de la lista.
Selección múltiple: Permite escoger uno o más elementos siempre y cuando estos estén contiguos en la lista.
Selección extendida: Permite una elección, elecciones y no contiguas.

Cuadro combinado: Combina un cuadro de texto con un cuadro de lista. Es más compacto que un cuadro de lista, sin embargo, requiere que el usuario haga clic para mostral la lista de elementos. Además, permite que el usuario escriba un elemento o lo elija de la lista.

Barra de desplazamiento: Permite desplazarse por un intervalo de valores cuando el usuario hace clic en las flechas de desplazamiento o arrastra la barra.

Los controles nombrados anteriormente, son los principales o más usados, existen otros como Botón de alternancia, Etiqueta, Imágenes, etc., Es importante considerar que dependiendo cuál sea el objetivo del formulario, dependerán los controles que se utilizarán en su creación.

¿Cuando usar los Controles de Formulario o los Controles Activex?
Tanto los controles de formulario como los controles Activex, entregan aplicaciones similares, es por esto, que indicaremos en qué casos es más recomendable utilizar uno más que el otro.
Como se ha visto, Microsoft Excel tiene dos tipos de controles. Los controles ActiveX son apropiados para la mayor parte de las situaciones y funcionan con las macros y secuencias de comandos Web de Microsoft Visual Basic para Aplicaciones(VBA). Los controles de la barra de herramientas Formularios son compatibles con versiones anteriores de Excel, comenzando por Excel 5.0, y pueden utilizarse en hojas de macro XLM.
Dado lo anterior, dependiendo del uso que se le quiera dar al formularios, será más conveniente utilizar controles Activex, si el formulario quiere realizarse para una página web, o para algún otro programa que no sea excel, sin embargo, si el usuario desea que se complete el formulario en un archivo excel, cualquiera sea éste, le convendrá más utilizar control de formulario por sobre Activex.

¿Qué es la validación de datos?
La validación de datos de Microsoft Excel permite definir el tipo de datos que se desea introducir en una celda, como por ejemplo, números, fechas y longitud. Se puede configurar para evitar que los usuarios introduzcan datos no válidos o permitir su entrada y comprobarlos tras finalizar el usuario. También se pueden proporcionar mensajes que definan la entrada que se espera en la celda así como instrucciones para ayudar a los usuarios a corregir errores. Cuando se introducen datos que no cumplen los requisitos, Excel también puede mostrar un mensaje con instrucciones proporcionadas por el usuario.


La validación de datos resulta especialmente útil al diseñar formularios u hojas de cálculo que otras personas utilizarán para introducir datos como formularios presupuestarios o informes de gastos.

¿Qué es una Lista limitada por otra lista?
En Microsoft Excel una lista limitada por otra lista se refiere a que una lista muestra la información según el contenido de otra de la que depende.


Para lograr esto resulta conveniente recurrir a la validación de datos y a los nombres de rangos.

Tutorial

El siguiente video muestra la creación de lista limitada por otra lista bajo tres métodos: validación de datos, formularios y activex. Estos ejemplo se realizaron sobre una base de datos de marcas y modelos de celulares.

Sugerencia. El vídeo fue grabado en alta definición. Se recomienda reproducir el vídeo en una resolución de 1080p. HD y en pantalla completa.

Si hay dudas sobre el archivo elaborado, este puede ser descargado aqui.





Autores:
Daniela Casabonne
Fabián González
Carolina Henríquez
Paola Torres
Leer más...