No sé como son tus tablas por eso tengo que suponer. Mira, yo tengo una tabla Continentes(la idea era poner las cinco ciudades más importantes de cada país del mundo, pero me aburrí y sólo terminé Europa, así que vamos a usarlo
Como los continentes no se van a repetir, he puesto el campo como clave. Luego tengo la tabla Paises, relacionada con la anterior por continente(sería exactamente igual que si usaras un Id)
No te preocupes, no la rellené a mano, para eso está el update y por último tengo la tabla Ciudades, relacionada con la anterior por Pais
En un formulario, da igual si tiene origen de registros como si es independiente, creo los combinados y el origen de la fila lo dejo en blanco
En sus propiedades-Eventos-Al recibir el enfoque del combinado continente creo un proc. De evento y pongo
Private Sub Continente_GotFocus()
Continente.RowSource = "select continente from continentes"
End Sub
Ya que sólo voy a usar una columna, pero podían perfectamente ser 2, una para el idContinente y otra para el continente y ocultar la del Id, aunque seguiría siendo la columna dependiente
En el combinado Pais en el mismo evento que el anterior le pongo
Private Sub Pais_GotFocus()
Pais.RowSource = "select pais from paises where continente='" & Me.Continente & "'"
End Sub
y en el combinado Ciudad le pongo
Private Sub Ciudad_GotFocus()
Ciudad.RowSource = "select ciudad from ciudades where pais='" & Me.Pais & "'"
End Sub
De forma que cuando abro el formulario lo veo así
Cuando pongo el cursor en Continente(en la flechita para que se despliegue)
Elijo Europa y cuando pongo el cursor en Pais
Elijo Alemania y cuando pongo el cursor en el combinado Ciudad
Y así se iría haciendo con todos los combinados que quieras, el origen de la fila se lo dá el combinado anterior cuando elijes algo.