No hay ningún usuario pendiente con ese nick. Te pego el contenido (no queda muy bien pegado pero allá va)
Aunque no se trata de una función propiamente dicha, es un tema recurrente en el foro. Deciros que existe un ejemplo en la Web de Chea
http://jbengoechea.com/RptCp.htm#combosImaginemos que desarrollamos una aplicación para un taller de vehículos. Los vehículos pertenecen a una marca, que tiene diferentes modelos que, a su vez, tienen diferentes versiones.
En nuestro formulario continuo vemos, al principio, todos los vehiculos que han pasado por el taller, y en el encabezado del formulario hemos puesto 3 combos para poder filtrar los datos. El formulario esta basado en una consulta a la tabla Vehiculos: SELECT * FROM Vehiculos ORDER BY Matricula;
El primer combo se llama Marcas y esta basado en una consulta a la tabla del mismo nombre. SELECT IdMarca, NombreMarca FROM Marcas; 2 columnas, la primera dependiente y anchos 0cm;4cm
El segundo combo (Modelos) esta basado en una consulta a la tabla Modelos (esa tabla contiene un campo IdMarca que los relaciona con la tabla Marcas). SELECT IdModelo, IdMarca, NombreModelo FROM Modelos; 3 columnas, la primera dependiente y anchos 0cm;0cm;4cm
El tercer combo (Versiones) basado en una consulta a la tabla Versiones (que contiene un campo IdModelo que lo relaciona con la tabla Modelos). SELECT IdVersion, IdModelo, NombreVersion FROM Versiones; 3 columnas, la primera dependiente y anchos 0cm;0cm;4cm
Cuando abrimos el formulario, el primer combo nos muestra todas las marcas. Al seleccionar una de ellas se produce el evento AfterUpdate. Aquí es donde decidimos que el contenido del combo Modelos debe variar para mostrar solo los de esa marca.
Me!Modelos.RowSource = "SELECT IdModelo, IdMarca, NombreModelo FROM Modelos WHERE IdMarca=" & Me!Marcas & ";"
A continuación cambiamos el RecordSource del formulario para mostrar los vehículos que coinciden con esa Marca:
Me.RecordSource = "SELECT * FROM Vehiculos WHERE IdMarca = " & Me!Marcas & " ORDER BY Matricula;"
Ahora el combo Modelos solo muestra los de la marca escogida en el combo Marcas.
Al seleccionar un modelo, también en el AfterUpdate, debemos cambiar el contenido del combo Versiones:
Me!Versiones.RowSource = "SELECT IdVersion, IdModelo, NombreVersion FROM Versiones WHERE IdModelo=" & Me!Modelos & ";"
Y actualizar el RecordSource del formulario:
Me.RecordSource = "SELECT * FROM Vehiculos WHERE IdMarca = " & Me!Marcas & " And IdModelo = " & Me!Modelos & " ORDER BY Matricula;"
Al seleccionar una version, también en el AfterUpdate, actualizamos el RecordSource del formulario:
Me.RecordSource = "SELECT * FROM Vehiculos WHERE IdMarca = " & Me!Marcas & " And IdModelo = " & Me!Modelos & " And IdVersion = " & Me!Versiones & " ORDER BY Matricula;"
Ahora queremos restaurar esos combos para que nos muestren todos los registros. Ponemos un botón Restaurar que nos debe devolver los RowSources originales y dejar los combos en blanco. También cambiamos el RecordSource para devolverlo a su estado original.
Private Sub restaurar_Click()
Me!Marcas = Null
Me!Modelos.RowSource = "SELECT IdModelo, IdMarca, NombreModelo FROM Modelos;"
Me!Modelos = Null
Me!Versiones.RowSource = "SELECT IdVersion, IdModelo, NombreVersion FROM Versiones;"
Me!Versiones = Null
Me.RecordSource = "SELECT * FROM Vehiculos ORDER BY Matricula;"
End Sub
Te recomiendo que vuelvas a intentar el alta de usuario, veras que es un gran foro.