Mostrando entradas con la etiqueta Formulario. Mostrar todas las entradas
Mostrando entradas con la etiqueta Formulario. Mostrar todas las entradas

miércoles, 22 de enero de 2014

Macro para ingresar ordenes de pedidos a una base

Uno de los grandes problemas de algunas empresas que no han actualizado sus formas de trabajo (como es el caso de Upmetal) es que no cuentan con un sistema que resuma las distintas ordenes y presupuestos que hacen los clientes a la empresa. Para ayudar a lograr este objetivo se propone una macro que ingrese los pedidos a una gran base de pedidos y que además les entregue un número de identificación (Id) a cada pedido.

La idea es lograr que mediante una interfaz como la siguiente:

 El departamento de ventas pueda ingresar datos que vayan llenando una base de datos como la siguiente:


Para lograr esto es que utilizaremos la herramienta de formularios (userforms) que nos ofrece Visual Basic.

Lo primero que debemos hacer es saber abrir la opción de generar nuevos formularios en nuestro proyecto. Para esto damos click derecho en cualquier lado del espacio en donde se muestran los formularios y módulos existentes en nuestro proyecto, vamos a insertar y clickeamos sobre la opción "UserForm".


En nuestra pantalla aparecerá el siguiente cuadro de trabajo:

Como podemos ver, el programa nos ofrece una cantidad de opciones para editar un cuadro de información; el cual se encuentra bajo el nombre "Cuadro de herramientas". También podemos editar la forma y vista de nuestra userform con la tabla que podemos ver en la ezquina inferior izquierda de la imagen. En nuestro caso le cambiaremos el nombre, de "userform1" (nombre estándar) a "Clientes".

El siguiente paso es llenar nuestro cuadro de la información que queremos que tenga. Lo primero es ingresar el texto que queremos que tenga, para esto vamos al cuadro de herramientas y clickeamos sobre la segunda opción (que es representada por una A mayúscula). Lo dibujamos con el tamaño que queramos sobre nuestra ventana userform y le damos el nombre que queremos que aparezca en la ventana:


Una vez habiendo nombrado la etiqueta; ingresamos el campo de texto que queremos que se vaya rellenando en nuestra ventana (por ejemplo si la etiqueta dice Nombre; un campo de texto en donde el usuario pueda ingresar su nombre); para esto nos dirigimos nuevamente al cuadro de herramientas y damos click sobre la tercera opción de este (es representado por un "ab"). Una vez que este se haya establecido del tamaño que queramos se aconseja cambiarle el nombre al del valor que representa (por ejemplo: "Nombre"), más adelante veremos porque esto es importante. Lo anterior se hace de la misma manera en que le cambiamos el nombre a nuestra userform (en la esquina inferior izquierda de nuestra pantalla).


Repetimos los dos pasos anteriores todas las veces que sea necesario, es decir toda la información que queramos incluir en nuestra base.

Una vez que tengamos lo anterior listo podemos  ingresar los botones que van a realizar la acción que nosotros mandemos en la macro. Para esto vamos al cuadro de herramientas y damos click sobre el décimo icono (un dibujo que busca asemejarse a un botón rectangular).


Una vez habiendo diseñado el botón a nuestro gusto y habiéndole puesto el nombre que queramos (en nuestro caso lo denominaremos "Ingresar"), damos doble click sobre el botón y aparecerá la siguiente ventana en nuestra pantalla:


Es en esta ventana donde programaremos gran parte de nuestra macro.

Lo primero que debemos generar es una variable local auxiliar que nos permita generar los id automáticamente para cada pedido y además que nos permita ordenar la información de la base sin necesidad de tocar esta. Para esto utilizaremos una local que vaya contando las celdas como auxiliar; esta la definiremos de la siguiente manera (Base es el nombre que le dimos a la hoja de cálculo en que queremos que se realice la acción):

Dim m As Integer

m = Application.WorksheetFunction.CountA(Sheets("Base").Range("A1:A1000"))

Una vez que tenemos lo anterior, podemos generar la macro que va automáticamente asignarle un Id a cada pedido que ingresemos. Lo anterior es tan simple como igualar el cuadro en que queremos que se sitúe la id a nuestra variable m.

Sheets("Base").Range("A6").Offset(m, 0).Value = m

Como queremos que la variable vaya bajando de una fila a la vez, incluimos en nuestra instrucción un offset que vaya bajando el número de filas según la cantidad de nuestra variable local "m" (es importante que en range pongamos el número de una fila superior a la primera que queremos que rellene, ya que el primer valor para m es igual 1).

Ahora tenemos que conectar la información que vamos rellenando en nuestra userform a las celdas de la base. Para esto debemos igualar la celda que esperamos rellenar con el valor del cuadro de texto que queramos conectar. Si el cuadro de texto que eremos conectar lo denominamos como "Cliente1" y nuestra userform como "Cliente" entonces la instrucción debiese tener la siguiente forma:

Sheets("Base").Range("B6").Offset(m, 0).Value = Cliente.Cliente1.Value

Lo anterior lo repetimos para todos los cuadros de texto que se deban rellenar. Una vez que hayamos completado esto, podemos ordenar que una vez que se hayan enviado los datos,  los cuadros de texto se borren; para esto tenemos que programar el siguiente código para cada cuadro:

Cliente.Cliente1.Value = ""

De esta manera habremos terminado nuestro botón de "Ingresar"; si queremos ingresar otro botón para cerrar el cuadro de texto seguimos el mismo proceso de crear un botón y simplemente le damos la siguiente instrucción:

Sheets("Menú").Select
Sheets("Menú").Visible = True
Cliente.Hide

En el último paso estaríamos "escondiendo" nuestra ventana y haciendo visible nuestro menú.

Finalmente nuestra ventana se vería como algo similar a lo siguiente:


El siguiente paso sería conectar nuestra userform a nuestro menú de interfaz en excel; para esto necesitaremos programar una pequeña macro. Damos click derecho sobre la pantalla en el mismo espacio donde clickeamos para generar nuestro formulario, sólo que ahora seleccionamos la opción de crear un módulo:


Y nos aparecerá una ventana como la siguiente:


En esta ventana debemos programar una macro que nos haga aparecer nuestra userform. Esta macro sería tan simple como lo siguiente:

Sub boton()
Cliente.Show

End Sub

Luego en nuestro excel insertamos un botón y le asignamos la macro anterior. Podemos generar otra macro que nos permita ver la base de datos, la que llevaría la siguiente instrucción:

Sub Mostrar()

Sheets("Base").Visible = True
Sheets("Base").Select
End Sub

Le asignamos esta base a otro botón en nuestro excel y llegamos al menú que nos habíamos propuesto en un principio; el cual con el click de un botón nos mostrará lo siguiente:

Si le damos click a "Ingresar", nuestra base se verá de la siguiente manera:


De esta manera cumplimos nuestro objetivo.

Si quieren ver como funciona la macro, pueden clickear sobre el siguiente enlace (¡No olviden habilitar las macros!): https://www.dropbox.com/s/2m0pjs8strtrvnz/Blog2.xlsm
Leer más...

lunes, 25 de junio de 2012

Cómo crear formularios y subformularios en Access


Un formulario permite escribir, mostrar o modificar datos de una base a través de una consulta o tablas, cuando trabajamos con bases de datos es muy útil usar formularios ya que permiten organizar de mejor manera el trabajo, aquí veremos cómo se crea un formulario.
El primer paso para crear un formulario es tener definida la base de datos a utilizar, las tablas y la información necesaria, una vez que ya tenemos esto, hay que ir a crear, “más formularios”, “asistente para formularios” y ahí seleccionamos las tablas que utilizaremos, si queremos un formulario con subformulario, por ejemplo para que pedidos muestre a los clientes y los detalles del pedido, seleccionamos los campos de las dos tablas.


Luego que hemos seleccionado los campos, vemos en qué orden queremos verlos, en este caso queremos que el formulario sea en base a los clientes y el subformulario al detalle de los pedidos.


A continuación seleccionamos lo referente a la forma en que se muestra y el formato del subformulario, finalmente nos quedará:


Ahora para que uno de los campos genere una lista desplegable en el que aparezcan las opciones, y que a su vez este campo “rellene” los demás campos relacionados lo que hacemos es ir a la vista diseño, borrar el campo que queremos se genere como lista desplegable e insertamos un cuadro combinado (como aparece en la imagen).



A continuación seleccionamos el campo que nos interesa, en este caso era nombre, escogemos la tercera opción. Finalmente nos quedara algo así:


Cuando seleccionemos el nombre, los demás campos relacionados cambiarán de acuerdo a este.

Ahora si lo que queremos en las listas desplegables no son los valores de una tabla determinada sino que son valores que ingresaremos “manualmente” hago lo mismo que el caso anterior, pero en origen de la fila pongo los valores que necesitamos, en este caso en Estado queremos los valores: “En proceso” y “Terminado”, por lo que rellenamos con estos valores.


Si ahora lo que buscamos es que en cada ítem nos entregue el total de los pedidos de acuerdo al precio, cantidad y descuento, lo que hacemos es en la pestaña datos, en origen del control insertar la fórmula que define nuestro total, en este caso: “=[Cantidad]*[Precio]*((100-[Descuento])/100)”.




Leer más...

lunes, 23 de abril de 2012

Diseño y gestión de plantillas para formularios e informes.

Los formularios son las interfaces que se utilizan para trabajar con los datos y, a menudo, contienen botones de comando que ejecutan diversas tareas. Presentan todos los datos de tablas o consultas de un registro en forma de ficha, de esta manera se pueden realizar todas las operaciones habituales con registros, como añadir, modificar o eliminar datos de una manera más cómoda.
Los informes sirven para resumir y presentar los datos de las tablas y consultas de forma personalizada, en vez de entregarlos tal como se tienen almacenados. En ellos se pueden incluir gráficos y totales automáticos. Cada informe se puede diseñar para presentar la información de la mejor manera posible. Un informe se puede ejecutar en cualquier momento y siempre reflejará los datos actualizados de la base de datos. Los informes suelen tener un formato que permita imprimirlos, pero también se pueden consultar en la pantalla, exportar a otro programa o enviar por correo electrónico.
Es posible encontrar las opciones asociadas a cada uno en la pestaña de crear, como se ve a continuación:

