Pues a ver...
Te lo digo por pasos a ver si consigo darme a entender.
1. Descarga de drivers ODBC de MySQL si aún no se tienen.
Link:
http://dev.mysql.com/downloads/connector/odbc/
1.1 Instalarlo
2. Crear ODBC hacia la base de datos MySQL sin olvidar el nombre que se la ponga.
3. En el proyecto de Visual Basic:
Agregar la referencia a "Microsoft Activex Data Objects 8.0 Library" a través del menú Project/References.
4. Vale... ahora, como usarlo.
Para hacer una prueba he creado dos tablas en MySQL que obedecen a este script:
Código MySQL:
Ver original
insert into fdw_example5_ciudad
(Id_Pais
, Nombre
) values (1, 'Washington'), (1, 'Nueva York'), (2, 'Madrid'), (2, 'Barcelona'), (2, 'Teruel');
He creado un ODBC que conecta a la base de datos que se llama "MYSQL_FOROSDELWEB".
En un formulario vacío de VB, he agregado un combobox que se llama "Combo1".
Y he puesto este código:
Código vb:
Ver originalOption Explicit
Private Const C_ODBC = "MYSQL_FOROSDELWEB"
Private Sub Init_Values()
Dim Cn As ADODB.Connection
Dim RS As ADODB.Recordset
Dim Qry As String
Set Cn = New ADODB.Connection
Cn.ConnectionString = C_ODBC
Cn.Open
Qry = "select Id_Pais, Nombre from fdw_example5_pais order by Nombre"
Set RS = Cn.Execute(Qry)
Combo1.Clear
Do While Not RS.EOF
Combo1.AddItem RS.Fields(1).Value
Combo1.ItemData(Combo1.ListCount - 1) = RS.Fields(0).Value
RS.MoveNext
Loop
RS.Close
Set RS = Nothing
Cn.Close
Set Cn = Nothing
End Sub
Private Sub Form_Load()
Init_Values
End Sub
Con esto he conseguido conectar a la base de datos MySQL, hacer una consulta a la tabla de países de este ejemplo y meterlos dentro de un combobox.
Con lo que mencionas de agregar un data grid con un checkbox en la primera columna, no recuerdo si los OCX que vienen con Visual Basic 6 te dan chance a hacerlo. Yo lo hacía pero con un OCX de pago.
Talvez te puede vale utilizar un listbox. Los listbox tienen una propiedad llamada "Style" que si la pones en valor "1" se convierte en una lista de selección.
Para saber si un item está seleccionado o no utilizas "[LISTA].selected([indice]]" para conseguir un valor falso o verdadero para saber si esta o no está seleccionado.
Para cargar, modificar, limpiar, etc. items de un listbox, se utilizan los mismos metódos que con un combobox.
Lo que mencionas de que cuando den click en un combobox se desplieguen datos en un grid, pues lo haces con el evento Click del combobox. Para saber que item es el "clickado" utilizas algo como Combo1.ListIndex. Si esto es igual a "-1" entonces no hay item seleccionado. No pierdas de vista que el índice del ítem en el combobox no tiene por qué coincidir siempre con el ID de la tabla de la base de datos. En el ejemplo utilicé una propiedad del item llamada "itemdata". Para conocer -en mi ejemplo- el ID de la base de datos del país seleccionado en el combobox podrías poner una función como esta:
Código vb:
Ver originalFunction getSelectedCountryId()
If Combo1.ListIndex > -1 Then getSelectedCountryId = -1: Exit Function
getSelectedCountryId = Combo1.ItemData(Combo1.ListIndex)
End Function
Y bueno... siempre me acusan de dar explicaciones muy largas...
Espero haberte ayudado en algo.
Si tienes más dudas, o dudas sobre mi respuesta, pues por aquí estaré.
¡Saludos!