Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/02/2008, 03:51
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: ayuda Datacombo Acces

Te pongo un ejemplo comentado.
En este caso son dos ComboBox que son mas manejables que el DataCombo y hacemos la conexión a la BD por código (sin ningún control Data)
En el Combo1 se muestran las ciudades y al seleccionar una de ellas, el Combo2 se carga con los nombres de los distritos de esa ciudad.

Código:
Option Explicit
' declaramos la conexión a nivel de módulo
' para que esté activa hasta salir
Dim cn As ADODB.Connection
' igualmente para el recordset
Dim rs As ADODB.Recordset

Private Sub Combo1_Click()
Dim iCod As Integer
' varible que hemos guardado en la propiedad ItemData del Combo1
iCod = Combo1.ItemData(Combo1.ListIndex)
' creamos un nuevo recordset con los distritos de la ciudad seleccionada
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM Distritos WHERE codCiudad = " & iCod, cn, adOpenStatic, adLockOptimistic
'limpiamos el Combo2 y cargamos los datos del recordset
Combo2.Clear
Do Until rs.EOF
    Combo2.AddItem rs!nombredistrito
    rs.MoveNext
Loop
rs.Close
End Sub

Private Sub Form_Load()
Dim sBase As String
    
sBase = App.Path & "\MiBaseDatos.mdb" ' suponemos que la BD está en el mismo directorio de la aplicación
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBase
rs.Open "SELECT * FROM Ciudad", cn, adOpenStatic, adLockOptimistic
Do Until rs.EOF
    ' cargamos en el combo el nombre de la ciudad y en la propiedad
    ' ItemData, el código de la misma
    Combo1.AddItem rs!nombCiudad
    Combo1.ItemData(Combo1.NewIndex) = rs!codCiudad
    rs.MoveNext
Loop
rs.Close
End Sub

Private Sub Form_Unload(Cancel As Integer)
' cerramos la BD y liberamos las variables
Set rs = Nothing
Set cn = Nothing
End Sub
Espero que lo puedas aplicar a tu proyecto.