Ya fueron vistos los casos de generación de informes y formularios, así como su personalización a niveles empresariales. Pero cuando se desea crear un formulario o informe sin utilizar un asistente, Access utiliza una plantilla para definir las características predefinidas del formulario o informe.
¿Qué es una plantilla de Access? Es un archivo que, al abrirla, crea una aplicación de base de datos completa. La base de datos está preparada para usarse y contiene todas las tablas, formularios, informes, consultas, macros y relaciones que necesita para empezar a trabajar. Debido a que las plantillas están diseñadas como soluciones de base de datos completas de principio a fin, ahorran tiempo y esfuerzo, y permiten comenzar a usar directamente la base de datos. Después de crear una base de datos mediante una plantilla, puede personalizarla para adaptarla a sus necesidades, como si la hubiera creado desde cero.
Access ofrece varias plantillas de bases de datos diseñadas de manera profesional. Cada plantilla crea una solución completa descentralizada que puede usar sin modificaciones o personalizar para adaptarla a sus necesidades. Además, es posible descargar de forma fácil otras plantillas del sitio web de Microsoft Office Online haciendo clic en los vínculos dentro de Access. Después de seleccionar una plantilla y de personalizarla para adaptarla a sus necesidades, puede agregar datos y comenzar la navegación por los registros.
La plantilla determina qué secciones tendrá un formulario o un informe y define además las dimensiones de cada sección. La plantilla también contiene todos los valores predeterminados de las propiedades del formulario o informe, así como sus secciones y controles. Sin embargo, una plantilla no crea controles en un nuevo formulario o informe.
La plantilla predeterminada de los formularios e informes se denomina Normal. Sin embargo, se puede utilizar cualquier formulario o informe ya existente como plantilla. También puede crear un formulario o informe para utilizarlo como plantilla. El cambiar la plantilla no tiene ningún efecto sobre los formularios o informes existentes.
Access guarda los valores para las opciones Plantilla para formulario y Plantilla para informe en el archivo de información del grupo de trabajo de Microsoft Access, no en su base de datos de Microsoft Access (el archivo .mdb) o proyecto de Microsoft Access (el archivo .adp). Cuando se cambia un valor de una opción, el cambio se aplica a cualquier base de datos o proyecto de Access que se abra o se cree.
Si las plantillas no están en una base de datos de Access o en un proyecto de Access, Access utiliza la plantilla Normal para cualquier formulario o informe de nueva creación. No obstante, los nombres de las plantillas aparecen en las opciones Plantilla para formulario y Plantilla para informe de cada base de datos o proyecto de Access del sistema de base de datos, incluso aunque las plantillas no estén en todas las bases de datos o proyectos de Access.
Para crear una plantilla:
  • Crear una nueva base de datos
  • Importar o crear los objetos que se deseen incluir en la plantilla
Luego de incluir los objetos que se desee en la plantilla, deberá guardarse en una ubicación específica.
1.- Hacer clic en el botón de Microsoft Office y, a continuación, seleccione Guardar como.

2.- En Guardar la base de datos en otro formato, haga clic en el formato de archivo que desee para la plantilla.

3.- En el cuadro de diálogo Guardar como, vaya a una de estas dos carpetas de plantillas:
    • Carpeta de plantillas del sistema Por ejemplo, C:\Archivos de programa\Microsoft Office\Plantillas\3082\Access
    • Carpeta de plantillas personales Por ejemplo:
      • En Microsoft Windows Vista c:\Users\nombre de usuario\Documents
      • En Microsoft Windows Server 2003 o Microsoft Windows XP C:\Documents and Settings\nombre de usuario\Application Data\Microsoft\Plantillas
4.- En el cuadro Nombre de archivo, escriba el nombre que desee y, a continuación, haga clic en Guardar.
Ahora que la nueva plantilla tiene una ubicación, los objetos de la plantilla se incluirán de forma predeterminada en todas las bases de datos que cree.
Leer más...

miércoles, 18 de abril de 2012

Personalización de Formularios


Personalización de Formularios a Niveles empresariales

Un formulario en MS Access es bastante útil, ya que nos permite tener una visión selectiva de los datos que poseemos y generar información valiosa para tomar decisiones o seguir un curso de acción, en ese sentido su principal función es facilitar el ingreso de datosal repositorio.Según los requerimientos de las empresas y la información que éstas poseen, los formularios se pueden diseñar en pos de facilitar su uso, y así hacerlos más funcionales para la organización.

Cada empresa tiene su gráfica corporativa e invierte bastante dinero en la generación de marca, logotipos, tipografía, etc. Respecto a este tema, lo ideal es que todos los documentos, insumos y programas utilizados en la labor de la empresa sigan este formato, para darle uniformidad e institucionalizar las herramientas usadas.

Estos aspectos fundamentales se encuentran en un punto común: La Personalización de Formularios. Una herramienta tan valiosa como los formularios, tendrá valor agregado si están personalizados y siguen además la gráfica de la empresa. Luego de que ya tenemos un formulario creado (Pueden ver este video) podemos modificarlo para hacerlo más eficiente aún. En las pestañas de Diseño y Organizar se encuentran algunas de las opciones que usaremos.

Para modificar nuestro formulario vamos a Vista Diseño, haciendo clic derecho sobre éste. El formulario aparecerá “cuadriculado”, estas líneas de división nos permitirán guiarnos al momento de mover o ubicar objetos al anterior del formulario.

 


En cuanto a la funcionalidad y  estructura de nuestro formulario, podemos hacer más eficiente el ingreso de información al incorporar diversos controles según lo que necesitemos. Los controles nos permiten mostrar, especificar, filtrar u organizar datos en MS Acces, y su uso va más allá de los formularios.

Entre los principales controles están: Cuadros de texto, etiquetas, botones, cuadros combinados, cuadros de lista, subformularios, botones de opción, casillas de verificación, grupos de opciones, gráficos, hipervínculos y archivos adjuntos. También se pueden aplicar controles personalizados con ActiveX.


Lo que debemos hacer es seleccionar la opción requerida y colocamos el elemento en el lugar deseado. Por ejemplo, para crear una lista desplegable mediante un cuadro combinado hacemos clic en esa opción, insertamos el elemento en el campo, y desde la “Hoja de Propiedades” configuramos nuestro cuadro para que nos muestre las alternativas disponibles para ese campo, las que comúnmente provienen de alguna tabla de nuestra base de datos.


Desde la vista formulario (Haciendo clic derecho en la pestaña de formulario) veremos lo siguiente:


Desde la Hoja de Propiedades también podemos modificar otras características del formulario. Éste método puede ser de utilidad, ya que al posicionarnos sobre alguna opción, la barra de estado entrega una breve explicación de lo que ésta hace.


Dependiendo del tipo de usuario que accede al formulario y la labor que realice, es la información que éste requiere, en esta ocasión para ejemplificar, dejaremos oculto uno de los campos del formulario. Es tan simple como seleccionar el o los campos y quitar la visibilidad (Noten que en la barra de estado dice: ¿Hacer que el objeto sea visible?, recuerden que para cada opción aparece una breve explicación)


Y en la vista formulario tendemos:



Ahora pasando al aspecto de estética y  formato, podemos lograr que el formulario vaya acorde a la imagen de la empresa en cuestión. En esta ocasión revisaremos como agregarle un logotipo y personalizar el formato de nuestro formulario.
En el encabezado del formulario aparece una imagen que corresponde a un icono automático de MS Access, haciendo clic derecho sobre él lo borramos y vamos al comando Logotipo de la pestaña Diseño. Nos aparecerá una ventana y podremos seleccionar el logo deseado desde algún directorio en nuestro computador.

 



Al posicionarnos sobre la imagen podemos ajustar su tamaño y moverla de lugar. A este cuadro y todos los que aparecen en nuestro formulario se les puede dar efectos especiales, cambiar el grosor, tipo y color de línea con algunas opciones al interior de los Controles.


También podemos modificar el Encabezado del Formulario, Encabezado de Página e Incluir la Fecha y hora de acceso al formulario con los siguientes iconos:


Desde la pestaña organizar hay otras opciones para continuar personalizando nuestro formulario, principalmente enfocadas en la distribución y orden de los elementos al interior de éste. En esta ocasión le daremos un formato a la apariencia general de nuestro formulario. Al ir a Autoformato podemos escoger entre las alternativas  de MS Access.


Esto finalmente será visto por el usuario de la siguiente manera:


Las formas de personalización ejemplificadas anteriormente son sólo una pequeña muestra de una amplia gama de posibilidades que posee MS Access. Teniendo claro qué es lo que necesitamos, al introducirnos en este mundo, probablemente encontraremos soluciones más eficientes de lo que habríamos imaginado en un inicio.


REFERENCIAS Y FUENTES:

Youtube:

Ayuda Oficial de Microsoft:

Geeks.ms:



Leer más...