Como poner una tabla de access con datos en combobox
Quiero que cuando haga clip en el combox me traiga una tabla con los datos de access y que cuando clique me cargue esos cambo en los text que están identificados con los mismos datos de la tabla. Estoy utilizando adodc y lo estoy conectando manualmente. Esto es algo de lo que quiero: file:///C:/Documents%20and%20Settings/Administrador/Escritorio/imagen/Sin%20t%C3%ADtulo1.bmpfile:///C:/Documents%20and%20Settings/Administrador/Escritorio/imagen/Sin%20t%C3%ADtulo2.bmpfile:///C:/Documents%20and%20Settings/Administrador/Escritorio/imagen/Sin%20t%C3%ADtulo3.bmpfile:///C:/Documents%20and%20Settings/Administrador/Escritorio/imagen/Sin%20t%C3%ADtulo4.bmp
Pues así como entendí tu pregunta, primero quieres que se carguen los datos en un Combobox y los muestre en los textbox, acá te dejo el código de un Modulo para que cargues los datos que quieras a un combobox. Primero tienes que hacer un Módulo con el siguiente código: 'Módulo para cargar el Combobox Option Explicit ' declaraciones api Private Declare Function SendMessageByString& _ Lib "user32" _ Alias "SendMessageA" ( _ ByVal hWnd As Long, _ ByVal wMsg As Long, _ ByVal wParam As Long, _ ByVal lParam As String) ' función que deshabilita el repintado de una ventana en windows Private Declare Function LockWindowUpdate& Lib "user32" (ByVal hwndLock As Long) Private Const CB_ADDSTRING& = &H143 Private Const LB_ADDSTRING As Long = &H180 ' Función que carga el campo en el combobox Public Function Cargar(ElControl As Object, rst As ADODB.Recordset, Columna As String) As Boolean Dim ret As Long Dim Mensaje_SendMessage As Long On Error GoTo error_function: ' verifica que el recordset contenga un conjunto de registros If rst.BOF And rst.EOF Then MsgBox " No hay registros para agregar", vbInformation Call LockWindowUpdate(0&) Exit Function 'sale End If ElControl.Parent.MousePointer = vbHourglass ' Chequea con TypeName el tipo de control enviado como parámetro If TypeName(ElControl) = "ComboBox" Then Mensaje_SendMessage = CB_ADDSTRING& ' mesanje para SendMessage ElseIf TypeName(ElControl) = "ListBox" Then Mensaje_SendMessage = LB_ADDSTRING ' mesanje para SendMessage End If ' deshabilita el repintado del control para que cargue los datos mas rapidamente Call LockWindowUpdate(ElControl.hWnd) DoEvents ' Posiciona el recordset en el primer registro rst.MoveFirst ' elimina todo el contenido del combo o listbox( opcional ) ElControl.Clear ' recorre las filas del recordset Do Until rst.EOF ' chequea que el valor no sea un nulo If Not IsNull(rst(Columna).Value) Then 'Agrega el dato en el control con el mensaje CB_ADDSTRING o LB_ADDSTRING dependiendo del tipo de control ret = SendMessageByString(ElControl.hWnd, Mensaje_SendMessage, 0, rst(Columna).Value) End If rst.MoveNext 'siguiente registro Loop ' selecciona el primer elemento del listado If ElControl.ListCount > 0 Then ElControl.ListIndex = 0 End If ' vuelve a habilitar el repintado Call LockWindowUpdate(0&) ' retorno Cargar = True ' reestablece el puntero del mouse ElControl.Parent.MousePointer = vbNormal Exit Function ' rutina de error error_function: MsgBox Err.Description, vbCritical ' En caso de error vuelve a activar el repintado Call LockWindowUpdate(0&) ElControl.Refresh ElControl.Parent.MousePointer = vbNormal End Function Ahora pega esto en el evento LOAD del formulario para iniciar la conexion y el recordset: Private Sub Form_Load() On Error Resume Next Set cnn = New ADODB.Connection cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source =" & App.Path & "\bd1.mdb; " & _ "Persist Security Info=False" cnn.CursorLocation = adUseClient cnn.Open Set rst = New ADODB.Recordset rst.Open "Select * From Tabla2", cnn, adOpenStatic, adLockOptimistic Call Cargar(Combo1, rst, "modelo") ' <-- Mandamos llamar la función del Módulo End Sub Y ahora cuando estes en el combobox en la propiedad "Click" iria este codigo: Private Sub Command1_Click() If Combo1.Text <> "" Then Else MsgBox "Selecciona un modelo", vbInformation, "Aviso" Exit Sub End If rst.Filter = "modelo" & " LIKE " + Combo1.Text + "" Text1.Text = rst(1) Text2.Text = rst(2) End Sub