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.