Excel - Conexión excel con DB

 
Vista:
Imágen de perfil de Nelson

Conexión excel con DB

Publicado por Nelson (1 intervención) el 07/06/2022 18:49:43
Based
Based1
Based2

Tengo un excel que se conecta a una DB para realizar consultas, el problema es el siguiente, la conexión con la DB actualmente la tengo manual y quiero hacerlo que la persona que use ingrese la ruta donde está la DB y ya pueda usar pero el código que estoy usando me da error de autentificación.

Private Sub CommandButton1_Click()
Dim Ruta As String
Ruta = Rutafrm.TextBox1.Value
End Sub

En el formulario tengo un texbox donde quiero almacenar la ruta

'Definir la ruta de la base de datos
PathDataBase = Me.Ruta.Text

Después guardo esa ruta en una variable para colocar en la conexión

Set cn = CreateObject("ADODB.connection")
conexionBD = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathDataBase

y finalmente mi conexión quedaria así pero cuando ejecuto las consultas me da error

Ayuda por favor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de RET
Val: 77
Ha disminuido su posición en 6 puestos en Excel (en relación al último mes)
Gráfica de Excel

Conexión excel con DB

Publicado por RET (28 intervenciones) el 09/06/2022 09:20:09
El error que te está dando es de autenticación. Tiene password la base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Nolberto
Val: 84
Ha aumentado su posición en 6 puestos en Excel (en relación al último mes)
Gráfica de Excel

Conexión excel con DB

Publicado por Nolberto (121 intervenciones) el 09/06/2022 18:48:08
Es difícil si no pones el código completo, pero en realidad el problema puede ser que no estas asignando bien el valor del textbox a la variable PathDatabase.

Lo que sucede es que en el botón asignas el valor de TextBox1 a una variable llamada Ruta, pero luego en el código de la conexión asignas a PathDataBase el valor de un control llamado Ruta ( Me.Ruta.Text ), en teoría, Ruta debería ser el nombre del TextBox, pero me parece que tu textbox donde pones la Ruta no se llama Ruta, se llama TextBox1.

Este código hace lo que necesitas, pero como dije antes, es bueno que pongas nombres a los controles, en este caso el textbox se llama txtDataBase, el botón se llama btnConnDataBase, es decir, pon este código en tu formulario y cambia los nombres de tus controles o en el código pon los nombres de tus controles si no los quieres cambiar en el form.

Todo esto te lo explique en el otro foro, solo habia que cambiar el nombre del textbox según el que tu tienes en el form y llamar a la función desde el botón.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub btnConnDataBase_Click()
    Call ConnDataBase
End Sub
 
 
Sub ConnDataBase()
    Dim PathDataBase As String, cnString As String
    Dim cn As Object
 
    PathDataBase = Me.txtRutaDataBase.Text
 
    Set cn = CreateObject("ADODB.Connection")
    cnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathDataBase
 
    cn.ConnectionString = cnString
    cn.Open
    cn.Close
 
End Sub

Observa como si funciona, la ejecución llega a la linea después de abrir la base de datos.

conndatabase
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar