Saltar al contenido

Error en el método Open de objeto_connection


Recommended Posts

publicado

Hola a tod@s, ojala pudieran ayudarme con el siguiente inconveniente.

Tengo el siguiente código que desde Vba Excel me permite realizar una consulta SQL Access donde primero se obtiene un listado de códigos de productos en Excel de la hoja activa para luego coincidir la información con tablas de una base de datos en Access en un determinado servidor.

    Dim Planilla As String
    Dim conexion As Object
    Dim cadenaConexion As String
    Dim consulta As String
    Dim Periodo As Integer
    Dim UltL As Long
    Dim strFile As String
    Set conexion = CreateObject("ADODB.connection")
    strFile = ActiveWorkbook.FullName
    Periodo = UserForm3.TextBox5.Value
    UltL = Sheets("MAR-FABRICANDO-V").Range("C" & Rows.Count).End(xlUp).Row
    Sheets.Add.Name = "MULTIEM"
    Planilla = "[Excel 8.0; HDR=Yes; Imex=1; DATABASE=" & strFile & "].[MAR-FABRICANDO-V$C1:C" & UltL & "] AS PF"
    cadenaConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\Srvmultiem\mgalpon\BODEGA-DSK\A2021\INGRESOS2021.mdb"
    
    L1 = "SELECT PF.OEM, TB.[COD CLIENTE], TB.[PU], TB.[TC] " & Chr(10)
    L2 = "FROM " & Planilla & Chr(10)
    L3 = "Left Join " & Chr(10)
    L4 = "(SELECT T2.CODIGO, T2.[COD CLIENTE], T3.[PU], T5.[TC] " & Chr(10)
    L5 = "FROM (((SELECT T1.CODIGO, T1.[COD CLIENTE], MAX(T1.FECHA) AS [ULTFV] " & Chr(10)
	... 'Continua más sentencia; pero no es necesario que la muestre.
	consulta = L1 & L2 & ...

	conexion.Open cadenaConexion
    
	Set Recordset = conexion.Execute(consulta)
	

Entonces el inconveniente se presenta en la siguiente sentencia

conexion.Open cadenaConexion ó Set Recordset = conexion.Execute(consulta)

con el siguiente mensaje: "Error en el método Open de objeto_connection"

Por alguna razón, que desconozco, ejecuto otras macros que realizan consulta SQL Access y no se presenta inconvenientes. También sucede que a veces la macro si se ejecuta con normalidad y a veces no, que es lo que me desconcierta mucho. Por ejemplo, al archivo Excel lo guardo con el siguiente nombre "Trabajo de Oficina" y resulta que la macro funciona con normalidad y si guardo con un nombre mas corto o si el archivo Excel que abro es desde una carpeta compartida la macro no funciona (aunque a veces sí ?, y esto me quema el cerebro).

Creo que el problema esta en la siguiente sentencia:

Planilla = "[Excel 8.0; HDR=Yes; Imex=1; DATABASE=" & strFile & "].[MAR-FABRICANDO-V$C1:C" & UltL & "] AS PF"

Ya que las demás macros que utilizo para extraer información mediante SQL Access no tomo en cuenta información desde un archivo Excel.

Información adicional de los archivos con los que trabajo:

-Excel 2016 (32bits)

-Access (.mdb) (32bits) (del servidor)

Saludos

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.