Excel y base de datos (También manuales)

Hola,
La verdad es que no tengo muy claro si se realizar la consulta a la BD desde Excel o simplemente creo que lo se.
Se que tengo que diseñar mi consulta por ejemplo:
select * from Ttable
Con el Microsoft Query y que luego la tengo que guardar con extensión *.qry
Pero me surgen varias dudas:
1) ¿Cómo hacer que mi hoja Excel de trabajo esté siempre asociada a la BD con la que yo quiero trabajar? O es que en la propia consulta deberé incluir antes de realizarla alguna instrucción que me conecte a dicha BD, del tipo connect.database()
2)¿Cómo ejecuto mi consulta desde la hoja Excel? Comento lo que quiero hacer:
Lo que pretendo hacer es una hoja Excel que recupere información de una base de datos, es decir, en la hoja Excel de partida se incluirán 4 ó 5 botones que al pulsarlos harán que se despliegue un formulario, diferente en cada caso, (esto no se muy bien como hacerlo) y que al seleccionar la información necesaria en el formulario en cuestión, se ejecute la consulta oportuna sobre la base de datos. He leído en un artículo que debo tener la consulta guardada o almacenada de algún modo pero no me queda claro lo que quiere decir, no se si el código SQL que realiza la consulta tengo que almacenarlo en un archivo con formato *.qry y vincularlo al botón "Aceptar" del formulario para que cuando se le pulse le pase a ese archivo los datos seleccionador en el formulario y se realice la consulta o si bien, el código SQL debe estar contenido en una macro que al pulsar el botón "Aceptar" del formulario reciba los datos recogidos de dicho formulario y haga que se ejecute la consulta.
Espero que quede claro. Si alguien está interesado en responderme y no me entiende puedo mandar un esquema en formato *.doc que puede ser más aclaratorio.
Un cordial saludo y por supuesto que finalizo la respuesta cuando me aclaren un poquito de como va la cosa. Gracias de antemano.
Ahhh! Por cierto algún manual bueno de macros, formularios, VBA. Mi dirección es [email protected]

1 respuesta

Respuesta
1
Crea un modulo en visual basic. Y pega el siguiente código en el.
En el Menu Herramientas- Referencia . Agrega una referencia a Microsoft Active POR Data Objects Library.
En el código encontraras dos rutinas, solo necesitas modificar la primera, indicándole cual es la ruta para concetarte a tu base de datos, y sula es la consulta.
Para finalizar ejecuta esta Macro desde cualquier hoja donde quieras ver los resultados.
Saludos
Sub Conectar()
OpenDBShared "C:\Bd.mdb", "Select *"
End Sub
Private Sub OpenDBShared(strDBPath As String, strConsulta As String)
Dim cnnDB As ADODB.Connection, rst As New ADODB.Recordset, e As Integer, a As Integer
' Iniciar Conexion
Set cnnDB = New ADODB.Connection
' Especificar algunos parametros muy sencillo.
With cnnDB
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Open strDBPath
End With
'ejecutar consulta
rst.Open strConsulta, cnnDB, , , adCmdText
Do Until rst.EOF
For e = 0 To rst.Fields.Count - 1
ActiveCell.Offset(, e) = rst.Fields(e).Value
Next
ActiveCell. Offset(1). Activate
Rst. MoveNext
Loop
'cerrar conexión.
Rst. Close
CnnDB. Close
Set rst = Nothing
Set cnnDB = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas