Sección de códigos , trucos y ejemplos para visual basic
<Volver> - Anterior - Siguiente
Contenido
Con este código tomamos la estructura de una base de datos Access 2000 e insertamos las tablas, campos e indices que no existan en otra base de datos ( Es muy útil para hacer upgrade de una bd )
Supongamos que en una primer versión usamos los campos , "nro" y "nombre" de la tabla clientes, y en una segunda versión del mismo soft usamos esos campos pero agregamos 2 columnas a esa tabla ( apellido, y dirección)
Lo que hace el código es encontrar estos dos campos nuevos en la nueva base de datos y crearlos en la bd vieja
Cuando los nuevos campos son 2 o 3 no sería tanto el problema, pero cuando en mi caso la base de datos de mi aplicación tiene 109 campos nuevos ... sería terrible crearlos a mano en cada cliente, y mucho menos que los cree el cliente ¿ se imaginan?
Bueno con este código resolvemos eso, me llevo 2 dias hasta que termino andando sin errores
Primero se ubica la base de datos OLD (en teoría la que tiene el cliente con datos cargados)
Después ubica la base de datos NEW (la nueva versión de la base .. exactamente igual a la OLD pero con mas campos y tablas )
1er paso : buscar las tablas inexistentes en base OLD ----> ACCION --> Crear tablas en base de datos Old
2do Paso : buscar campos inexistenes en OLD --> ACCION --> crear dichos campos en OLD
3ro : Buscar Indices inexistentes en OLD ---> ACCION --> crear los índices en OLD
Después de todo este proceso ya tenemos la bd OLD con la nueva estructura, para nuestra versión 2 de nuestro programilla en cuestión.
Solo faltaría agregar los datos si es que hace falta en los nuevos campos pero eso sabemos como se hace.
En cuando a los datos en la base de datos old no se pierden, solo cambia
su estructura
El ejemplo mas claro es el siguiente :
Tengo un programa con una base de datos que contiene una tabla (productos
campos nro y precio)
Y el cliente me pide que además de precio contenga precio2 y precio3
Con este código creamos los campos en la bd vieja que no existan, y podremos correr nuestro nuevo .exe para trabajar con esos campos.
Nota: El código fuente utiliza la referencia a ADO Y ADOX ... así que hay que agregar las referencias
En cuanto a cuando busco campos inexistentes, loopeo los campos desde un listbox el cual se carga con ADO porque si recorremos los campos con ADOX desde el objeto FIELDS se recorren en forma alfabetica, y nos quedarían mal incertados en la BD OLD.
Bueno espero que a alguen le sirva
El siguiente código sirve para hacer DUMP de una Base de Datos Access, así como en mySql, tenemos el DUMP que nos crea las instrucciones INSERT INTO del volcado de todos los datos de una Tabla, con este código hacemos lo mismo.
Seleccionamos la o las Tablas y los Campos que queramos hacer el archivo DUMP y nos genera un archivo .TXT el cual contiene todo el código SQL para cargar una tabla desde cero con los mismos datos.
Es muy útil a la hora de desarrollar nuestro programa, cuando por ejemplo tenemos la tabla PROVINCIAS, en vez de instalar la base de datos ya cargada hacemos que al terminar el instalador ejecute un .exe personalizado que lea el archivo .txt y ejecute línea por línea en un objeto Command de ADO.
Si la cantidad de datos son 2 o 3 es mas fácil hacerlo a mano, pero cuando tenemos muchos datos es medio tedioso, con este ejemplo y un poco de tiempo para adaptarlo a nuestro sistema resolvemos el problema rápido. Además es muy útil combinar este código con el de la entrega anterior "UPDATE BASES ACCESS". Podríamos crear la NuevaTabla en la BD existente y después ejecutar el archivo DUMP para llenarla.
En el código hay dos formularios
El proceso sería el Siguiente:
FormDumpAccess
1-----> Seleccionar la BASELLENA.MDB
2----->Tildar las Tablas
3------>Tildar los Campos
4-------> Generar el archivo DumpSql.txt
FormDumpFromFile
1------> Seleccionar la BASEVACÍA.MDB
2------> el Archivo DumpSql.txt (antes generado)
3------> Ejecutar líneas del DumpSql.txt
Un Saludo
Espero que a alguien le sirva
Descargar proyecto - Dump Access
Buscar en Recursos vb
Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar