Automacro no ejecuta con Referencias ADO de por medio
Publicado por Miguel (58 intervenciones) el 04/05/2019 19:03:31
Hola a todos, buen día.
Tengo un nuevo problema y espero poder contar con sus comentarios experiencia y ayuda para poder dilucidar o solucionar este inconveniente..de antemano les agradezco mucho por su gran ayuda.
Tengo una hoja excel la cual mediante un boton y macro, leo una consulta algo compleja de access y me trae datos de dicha base y los coloca en otra hoja excel de mi libro ("DatosOrigen"). Es esta hoja "DatosOrigen" la fuente para poder hacer algunos análisis y cálculos. Esto funciona sin ningún problema al ejecutar ese botón y macro
El problema esta en que deseo que se autoejecute cada vez que abro el libro, es decir se actualice la hoja de datos "DatosOrigen" pero cuando lo he hecho, me sale un error y que rastreando por pasos es al parecer la conexion con la base de datos. Debo asumir que entonces el problema esta con las referencias ADO y las instrucciones de conexión que utilizo en la macro que lee la consulta de access
Adjunto las instrucciones y las imagenes para que puedan ver donde me da el error. Me parece tiene que ver con las referencias y las instrucciones que se deinen previamente para poder conectarse con la base de datos de access
REITERO: si la ejecuto sin automacro, lo hace sin ningún problema. Ojala puedan ayudarme
Option Explicit
' Macro que permite acceder a los datos de una BD de Access
' Paso 1:Declarar Variables
Dim cnn As New ADODB.Connection
Dim recSet As New ADODB.Recordset
Dim strDB, strSQL, MiRuta, strTabla As String
Dim bBien As Boolean
Sub TraeDatosPoc()
On Error GoTo ControlError
bBien = True
'*****>> PASO 1: Identificar la base de datos y conectarse
MiRuta = Range("M1").Value ' en dicha celda hay una ruta donde esta la base de datos access
cnn.Provider = "Microsoft.Jet.OLEDB.4.0" ' Esto es para access 2003 (.mdb)
If Right(MiRuta, 1) = "\" Then
cnn.Properties("Data Source") = MiRuta & "Help FProduccion.mdb"
Else
cnn.Properties("Data Source") = MiRuta & "\Help FProduccion.mdb"
End If
' En caso que la base de datos tenga una contraseña, se debe poner aqui
cnn.Properties("Jet OLEDB:Database Password") = ""
cnn.Open
Application.ScreenUpdating = False
' Consulta de access que traerá los datos
strTabla = "[Ult Datos POC]"
strSQL = "SELECT * FROM " & strTabla & " "
recSet.Open strSQL, cnn
Hasta este punto es donde ya da el error, al parecer no carga las referencia ADO o no lee las variables de conexion que estan arriba debajo de option explicit
Intente poner toda la rutina en la automacro pero tampoco funciona
intente poner en la automacro todas las vriables e instruccones de conexion y tampoco funciona
Tengo un nuevo problema y espero poder contar con sus comentarios experiencia y ayuda para poder dilucidar o solucionar este inconveniente..de antemano les agradezco mucho por su gran ayuda.
Tengo una hoja excel la cual mediante un boton y macro, leo una consulta algo compleja de access y me trae datos de dicha base y los coloca en otra hoja excel de mi libro ("DatosOrigen"). Es esta hoja "DatosOrigen" la fuente para poder hacer algunos análisis y cálculos. Esto funciona sin ningún problema al ejecutar ese botón y macro
El problema esta en que deseo que se autoejecute cada vez que abro el libro, es decir se actualice la hoja de datos "DatosOrigen" pero cuando lo he hecho, me sale un error y que rastreando por pasos es al parecer la conexion con la base de datos. Debo asumir que entonces el problema esta con las referencias ADO y las instrucciones de conexión que utilizo en la macro que lee la consulta de access
Adjunto las instrucciones y las imagenes para que puedan ver donde me da el error. Me parece tiene que ver con las referencias y las instrucciones que se deinen previamente para poder conectarse con la base de datos de access
REITERO: si la ejecuto sin automacro, lo hace sin ningún problema. Ojala puedan ayudarme
Option Explicit
' Macro que permite acceder a los datos de una BD de Access
' Paso 1:Declarar Variables
Dim cnn As New ADODB.Connection
Dim recSet As New ADODB.Recordset
Dim strDB, strSQL, MiRuta, strTabla As String
Dim bBien As Boolean
Sub TraeDatosPoc()
On Error GoTo ControlError
bBien = True
'*****>> PASO 1: Identificar la base de datos y conectarse
MiRuta = Range("M1").Value ' en dicha celda hay una ruta donde esta la base de datos access
cnn.Provider = "Microsoft.Jet.OLEDB.4.0" ' Esto es para access 2003 (.mdb)
If Right(MiRuta, 1) = "\" Then
cnn.Properties("Data Source") = MiRuta & "Help FProduccion.mdb"
Else
cnn.Properties("Data Source") = MiRuta & "\Help FProduccion.mdb"
End If
' En caso que la base de datos tenga una contraseña, se debe poner aqui
cnn.Properties("Jet OLEDB:Database Password") = ""
cnn.Open
Application.ScreenUpdating = False
' Consulta de access que traerá los datos
strTabla = "[Ult Datos POC]"
strSQL = "SELECT * FROM " & strTabla & " "
recSet.Open strSQL, cnn
Hasta este punto es donde ya da el error, al parecer no carga las referencia ADO o no lee las variables de conexion que estan arriba debajo de option explicit
Intente poner toda la rutina en la automacro pero tampoco funciona
intente poner en la automacro todas las vriables e instruccones de conexion y tampoco funciona
- Imagenesayuda.rar(350,2 KB)
Valora esta pregunta
0