ElZahar2013
Usuario (España)
Bien chicos, en el post anterior hemos visto como podemos conectarnos a nuestra base de datos de una forma sencilla y creo que de forma clara. En este post comenzaremos ya con nuestra serie de videos de programación. He decidido realizar esta serie de videos ya que es más facil de explicar y sobre todo es más rápido. Un saludo y espero que os sirvan. Video nº1: link: http://www.youtube.com/watch?v=f_U7pYOvrD8 Video nº2: link: http://www.youtube.com/watch?v=xiM6r5yx-Co Video nº 3 link: http://www.youtube.com/watch?v=CSp71lyvt-s
Continuamos con nuestro proyecto y en esta ocasión comenzaremos ya a programar un poco nuestra aplicación. Lo primero que vamos a hacer es agregar dos nuevos módulos a nuestro proyecto, al primero lo llamaremos Mod_Variables y al segundo Mod_Procedimientos Una vez hecho esto, programaremos lo siguiente: En el modulo variables declararemos lo siguiente: https://www.dropbox.com/s/vl0tgdzg8avjxir/Imagen%2015.jpg?m= En el móduclo procedimientos declararemos lo siguiente: https://www.dropbox.com/s/2fh1l7g8u7veeoc/Imagen%2016.jpg Con esto, ya haremos conseguido nuestro primer paso que es conectarnos a nuestra base de datos. Para comprobar que todo funciona correctamente, podemos hacer doble click en le boton de iniciar sesion de nuestro formulario, y llamar al procedimiento que acabamos de crear de la siguiente forma: Call Nombre_del_procedimeinto. En el siguiente post, programaremos nuestro formulario de Login.
Bueno chicos, bienvenidos a todos a este tercer post en el que continuamos creando nuestra agenda electrónica multiusuario. Antes de comenzar a programar nuestra aplicación, vamos a realizar unos pequeños ajustes para que no tengamos ningun problema. Lo primero. Nuestra base de datos, debe encontrarse en el Debug de nuestra aplicación, al lado del archivo ejecutable como muestra esta imagen. https://www.dropbox.com/s/a3r1l3hz5bxq4pc/imagen%2010.jpg Despues dentro de nuestro proyecto en el Visual Studio, nos vamos a ir a realizar dos pequeños ajustes. Nos vamos a Proyecto ---> Propiedades de Agenda Inforsoft. (En este caso, en el vuestro aparecerá propiedades de... nombre de vuestro proyecto. - Primero: En la opcion icono, le colocaremos un icono. Recordar. Extension ".ico" de 256x256 píxeles. Desplegamos el combobox y hacemos clic en examinar para seleccionar el icono que queramos https://www.dropbox.com/s/4abz2gdap44odjx/Imagen%2011.jpg?m= - Segundo: En la pestaña compilar la opción CPU de destino seleccionaremos X86 para que pueda ejecutarse en ordenadores de 32 bits ademas de los ordenadores de 64 bits. https://www.dropbox.com/s/gf6ukwd2aqh54ev/Imagen%2012.jpg?m= Guardaremos todo y ahora sí, podríamos empezar con nuestras primeras lineas de código, pero antes, vamos a diseñar los formularios que nos faltan. Continuaremos diseñando nuestro formulario de Busqueda de contactos, siguiendo como siempre con nuestro sistema de nombres de controles y demas. Os dejaré aquí las imagenes de los siguientes formularios. - Formulario para buscar contactos: Este formulario tendra: Un label. Un combobox CbCriterio Un Textobox TxtBuscar Un Datagridview DgwContactos Un button CmbCerrarBusqueda https://www.dropbox.com/s/kbu2pa3lvv8pmql/Imagen%2013.jpg - Formulario para enviar emails: Este formulario nos servirá para enviar emails pero irá vinculado a otro formulario de inicio de sesión así que, editaré más tarde este post para poder explicarlo más detenidamente. - Formulario principal de la aplicación. Este formulario será el que se inicie cuando un usuario inicie la agenda electrónica y el cual nos permitira acceder a todas y cada una de las partes de nuestra aplicación como la agenda que estamos creando o nuestra biblioteca de música, reproductor o algunas otras cosas que iremos creando a nuestro proyecto. Este formulario será un formulario MDI contenedor de toda nuestra aplicación. Veamos una imagen de como nos quedaría. Al principio este formulario nos crea varios controles: Un MenuStrip que dejaremos pero modificaremos. Un ToolStrip y un Tooltip que eliminaremos por el momento. Un StatusStrip que dejaremos tal cual. Al menustrip le modificaremos el nombre por BarraMenus y le quitaremos todos los menus que tiene. Haremos doble clic en el formulario y eliminaremos todo el código que tiene. Luego escribiremos lo que nosotros necesitemos en la barra de menus. De esta forma el menú quedaría en principio así: https://www.dropbox.com/s/0petvagsnsxetgl/Imagen%2014.jpg Por último en las propiedades del proyecto pondremos: Formulario de Inicio Frm_Login Modo de apagado: Cerrar el último formulario. Comprobaremos con la tecla F5 si se inicia el formulario Frm_Login, si es así, guardaremos todo y comenzaremos ya a programar nuestra aplicacion en el siguiente post. Un slaudo. Post Anerior: Pinchar Aquí
En este segundo post, continuación del anterior, veremos el formulario de login que crearemos para acceder a nuestra agenda, pero antes de eso prepararemos nuestro proyecto. Abriremos Visual Studio, versión 2010 o superior. En nuestro caso, yo utilizaré la versión VS 2013 Ultimate, la cual podeis descargar de la página oficial que os dejaré a continuación. http://www.visualstudio.com/downloads/download-visual-studio-vs Una vez descargado e instalado, comenzamos: 1. Lo primero es abrirlo y crear un nuevo proyecto que llamaremos Agenda Inforsoft Crearemos un proyecto de Windows Forms y le pondremos en la versión de Net Framework la versión .Net Framework 3.5 o 4 para que pueda ser compatible con Windows XP ya que de lo contrario, no podremos ejecutarlo en este sistema operativo, debido a que la versión 4.5 de Net framework no es compatible con Windows XP (que yo sepa). Así que nos quedará algo como esto y le daremos a Aceptar https://www.dropbox.com/s/q13c8l36rkdofe3/Imagen%204.jpg Una vez se nos muestre el formulario haremos clic en Archivo guardar como.... y lo guardaremos en la carpeta que nosotros queramos de nuestro ordenador. Una vez guardado nos quedará en la ubicación una carpeta con el nombre de nuestro proyecto y, dentro de ella un archivo que será el de nuestra solución y una carpeta con el nombre de nuestro proyecto, y que si abrimos, veremos carpeta bin, my proyect, obj, y algunos archivos más. De momento no le hacemos caso a eso y continuamos creando nuestro proyecto. Quedará como esto: Ya que sigo sin poder poner las imagenes en el post os las dejo en estos enlaces. https://www.dropbox.com/s/sndfgtjpp0340nm/imagen%205.jpg https://www.dropbox.com/s/fvxgua3e36jgood/imagen%206.jpeg https://www.dropbox.com/s/nardvsi5hhmgz9l/imagen%207.jpeg Bien una vez hecho esto, diseñaremos nuestro formulario y le pondremos los controles que necesitemos. Cambiaremos sus propiedades de acuerdo a nuestro gusto. (Esta parte la haremos un un video a parte donde aprenderemos a crear plantillas de nuestros formularios). Para abreviar, ya que lo que más os interesa a todos supongo es el codigo, lo subiré el formulario que quedará así: Utilizaremos los siguientes elementos: - Un groupbox - Le quitaremos el texto en su propiedad Text. - Dos Labels: Sus text serán: Nombre de Usuario y contraseña de acceso. - Dos Textbox - La propiedad Name de cada uno será: TxtUsuario y TxtClave - Dos Buttons: La propiedad Text de cada uno será: Iniciar Sesión y Cancelar. Sus propiedades Name serán: CmbIniciarSesion y CmbCancelar Ojo, cada uno puede poner la leyenda que quiera. Yo en mi caso y debido al tiempo que llevo programando tengo mi propia leyenda. Es importante que a la hora de ponerles nombre a los controles, utilicemos un prefijo que nos sirva para identifucar cada control. Yo en mi caso utilizo Los siguientes prefijos: Cmb - Para los Buttons, en versiones anteriores commandbuttons. Por lo tanto Cmb de CommandButton. Txt para los textbox. Lbl Para los labels. Grupo Para los groupbox. Dgw - Para los Datagridview. Frm para los Formularios WindowsForms. El formulario tiene las siguientes propiedades: Name - Frm_Login BackgroundImage: Strech - Para que la imagen de fondo (en caso de ponerla) se ajuste al formulario. Font y ForeColor: Verdana 11 negrita y forecolor por defecto. Maximizebox y minimicebox en False. Text - Por defecto. Esta propiedad la cambiaremos por código. StartPosition - CenterScrieen. WindowState - Normal. Bien. Una vez dicho todo esto.... aquí os dejo la imagen de como quedará el formulario. Mirad que tiene un icono en la parte Izquierda. Esto será una imagen ".ico" de 256x256 píxeles. Bien así quedaría nuestro formulario más o menos Para los botones la propiedad Flat Style está en Flat. https://www.dropbox.com/s/5pjiy3izrcou4n0/imagen%208.jpg Una vez terminamos de diseñar nuestro formulario, haremos boton derecho en el formulario --> Bloquear controles para que no se puedan mover. Ahh se me olvidaba... La propiedad de Groupbox - Propiedad Autosize en true para que podamos ajustar el groupbox a nuestro contenido. Y por ultimo y por fin, siguiendo los mismos pasos, haremos los siguiente: A nuestra base de datos le añadiremos dos nuevos campos en la tabla llamada Tb_Contactos - FechaCumple - Tipo Fecha/Hora - ImagenContacto - Tipo Texto. Y en lugar de los campos NombreUsuario y DominioContacto, dejaremos un unico campo llamado CorreoEmail Dejaré la base de datos completa a continuación para que podais descargarla: Podeis descargar desde aquí la base de datos. Y en este enlace podeis ver como nos quedaria el formulario de contactos. https://www.dropbox.com/s/bcc2tt7qjrq1fqk/imagen%209.jpg Como veis tenemos lo siguiente: Los texbox se llaman: TxtNombre TxtDireccion TxtCodigoPostal TxtPoblacion TxtProvincia TxtFijo TxtMovil TxtEmail TxtNotas Tenemos un DataTimaPicker llamado DTFecha Tres Picturebox llamados: ImgLogo ImgContacto ImgUsuario y 8 buttons o CommandButton: CmbNuevo CmbBuscar CmbModificar CmbEliminar CmbEnviarEmail CmbFoto CmbExportar CmbMenu Bien pues hasta aquí el segundo post de como crear una agenda multi usuario que, aunque parezca sencilla nos abrirá más opciones, ya que poco a poco será ampliada con otro tipo de opciones y podrá formar parte de una completa aplicación que acabaremos creando al final de todos los post que se irán publicando. Hasta el proximo post, un saludo. Para acceder al post anterior pinchar aquí
Bien ya hemos visto en el post anterior como se comprueba la existencia de un arhivo en un directorio, en este caso en el directorio en el que se está ejecutando el libro que estamos utilizando. Ahora combinando esto con las estructuras condicionales, veremos como crear un libro si este no existe y como guardarlo en la ruta correspondiente. Veamos un ejemplo: ¡Ojo cambiar el nombre del procedimiento que se me olvido! Recordar que no puede tener espacios en caso de tener más de una palabra.
En este segundo post, aprovecharemos la ocasión para ver las estructuras condicionales en visual basic apra aplicaciones. En este caso y aprovechando la ocasión, veremos dos tipo de estructuras. - La estructura If.... Else.... End if - La estructura Select Case......Case Else.... End Select. Con la primera estructura, evaluaremos una condición dada. If.. Else..... End If Lo primero que debemos de tener en cuenta es que todas las estructuras que se abren, deben ser cerradas, esto quiere decir que si comenzamos a evaluar algo comenzaremos con If o con Select Case y entonces una vez evaluadas las condiciones, el if o select case que estamos utilizando, debe ser cerrado con End If o con End Select, dependiendo del caso. En la primera estructura, If... Else.... End If evaluaremos por lo general una condición de la siguiente manera: if ..................lo que sea.................. then 'Si se cumple una condicion, entonces...... - Haremos unas operaciones. Else 'En caso contrario, es decir, si esa condición no se cumple, entonces..... - Haremos otras cosas diferentes. End If 'Cerramos la condicional. En la segunda estructura Select Case, lo que hacemos es evaluar los valores o lo que puede suceder con un control u objeto determinado Seria como lo siguente: Select Case Caso del Objeto Case ...... - Hacemos unas cosas Case...... - Hacemos Otras cosas Case........ - Hacemos otras cosas diferentes Case Else ..... En caso que no se cumpla ninguno de los anteriores.... - Si no se cumplen los casos hacemos lo que queramos End Select Cerramos la escructura. Veamos algunos ejemplos:
Hola amigos, en este nuevo post, vamosa aprender a realizar una agenda electrónica multisuario, es decir, una agenda que pueda ser utilizada por varios usuarios y, además, dependiendo de la persona que inicie la agenda, aparecerán unos contactos u otros. Para esto utilizaremos los siguientes materiales: - Una base de datos Access, que llamaremos Agenda Multiusuario.accdb - Visual Basic 2010 o superior. Toda nuestra aplicación, será realizada a traves de código. Además de eso debemos tener un cuenta una serie de cosas antes de empezar. Dentro de una agenda electrónica en la que existen varios usuarios, debemos tener en cuenta. Primero: Puede haber más de un usuario que utilice nuestra agenta. Segundo: Debemos identificar al usuario que está utilizando la agenda. Tercero: Logicamente, los usuarios pueden o no concerse. Lo ideal es que cada usuario posea una contraseña de acceso. Estos tres primeros aspectos, nos dan la posibilidad de realizar primeramente un sistema de Login para identificar al usuario. Bien comencemos entonces por este aspecto. Crearemos primeramente nuestro sistema de Login. 1. Abriremos nuestro access y crearemos nuestra base de datos. En principio con la siguiente talbla. Nombre de la tabla: Tb_Usuarios Campos: IdUsuario - Autonumérico - Clave principal. NombrePersona - Texto NombreUsuario - Texto ClaveUsuario - Texto Aquí vemos nuestra tabla: Una vez guardada nuestra tabla, continuaremos creando nuestra base de datos. Ahora debemos tener claros los campos que van a tener nuestros contactos como por ejemplo, nombre, direccion, telefono, fax, notas, email..... estos campos los veremos en el ejemplo a continuación pero primero veremos lo siguiente: Sabemos que podemos tener varios usuarios pero: - Un usuario puede tener varios contactos. Por lo tanto en la tabla contactos debemos tener un campo a traves del cual podamos relacionar las dos tablas veamos el ejemplo: Primero creamos la tabla contactos. Os dejo el enlace a la imagen ya que da error a la hora de subirla al post. https://www.dropbox.com/s/snuv8mw58vy0j0m/imagen%202.jpg Como podeis ver hemos colocado un campo IdUsuario de tipo número, para poder relacionar las dos tablas, y este campo debe ser de tipo número, ya que el campo IdUsuario de la tabla Usuario es autonumérico y como sabemos, el capo por el cual se relaciona cualquier tabla, debe contener el mismo tipo de datos. Ahora guardaremos y cerraremos las dos tablas. Bien, una vez visto esto, pincharemos nos iremos a herramientas de bases de datos --> Relaciones. Agregaremos las dos tablas y para poder realizar la relacion: -Pincharemos en el campo IdUsuario de la tabla Tb_Usuarios y sin soltar, arrastraremos hasta el campo IdUsuario de la tabla Tb_Contactos. Aparecerá el cuadro de las propiedades de relacion. Marcaremos: Exigir Integridad referencial: Esto quiere decir, que no podremos introducir ningún número el la tabla Tb_Contactos, si éste no existe en la tabla principal Tb_Usuarios. Actualizar en cascada Esto significa que si actualizamos un los datos en la tabla principal, los datos que esten relacionados se actualizarán automáticamente: Ejemplo. Si tenemos 5 contactos que pertenecen a un usuario llamado Pepe y ese tal Pepe cambia su identificación, los 5 contactos que tiene pepe, cambiaran su identificación. Otro ejemplo: Tenemos unos productos que en una tabla que pertenecen a una almacen 1. Este almacen cambia de dueños y de repente pasa a llamarse almacen 5. Por tanto todos los productos que antes pertenecian al almacen 1, automaticamente cambiaran su almacen y pasarán a ser del almacén número 5. Eliminar el cascada. Esto quiere decir, que si eliminamos un Usuario de nuestra tabla, todos los contactos que pertenezcan a ese usuario se eliminarán automáticamente. Debeis tener en cuenta, que como podeis ver en la tabla, cada una de ellas tiene una clave principal. Esto es muy importante, ya que, es el campo a traves del cual vamos a relacionar las tablas. Tener en cuenta que las tablas siempre se van a relacionar a partir del campo que sea clave principal. Nos debería quedar así: https://www.dropbox.com/s/x7b2zdp7ep7so0u/imagen%203.jpg Una vez tenemos la base de datos, en la segunda parte de este ejemplo, veremos la parte que corresponde con Visual Basic.Net. Por lo pronto, termino este post, dejando la base de datos creada, pero vacía para que la descargueis: Podeis descargarla pinchando aquí Para acceder al siguiente post pinchar aquí
Bueno amigos, continuamos creando post y aprovechando que ya sabemos crear estructuras condicionales y además, sabemos crear mensajes para el usuario, vamos a avanzar un poco más viendo como se realiza la comprobación de si existe un archivo en una ruta correspondiente. Como ya sabeis, habiamos creado una carpeta llamada ejemplos y dentro de ella habiamos guardado un arhcivo de excel habilitado para macros llamado "Ejemplo.xlsm" Por otro lado también habiamos visto que el método Thisworkbook.Path captaba la ruta del libro activo. Pues bien. Ahora vamos a ver si en esta carpeta existe algún archivo concreto. Por ejemplo el archivo prueba.xlsx Veamos el ejemplo.

Hola amigos. Bienvenidos a este primer post de Elzahar2013. Hace tiempo que llevo buscando por Internet algunas cosa sacerca de las macros y la automatización de tareas en excel, combinadas con otro tipo de aplicaciones como por ejemplo bases de datos. He visto miles de videos en los cuales nos muestran demostraciones de aplicaciones muy interesantes realizadas con macros (programación en Excel) y bases de datos, pero la verdad que nunca he conseguido ver videos explicativos de forma detallada de como hacerlo. Por este motivo, quiero aprovechar este post para explicar como podemos realizar algo que los cibernautas demandan en sus comentarios, en foros, etc. Lo primero que vamos a ver son procedimientos que podemos realizar a través de VBA, y que a su vez realizarán una serie de acciones las cuales nos pueden resultar muy útiles en el futuro. Para realizar esto, utilizaremos la versión de Excel 2007. Comenzamos. 1. Lo primero que vamos a hacer es crear una carpeta en la cual guardaremos una archivo de Excel habilitado para macros "*.xlsm". 2. Lo siguiente que debemos saber, es que vamosa a utilizar el método ThisWorkbook.Path que nos va a captar de forma automática la ruta del libro desde el cual se están ejecutando las direferentes macros. Bien, teniendo en cuenta esto veamos algunas intrucciones. Tenemos el libro Ejemplo.xlsm dentro de la carpeta Ejemplos. Asi que comenzamos. Podemos crear un botón de la siguiente forma: Boton de Office ---> Opciones de Excel ----> Mostrar Ficha programados. Dentro de esta ficha, nos situaremos en la ficha programador e insertaremos un objeto ActiveX Botón de Comando. Una vez insertado, haremos doble clic podemos escribir el codigo. Nosotros insertaremos un Modulo (Insertar - Modulo) e iremos creando procedimientos. Veamos como programar algunas macros muy sencillas. ¿Como ejecutar cada procedimento? -Si no queremos insertar ningún botón, podemos colocar el cursor dentro del procedimento que queremos ejecutar. Si queremos ejecutar el procedimiento desde un botón, los procedimientos deben de estar declarados como los anteriores, es decir, Publicos. Debemos diferenciar entre: - procedimiento público que comienza con Sub o Public Sub Nombre_proccedimiento y que están disponibles para todo nuestro proyecto. - procedimiento privado que comienza con Private Sub Nombre_Procedimiento y que sólo están disponibles en el lugar donde son declarados. Para llamar a estos procedimientos desde algun botón, basta con escribir dentro del boton con el que queremos ejecutar el procedimeinto, en su evento Click la palabra Call y el nombre del procedimiento. Por ejemplo: Call Macro1