mira disculpa la demora, pero si todavia te sirve te explico lo que pasa es que yo me conecto a la base de datos por codigo sin necesidad de un control
entonces el codigo es asi:
'Dimencionar variable de cadena de conexion
dim strConnection as string
'Dimencionar variable de comando
dim cmd as string
'Dimensionar variable de conexion
dim cnXX as new adodb.connection
'Dimensionar variable de recordset
dim rsXX as new adodb.recordset
'Sentencia de error por si hay un error para que te avise
on error goto ADODBError Events
'cadena de conexion
strconnection="Provider=Microsoft.jet.oledb.4.0;"
strconnection=strconnection & "Persist security info=false;"
strconnection=strconnection & "data source=Pones la ruta de tu base de datos;"
strconnection=strconnection & "Mode=readWrite"
'Luego abris la conexion
cnXX.connectionstring=strconnection
cnXX.connectiontimeout=10
cnxx.cursorlocation=adusenone
cnXX.opne
'Luego una vez abierto la conexion empecesa a buscar con el recordset
'primero le pedis que haga algo con select osea con comandos de sql ejemplo
'select * from producto elige todos los datos de la tabla productos"
rsXX.open "Select * from productos",cnXX,adopendynamic,adlockoptimistic,adcmdtetxt
'entonces ahi es donde usas el rsXX para el recordset y ! para especificar el campo y luego el nombre del campo ej
rsXX!Descripcion=boxproddesc.text
'Luego cerrar todo
set rsXX =nothing
set cnXX=Nothing
exit sub
ADODBErrorEvents:
msgbox & err.description
bien espero te haya serviso la explicacion
saludos