Estoy de acuerdo con no usar controles enlazados, la verdad es que son un tanto limitantes y a la hora de establecer la conexión y los enlaces es un martirio, por otra parte si quieres mostrar diferente información en un mismo objeto como un FlexGrid...
Yo también te recomiendo que te pongas a estudiar pues esto de las bases de datos no es tan sencillo como praece y si trabajas de eso pues...
En una de esas borras información importante y ...
Pero ya esta bueno de sermones que esto se trata de ayurnos:
El código que sigue yo declaro en un módulo de manera pública para luego invocarlo desde donde me venga en gana, solo ten cuidado con el alcance de tus variables:
Public MC As ADODB.Connection
Public MR As Recordset
Public XSQL As String
Ahora abrimos la conexión:
Public Function AbreBase()
Set MC = Nothing
Set MC = New ADODB.Connection
MC.Provider = "Microsoft OLE DB Provider for ODBC Drivers"
MC.ConnectionString = "Persist Security Info=False;Data Source="& TU_CONEXION & ";User ID="& TU_USUARIO & ";password=" & TU_PASSWORD" & ";Data Provider=MSDASQL.1"
MC.Mode = adModeReadWrite
MC.Open
End Function
Ahora una función para Ejecutar tus consultas SQL:
Function Ejecuta(Consulta As String)
Set MR = New Recordset
MR.Open Consulta, MC
End Function
Vale?, si quieres también la puedes hacer pública o introducirla en el Form que te venga en gana y ejecutarla localmente.
Bueno y el XSQL ya sabes para que sirve XD;
Por último:
Private Sub Buscar_Click()
XSQL = "SELECT(*) FROM tuTabla WHERE tuCondición"
Ejecuta XSQL
'?> Y esto es por si tu consulta no produce resultados no te mande error!!
If MR.EOF And MR.BOF Then
MsgBox("No se encontrarón resultados"
Else
MR.MoveFirst
While Not(MR.EOF)
TU_OBJETO = MC.Fields(0).value
TU_OBJETO = MC.Fields(1).value
TU_OBJETO = MC.Fields(...).value
TU_OBJETO = MC.Fields(N).value
End IF
End Sub
Vale espero que sigas el consejo que te hemos dado y estudies; lo del Fields(X) es para que no se te olvide que vas a identificar los campos con el número de subindice, por lo que si tu tabla tiene 50 campos y seleccionas todo usando "SELECT (*)" tendrás los Fields(0)-Fields(49), y si usas una consulta más especifica y especificas los campos que quieres seleccionar siempre serán N-1 para tus Fields a la hora de ejecutar tu código, espero que te sirva.