Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

buscar en un campo de Access desde Excel

1,722 views
Skip to first unread message

Margarita

unread,
Apr 16, 2008, 1:30:51 PM4/16/08
to
Bueno, creo que el asunto lo explica casi todo.

Necesitaría buscar en un campo de Access el valor introducido en un campo de
texto de un formulario de Excel.

Agradezco cualquier colaboración


Marga


Juan M

unread,
Apr 16, 2008, 3:34:39 PM4/16/08
to
Hola Margarita,

Te describo un proceso que no lleva código

Primero establece una celda donde esté el valor de la celda que vas a usar
como parametro (por ejemplo B3)

Ahora ve al Menú Datos>Obtener Datos Externos>Nueva Consulta de Bases de
Datos..
Te aparece un cuadro de dialogo donde puedes elegir diferentes bases de
datos. Selecciona la que corresponda, en tu caso MS Access Database y
acepta.
Localiza tu base de datos y acepta.
Te aparecerá un nuevo cuadro de dialogo con las tablas y las consultas de tu
base de datos, selecciona la tabla que corresponda y elige los campos que
quieras tener representados y ve al siguiente.
En el siguiete paso te pregunta cual/cuales son los campos de la consulta
Selecciona el campo sobre el que quieres hacer la consulta y da un valor
para acotar la consulta
Ahora te preguntará como quieres que ordene la consulta, al gusto.
Aceptas y aparece un dialogo donde te pregunta si quieres guardar la
consulta, devolver los datos a Excel, Ver datos o modificar la consulta en
microsoft Query, o crear un cubo OLAP.
Selecciona la de ver datos o modificar la consulta (la segunda opción).

Si todo ha ido bien aparecerá en pantalla el Microsoft Query con una
pantalla dividida en tres zonas, la primera que hará relacción a la tabla
donde vas a hacer la consulta, una segunda donde están los campos de
criterio con el valor y una tercera donde está el resultado de la consulta.

En la segunda zona, donde aparece el valor Escribe entre corchetes (Muy
importante) algo que te recuerde de que es la consulta pe [Clientes].
Comprueba que no este marcado el penúltimo icono de la barra de herramientas
del MS query.

Una vez modificado todo, sal del MS Query.

Te aparecerá un dialogo donde te pregunta donde lo quieres pegar, selecciona
por ejemplo la celda A10. Ten cuidado de no pisar la celda que habiamos
reservado para el parámetro (B3), y acepta. La consulta se ha realizado.

Ahora situate dentro del rango donde está hecha la consulta (apartir de A10)
Desde el Menú Datos>Obtener datos Externos>Parametros elige la tercera
opción Tomar el valor de la siguiente celda, puedes activar también
actualizar automaticamente cuando cambie el valor.
Aceptas y a probar que tal funciona.

Si lo prefieres por código:

Con los datos de tu otra consulta.

Sub test()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim SQL As String

Set cnt = New ADODB.Connection

cnt.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\My Documents\SalesDb2K.mdb;"

SQL = "SELECT * FROM tblCustomers "
SQL = SQL & "WHERE micampo ='" & Worksheets("Hoja1").Range("B3") & "'"

Set rst = New ADODB.Recordset
rst.Open SQL, cnt, adOpenForwardOnly, adLockOptimistic, adCmdText

Worksheets("Hoja1").Range("A10").CopyFromRecordset rst

Set rst = Nothing
Set cnt = Nothing

End Sub

Un saludo,
Juan

"Margarita" escribió

Margarita

unread,
Apr 16, 2008, 4:11:26 PM4/16/08
to
Muchas gracias Juan M.

Estoy realizando una aplicación en Excel para la gestión de costes de unas
obras. Los datos serán guardados en tablas de access y luego recuperados
para crear informes.

la macro que me pegas me viene perfecta. sólo necesito hacer un pequeño
cambio y arreglado.

muchas gracias.

"Juan M" <jum...@NOSPAMhotmail.com> escribió en el mensaje de noticias
news:e5Vs$i$nIHA...@TK2MSFTNGP04.phx.gbl...

0 new messages