Como buscar varios registros a la ves de access desde excel

Tengo una hoja en excel llamada resumen y una base de datos en access llamada nacional,

En la hoja de excel tengo una macros que me busca cualquier registro que ingrese con tal de que este en la base de datos access me encuentra el registro.

Pero quiero ingresar 500 registro a la vez en la hoja de consulta de excel para que me aparezcan todos los 500 registros completos con su primer y segundo nombre, y su primer y segundo apellido y también la fecha de nacimiento

Esta es el código de la macros.

Sub consultarAccess()
    Dim cn As Object
    Dim datos As Object
    Dim consultaSql As String
    Dim conexion As String
    Dim cont As Long
    Dim campo1 As String
    Dim datocampo1 As String
    Dim complementoBusqueda1 As String
    Dim tipoBusqueda As String
    tipoBusqueda = Cells(1, 4)
    campo1 = Cells(12, 4)
    datocampo1 = Cells(13, 4)
    If campo1 <> "IDENTIDAD" Then
        datocampo1 = "'" & datocampo1 & "'"
    End If
    If Len(tipoBusqueda) = 0 Or Len(campo1) = 0 Or Len(datocampo1) = 0 Then
        Exit Sub
    End If
    If tipoBusqueda = "EXACTA" Then
        complementoBusqueda1 = " = "
    Else
        complementoBusqueda1 = " like "
    End If
    Set cn = CreateObject("ADODB.Connection")
    conexion = "provider=microsoft.ACE.OLEDB.12.0;" & _
            "Data source=C:\Users\E1\Desktop\base de datos access x excel\BASE DE DATOS\BASE DE DATOS 2\Database3.accdb"
    consultaSql = "select * from NACIONAL where " & campo1 & complementoBusqueda1 & datocampo1
    cn.Open conexion
    Set datos = cn.Execute(consultaSql)
    cont = 13
    Do While Not datos.EOF
        Cells(cont, 5) = datos.Fields(2)
        Cells(cont, 6) = datos.Fields(3)
        Cells(cont, 7) = datos.Fields(4)
        Cells(cont, 8) = datos.Fields(5)
        Cells(cont, 9) = datos.Fields(7)
        cont = cont + 1
        datos.MoveNext
    Loop
    datos.Close
    Set datos = Nothing
    cn.Close
    Set cn = Nothing
End Sub

Por favor si alguno conoce otra forma de buscar datos de access desde excel pido que me sea comunicado.

Respuesta

[Hola

¿Y cuál es el criterio en común de esos 500 registros? ¿Cómo sabes que son 500? ¿A qué te refieres con ingresar 500 datos para 'importar 500?

Abraham Valencia

El criterio en común es el numero de ID, es que tengo una base de datos en access de 1millon de registros y buscar en excel uno por uno es tedioso.

Acerca de la ultima pregunta el código de la macro que les envíe me busca un registro pero quiero hacer que la misma macros me busque los 500 datos a la vez.

Osea yo ingrese 500 numero de ID y me muestre los 500 nombres de las ID.

Espero me entiendas y me ayudes.

Ajá, se entendió mejor, aunque eso de ingresar 500 registros en Excel para "buscarlos" me parece engorroso, pero es cosa tuya. ¿Sabes usar FOR-EACH? Deberás crear un bucles de ese tipo que recorra las 500 celdas con los valores a extraer y el segundo va buscando en Access y devolviendo los registros hallados en ¿otra hoja? ¿De Excel? Obviamente tendrías que tener una variable que hace que los registro vayan a la primera fila vacía. Además, sugiero que los registros a buscar los pongas en una sola columna para que de ese modo el FOR EACH recorra todo de modo más fácil:

Dim Celda as Range
For Each Celda in Range("A1:A500")

Luego las variables toman el valor de cada "Celda" y aplican/ejecutan la conexión y ahí es en donde se usa lo de la variable para ubicar la última fila )habría que ver/saber en que hoja pero tú debes elegir)
OJO, debes pensar bien si vas a usar "=" o "Like", ya que con 500 búsquedas podrían repetirse algunas con el Like.

Abraham Valencia

1 respuesta más de otro experto

Respuesta
1

Además de las preguntas que te hace Abraham, yo te recomendaría que lo hicieras al revés, es decir en la bbdd de access creas una consulta de creación de tabla sobre lo 500 registros y después, o bien exportas la tabla al Excel o bien desde Excel importas la tabla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas