Cambiar Base de datos de Real a Prueba

Dudas sobre código
DaniLopez1991
Nivel 3
Mensajes: 75
Registrado: Lun Sep 23, 2019 2:12 pm

Cambiar Base de datos de Real a Prueba

Mensajepor DaniLopez1991 » Jue Ene 16, 2020 11:17 am

Hola buenos días,

Tengo un problema y es que en mi empresa trabajamos con una base de datos real que tenemos alojado en un servidor en una particion de disco , luego para los desarroladores tenemos en otra partición con la misma bd pero de pruebas entonces solo tenemos que conectarnos a esa particion y podemos hacer pruebas.

Ahora estamos migrando SQL SERVER y querria saber como podemos hacer algo parecido, si es por conexión o si puedo elegir la BD al entrar ya que hemos instalado en una BD pequeña y funciona correctamente pero necesitamos tambien poder entrar en una copia de esta misma donde hacer las pruebas y no afecte a la real.

Acepto links, paginas de ayudas, algun tutorial video...

Muchas gracias por anticipado

pitxiku
VIP
Reto02
Mensajes: 469
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Cambiar Base de datos de Real a Prueba

Mensajepor pitxiku » Vie Ene 17, 2020 11:22 am

Todo depende de los que se quiera hacer. La forma más sencilla que se me ocurre es tener 2 bases de datos en SQL Server, la de trabajo y la de pruebas. Y en access tener otras 2 bases de datos, cada una vinculada a una de SQL server. Cuando los desarrolladores hayan comprobado que los formularios, informes, ... funcionan bien, se pueden exportar los objetos deseados de una base de datos a otra.

Si solo quieres una base de datos en access, puedes modificar los vínculos a SQL server, para usar una base de datos u otra:

- https://docs.microsoft.com/es-es/office ... operty-dao

- https://docs.microsoft.com/es-es/office ... method-dao

Pero en este caso, recuerda que si sólo hay 1 base de datos en access, y todos usan la misma, los vínculos se modifican para todo el mundo. En este caso, es mejor que cada persona trabaje con una copia en local de la base de datos access (sus modificaciones en el diseño no las sufrirá otra persona).

DaniLopez1991
Nivel 3
Mensajes: 75
Registrado: Lun Sep 23, 2019 2:12 pm

Re: Cambiar Base de datos de Real a Prueba

Mensajepor DaniLopez1991 » Vie Ene 17, 2020 12:55 pm

Si efectivamente nosotros usamos una carpeta del servidor donde se aloja la BASE DE DATOS DE ACCES REAL y cuando entramos como desarrollares usamos otra carpeta de BASE DE DE DATOS DE PRUEBA, así pues se puede que cada base de datos use una base de datos diferente? porque la connexión al yo entrar desde la de pruebas sigue apuntando a la real por eso quiero separarlas y poder elegir a que base de datos me conecto.

pitxiku
VIP
Reto02
Mensajes: 469
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Cambiar Base de datos de Real a Prueba

Mensajepor pitxiku » Vie Ene 17, 2020 2:11 pm

Tú puedes tener una base de datos en access con vínculos a tablas de las bases de datos, ya sean de Access, SQL server u otros gestores. De hecho, dentro de la misma base de datos access puedes tener vínculos a tablas de distintas bases de datos, e incluso, de distintos gestores.

Por eso, tienes distintas posibilidades, dependiendo de cómo quieras trabajar.

Pero si quieres que una tabla vinculada cambie la tabla de destino dependiendo de quién la usa, tendrás que modificar su propiedad Connect.

DaniLopez1991
Nivel 3
Mensajes: 75
Registrado: Lun Sep 23, 2019 2:12 pm

Re: Cambiar Base de datos de Real a Prueba

Mensajepor DaniLopez1991 » Lun Ene 20, 2020 10:53 am

