¿Cómo buscar valores en tabla de Access desde Excel?

Estoy trabajando en una macro que busca registros en una tabla de access desde excel, el único problema que tengo es que me busca solo el dato de la primera celda del rango de valores que debe recorrer haciendo el mismo procedimiento de búsqueda de registros, ¿Qué puedo hacer para que el código me funcione? Les agradecería me brindaran su ayuda a mejorar esta macro y cumplir con el propósito que ya les describí, estoy utilizando la siguiente macro:

Estoy trabajando en una macro que busca registros en una tabla de access desde excel, el único problema que tengo es que me busca solo el dato de la primera celda del rango de valores que debe recorrer haciendo el mismo procedimiento de búsqueda de registros, ¿Qué puedo hacer para que el código me funcione? Les agradecería me brindaran su ayuda a mejorar esta macro y cumplir con el propósito que ya les describí, estoy utilizando la siguiente macro:

Los datos quen tengo los tengo apartir de la celda A10 de la siguiente forma:

Como se muesta en la imagen en la columna A desde la fila 10 en adelante están los datos de consulta desde excel hacia una base de datos de access (un rango de datos del 1 al 7989), y adyacentes a estos valores de búsqueda (celdas B10 y C10) se encuentra el resultado de la macro que comparto anteriormente, es decir el procedimiento solo me busca el primer valor que en este caso es la celda con valor de 1.

Saludos, agradecería su ayuda en esta situación si es posible.

1 respuesta

Respuesta
2

Prueba así, porque entiendo que con cada valor de la columna A la consulta devolverá un único valor:

Sub consultar()
Dim cb As Object
Dim datos As Object
Dim Query As String
Dim conexion As String
Dim cont As Long
Dim i, j
Dim rango As String
Set cn = CreateObject("ADODB.Connection")
conexion = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
            "Data Source=C:\Users\Hp\Desktop\VINCULACION\INSUMOS\SIG.mdb"
cn.Open conexion
uf = Range("A" & Rows.Count).End(xlUp).Row
For i = 10 To uf
    rango = Range("A" & i)
    Query = "SELECT * FROM REFERENCIA WHERE INTERNO=" & rango
    With Worksheets("VH")
        Set datos = cn.Execute(Query)
        datos.movefirst
        .Range("B" & i) = datos.fields("DOMINIO")
        .Range("C" & i) = datos.fields("CLAVE")
    End With
Next i
datos.Close
Set datos = Nothing
cn.Close
Set cn = Nothing
End Sub

¡Gracias! Sveinbjorn El Rojo me funciono tu respuesta completamente para la función que quería darle! Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas