es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo conectarse a una base de datos habilitada para web-API a través de Access VBA

En Windows 2007, estoy intentando utilizar la siguiente subrutina de Access VBA que encontré en internet para conectar una base de datos de Access (2016, 64 bits) a otra base de datos de Access (2016, 64 bits) habilitada para web-API y extraer algunos elementos de datos:

Sub DownloadFile0()

Dim Stm As ADODB.Stream
Dim Rec As New ADODB.Record
Dim Conn As New ADODB.Connection
Dim Url As String, Str As String

Url = "http://www.elesteshary.com/sosdata.accdb/sdr/doll_per_sdr" ' URL, nombres de base de datos, registro y campo

Conn.Provider = "ExOLEDB.DataSource"
Conn.Open Url
Rec.Open Url, Conn
Set Stm = Rec.Fields(adDefaultStream).Value
Str = Stm.ReadText
...

Conn.Close
Rec.Close
Stm.Close
Set Conn = Nothing
Set Rec = Nothing
Set Stm = Nothing

End Sub

Al ejecutarlo, recibí “Proveedor no encontrado”. Por favor, indique qué proveedor puedo utilizar en lugar de “ExOLEDB” y cómo puedo obtenerlo. Cuando omito la instrucción “Conn.Provider”, recibí “Nombre de origen de datos demasiado largo”. ¿Es esto porque falta el proveedor? Por favor, corrija el código si hay algo equivocado. Si todo está configurado, ¿”Str” contendrá el valor de “doll_per_sdr”? “sdr” es una tabla de un solo registro. ¿Qué pasa si necesito consultar un campo de un registro específico de una tabla con múltiples registros? Por último, ¿esta subrutina puede extraer datos de una base de datos que no sea de Access?

Nota: No se permite descargar “sosdata.accdb”.

Atentamente,

Said El Noshokaty, PhD
Profesor de Sistemas de Información

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para resolver el error “Proveedor no encontrado”, puedes intentar utilizar “Microsoft.ACE.OLEDB.12.0” o “Microsoft.Jet.OLEDB.4.0” como proveedor en lugar de “ExOLEDB”. Puedes descargar los proveedores necesarios desde el sitio web de Microsoft o utilizar los que vienen con Microsoft Access.

    El error “Nombre del origen de datos demasiado largo” puede estar causado por una URL larga. Asegúrate de que la URL esté en el formato correcto y no exceda la longitud máxima.

    En el código proporcionado, “Str” contendrá el valor de texto del campo “doll_per_sdr” del registro en la tabla “sdr”.

    Para consultar un registro específico en una tabla de varios registros, puedes modificar la URL para incluir el identificador único de ese registro.

    Este subroutine solo puede extraer datos de bases de datos de Access, ya que utiliza objetos específicos de Access como ADODB.Connection y ADODB.Record.

    Ten en cuenta que descargar bases de datos protegidas por derechos de autor sin permiso puede ser ilegal.

Comments are closed.