none
Conexión a BD RRS feed

  • Pregunta

  • tengo el siguiente código para conectarme a mi base de datos pero este requiere que la BD este estrictamente dentro de la misma carpeta del programa. ¿ Como puedo cambiarlo para que se conecte a la misma BD pero a distancia, osea que la BD pueda estar en otra carpeta sin ningún problema y este haga la conexión  ?

    Private Sub Form_Load()
    cnDB.CursorLocation = adUseClient
        cnDB.ConnectionTimeout = 25
        cnDB.Open "driver={Microsoft Access Driver (*.mdb, *.accdb)};" & _
        "pwd=;" & _
        "UID=Admin;" & _
        "DBQ=" & App.Path & "\GABOSCAN.accdb"

        If cnDB.State <> adStateOpen Then
            MsgBox "error al cargar la base de datos!"

     
    • Editado Juan30102 miércoles, 2 de diciembre de 2015 21:05
    miércoles, 2 de diciembre de 2015 21:04

Todas las respuestas

  • Hola Juan30102, para poder trabajar con una base de datos en otra ruta solo tienes que cambiar la ruta que ya estás usando en tu cadena de conexión. El valor "DBQ=" & App.Path & "GABOSCAN.accdb" indica que la ruta de la base de datos está en la carpeta de la aplicación, si quieres localizar la base de datos en una carpeta "C:\MiCarpeta\" por ejemplo solo tienes que sustituir "DBQ=C:\MiCarpeta\GABOSCAN.accdb".

    También es conveniente que controles la posibilidad de que no exista la carpeta y/o la base de datos haciendo antes

    If dir("C:\MiCarpeta\", vbDirectory) = "" Then

    msgbox "No existe la carpeta."
    Exit Sub

    Endif

    If dir("C:\MiCarpeta\GABOSCAN.accdb") = "" Then

    msgbox "No existe la base de datos."
    Exit Sub

    Endif



    Saludos, Javier J

    jueves, 3 de diciembre de 2015 7:47
  • Gracias Javier J,

    una pregunta esta sugerencia que tu me haces en el código en que parte lo ingresaría para no causar problemas?  

    viernes, 4 de diciembre de 2015 18:32
  • El código lo tienes que poner en el punto en el que abres la conexión a la base de datos. En el código que pusiste sería:

    Private Sub Form_Load()
    
        If dir("C:\MiCarpeta\", vbDirectory) = "" Then
    
            MsgBox "No existe la carpeta."
            Exit Sub
    
        End If
    
        If dir("C:\MiCarpeta\GABOSCAN.accdb") = "" Then
    
            msgbox "No existe la base de datos."
            Exit Sub
    
        End If
    
        cnDB.CursorLocation = adUseClient
        cnDB.ConnectionTimeout = 25
        
        cnDB.Open "driver={Microsoft Access Driver (*.mdb, *.accdb)};" & _
        "pwd=;" & _
        "UID=Admin;" & _
        "DBQ=C:\MiCarpeta\GABOSCAN.accdb"
    
        If cnDB.State <> adStateOpen Then
            MsgBox "error al cargar la base de datos!"
    
         ....


    Saludos, Javier J

    miércoles, 9 de diciembre de 2015 7:50