Vale, el problema es que yo hasta ahora Conecto mi unidad (L:) a una carpeta del servidor donde esta mi base de datos real (que se llama dataLog), luego abro mi programa Logistica.accdb y para los otros usuarios el logistica.accde y trabajamos en real, pero me desconecto de la (L:) y la conecto a una carpeta del servidor donde esta la de pruebas y también mi bd de pruebas se llama datalog. Digamos que mi programa de acces logistica apunta a es a la (L:\datalog) pero claro si me desconecto la L: y apunto a otra carpeta del servidor ya estoy trabajando en pruebas, con todo exactamente igual, de echo, al final del dia copio la bd "datalog" y la pego en pruebas para que este todo actualizado y tener todos los datos.

Lo que quiero hacer es algo parecido a esto, si tengo que crear otro logistica.accdb para que apunte a pruebas de sql server o si la bd de pruebas L:\datalog (pruebas) apunte hacia la bd de pruebas en sql server.

Por eso mi pregunta de si al entrar en logistica puedo elegir la bd, o si por lo que he entendido en las respuestas anteriores tendre que hacer una copia del programa logistica, ponerle logisticaPruebas y que este apunte a la bd de pruebas de sql server.

Muchas gracias y espero haberme explicado bien si no es así lo haré mas detallado.

pitxiku
VIP
Reto02
Mensajes: 469
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Cambiar Base de datos de Real a Prueba

Mensajepor pitxiku » Mié Ene 22, 2020 2:42 pm

Una forma más o menos sencilla, es recorrer la colección TableDefs, verificar si hay algo en la propiedad Connect y actualizar es propiedad. Más o menos (ojo, que está escrito directamente aquí, y habrá más de 1 fallo de escritura):

Código: Seleccionar todo

Public Sub CambiarVinculos()
    Dim tdf As TableDef
    Dim Res As integer
   
    Res = MsgBox("Pulse Si pars usar la base de datos de pruebas. No para usar la base de datos buena", vbYesNo)
        For Each tdf In CurrentDb.TableDefs
            If tdf.Connect <> "" Then
                If Res = vbYes Then
                    tdf.Connect = "Cadena de conexión a base de datos de pruebas"
                    tdf.RefreshLink
                Else
                   tdf.Connect = "Cadena de conexión a base de datos de pruebas"
                    tdf.RefreshLink
            End If
        Next
    End If
End Sub


Con el código de supone que las tablas vinculadas usa están creadas, que tienen los mismos nombres en las 2 bases de datos, y que sólo tenemos que modificar la ruta a la base de datos.

También puedes revisar los ejemplos del maestro Emilio. Por ejemplo, el 229 es un administrador de tablas vinculadas. O el 162, que revincula las tablas:

- http://www.mvp-access.es/emilio/Access/Descargas.asp

DaniLopez1991
Nivel 3
Mensajes: 75
Registrado: Lun Sep 23, 2019 2:12 pm

Re: Cambiar Base de datos de Real a Prueba

Mensajepor DaniLopez1991 » Jue Ene 23, 2020 1:43 pm

Vale muchísimas gracias! Mirare los artículos y mirare como hacerlo porque no puedo preguntar a los compañeros si desean utilizar la bd de prueba cada vez que abren el programa y por lo contrario si dicen que si una vez puede haber problemas al no guardarse en la real.

Seguiré buscando y pondre la solución si la encuentro!!

Gracias!

pitxiku
VIP
Reto02
Mensajes: 469
Registrado: Sab Sep 30, 2017 6:23 pm

Re: Cambiar Base de datos de Real a Prueba

Mensajepor pitxiku » Jue Ene 23, 2020 6:43 pm

Crea un formulario donde se pueda revincular la base de datos, así no preguntará al abrir la base de datos.

Y puedes colocar un cuadro de texto donde se introduzca una contraseña. Si no se conoce la contraseña, no se revincula:

Código: Seleccionar todo

If CuadroDeTexto = "123456" Then
    '... Código para revincular
Else
    MsgBox "Contraseña incorrecta"
End If


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados