Crear base de datos que se actualice en otra PC. Desde Visual basic

Estoy en proceso de creación de una pequeña planilla que sirve como registro y ésta quiero se almace en una base de datos. Usé una pequeña datagridview con los campos correspondientes (5). La base de datos la hice en microsoft access (2007). Todo me funciona a la perfección, hago el registro y me queda almacenado a la perfección. Mi pregunta es:

¿Es posible compartir esta base de datos, que quede almacenada en un servidor o alguna carpeta compartida?

Porque necesito utilizar esta base de datos en otra pc y cuando lo ejecuto por razones obvia me sale la base de datos que ya tenia en la pc anterior porque copio todos los archivos (incluyendo el archivo de access). Mi idea es poder utilizar las 2 computadoras y poder almacernar archivos y que se vean reflejados en las dos computadoras. Sin necesidad de registrar en una y después copiar el archivo a la otra pc, lo que hace perder tiempo en la oficina.

1 Respuesta

Respuesta
1

¿Qué versión de Visual Basic usas? ¿VB 6.0? ¿Visual Basic.Net xx?

Comentas

Abraham Valencia

Hola Abraham, Gracias por leer la pregunta.

Uso Visual  Studio 2010 en .Net

Aja, entonces ¿cómo estableciste la conexión? Por código tipo:

cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\Ejemplos\Ejemplo.mdb;")

O más bien usaste algún control tipo "OleDbDataAdapter".

Una forma fácil es tener la BD Access en una carpeta compartida y se ser la primera opción, basta cambiar la ruta y colocar la de la BD en la carpeta compartida, de ser la segunda, como ya estableciste la ruta "fija", al cargar el o los "Form" hay que darle la ruta por código. Comenta cuál es tu caso.

Abraham Valencia

Esta es la conexión que use:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source="|DataDirectory|\Registro Planillas.accdb"

La ruta del archivo en access se encuentra en la pc antigua.

Dado a lo que me comentas, puedo usar la conexión desde una carpeta compartida y en ese caso cuando modifique esa base de datos, ¿se actualizara ese archivo en la carpeta compartida?

Si tu base de datos Access está en una carpeta compartida (de lectura y escritura, ojo con eso) a la que se puede acceder desde cualquier PC de tu red, no hay ningún problema, en tu cadena de conexión coloca la ruta de dicha carpeta (más el nombre del archivo, obvio) y listo, podrás generar tu ejecutable (*.exe) e instalador (no empaquetes el archivo Access, ya que estará en la red) y desde cualquier PC con acceso a la red y con tu programa instalado podrás hacer lo que te permita tu programa.

Abraham Valencia

Hola Abraham.

Realice nuevamente el procedimiento y coloque la ruta de un archivo que se encuentra en la carpeta compartida los resultados son los siguiente:

Puedo ejecutar el programa modificado con la base de datos (ruta-carpeta compartida) y me almacena los datos exitosamente, pero al momento de revisar el archivo en la carpeta compartida me encuentro con que no modifica ese archivo de access. Entonces me fui a la carpte \Mis documentos\Visual Studio 2010\Projects\planilla\bin\debug ahi donde se encuentra el archivo ejecutable esta el access que modifico. En conclusión, ¿puedo hacer que el archivo que se modifique es el que esta en la carpeta compartida?

Para confirmar, ingreso desde la pc nueva, donde también quiero actualizar la base de datos y no me salen los datos que actualice desde la pc vieja. Sigo sin solucionar.

¿Cuántas cadenas de conexión tienes en tu aplicación? ¿No será que tienes más de una? De ser así tienes que modificar TODAS y que la ruta sea la correcta e igual en todas. Y no olvides lo otro que comenté, si tienes objetos "enlazados" a ese archivo Access que está solo en tu PC, te dará los mismo problemas.

Abraham Valencia

PD: Si tienes más de una cadena, para siguientes oportunidades no olvides que lo mejor es establecer la conexión en un módulo de clase y desde otros procedimientos solo se "llama" a lo que incluiste en esa clase.

Tengo una sola conexión.

Y no entiendo lo de objetos enlazados. Aquí adjunto una imagen para que visualices.

Aquí puedes observar que solo tengo una conexión.

Si para ayudarme necesitas más imágenes, avisame. Gracias por todo Abraham.

En realidad no tienes la conexión con código, sino que la has hecho a través de "conexiones de datos" y has creado un objeto *. Xsd (dataset), yo no uso ese tipo de modos de conectar y por eso preguntaba, pero no hay problema. Mira, para no hacernos tanto mundo más que modificar todo con código, intenta lo siguiente: Mueve tu archivo a la carpeta compartida, una vez ehcho eso, entra al VS y dale click derecho a "registroplanilla.accdb" y dale a "Modificar conexión...":

Luego dale click al botón "examinar":

Busca la BD de la carpeta compartida y seleccionala, volverás a la misma ventana que ves arriba pero en "Nombre del archivo..." ahora estará la ruta de la BD en la carpetas compartida, dale click a "Probar conexión" y debería salir un mensaje "La conexión de prueba se realizó correctamente", ahora dale click a "aceptar". Eso debería haber sido suficiente.

Comentas

Abraham Valencia

Abraham, he modificado la ruta como me indicas en la respuesta anterior y no entiendo por que cuando guardo el projects y lo ejecuto nuevamente, me modifica la ruta. Me explico:

Cuando presioné modificar connexion, me salia la ruta del projects, algo así:

C:\Documents and Settings\Administrador\Mis documentos\Visual Studio 2010\Projects\Planilla Modificada\Planilla Modificada\bin\Debug

Modifiqué esa ruta por la carpeta compartida que este caso es:

\\EQUIPO1\Documentos c\Base de datos

Comprobé la conexión y parecia perfecto.

Ahora, guardo todo el project y lo inicio desde el ejecutable y no ocurre cambios, me sigue modificando el archivo que se encuentra en la ruta del projects.

entonces abri de nuevo el projects para verificar y sigue estando la ruta antigua, es como si no se guardara la ruta de la carpeta compartida, ¿Ahora por qué?.

PD: No me parece extraño esto, porque, inicialmente cuando adicioné la base de datos, yo seleccioné la ruta de la carpeta compartida cuando cree el dataset y eso. enotnces, al parecer no agarra esa carpeta y por defecto se selecciona de ruta donde está el project. ¿Que pudiera ser?

Algo que me acabo de percartar Abraham.

Modifico la conexión y me cambia la ruta mientras no cierre el programa, pero si veo en el explorador al lado derecho, puedo observar que dice que el archivo se encuentra en otra carpeta, no estoy entendiendo que está pasando aquí.. :S

Ja ja ja, estoy empezando a volverme loco...

Después de que actualizas la conexión dale click derecho a "Registroplanilla.accdb" pero esta vez elige "actualizar", ahora anda a las propiedades de "Registroplanilla.accdb" y verifica que en la propiedad "Cadena de conexión" en la parte que dice "Data Source..." esté la ruta de la red:

De ser así, pon "guardar todo" y GENERA UN NUEVO EJECUTABLE.

Abraham Valencia

Magnifico!

Eso era lo que tenia que hacer. Ahí esta seleccionada otra cosa (tenia ruta a la carpeta del project). La cambie y automáticamente se selecionó la ruta de la carpeta compartida.

Funcionó, probé desde la otra PC y se ven reflejados los datos actualizados desde la antigua pc.

Muchas Gracias Abraham por el tiempo y tus conocimientos, eres un Crack.

Excelente, que bueno, me has hecho sufrir jajajaj. Un abrazo.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas