Ok, así explicado cambia un poco la cosa. Te adjunto un mini-ejemplo, que creo es lo que quieres (usé otros nombres más de mi estilo, así que tendrás que adaptarlo a los tuyos): http://www.filebig.net/files/urHFP7JtGs
Te explico por encima:
En el primer cuadro combinado (vehiculo1, que guardará en la tabla el IDvehiculo en el campo con el mismo nombre vehiculo1), seleccionas todos los vehiculos:
SELECT TVehiculos.IdVehiculo, TVehiculos.Matricula FROM TVehiculos;
Y en el evento "Después de actualizar", guardas los datos y recargas el siguiente cuadro combinado (vehiculo2), con el código:
Private Sub vehiculo1_AfterUpdate()
DoCmd. RunCommand acCmdSaveRecord
Me. Vehiculo2. Requery
End Sub
A este segundo cuadro combinado, como origen de la fila, le pones esta SQL:
SELECT TVehiculos.IdVehiculo, TVehiculos.Matricula FROM TVehiculos WHERE IdVehiculo<>Forms!FUsos!vehiculo1 OR IdVehiculo IN (SELECT vehiculo2 FROM TUsos WHERE IDUso=Forms!FUsos!IDUso);
Es decir, que te seleccione los vehículos menos el que está seleccionado en el combo uno (IdVehiculo<>Forms! FUsos! Vehiculo1). Además, fíjate que le añado otra condición, con un OR, para que muestre también el vehículo almacenado en ese campo para ese ID. Esto lo hago para evitar lo que comenta Neckkito en su mensaje. Si quieres probarlo, quita esa segunda condición, y verás que al navegar por los registros (y al haber 7 coches y solo 5 combos) hay combos que aparecen en blanco aunque en la tabla sí tienen datos guardados correctamente.
En el evento "Después de actualizar" hacemos la misma operación para el siguiente combo (vehiculo3):
Private Sub vehiculo2_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.vehiculo3.Requery
End Sub
La SQL para el tercer cuadro combinado sería:
SELECT TVehiculos.IdVehiculo, TVehiculos.Matricula FROM TVehiculos WHERE IdVehiculo<>Forms!FUsos!vehiculo1 AND IdVehiculo<>Forms!FUsos!vehiculo2 OR IdVehiculo IN (SELECT vehiculo3 FROM TUsos WHERE IDUso=Forms!FUsos!IDUso);
Es decir, como condiciones le ponemos que no esté en vehiculo1 ni en vehiculo2 o que ya esté en vehiculo3 para el registro actual.
En "después de actualizar" lo mismo para el siguiente combo.
Y así seguirías añadiendo condiciones a los restantes cuadros combinados de vehiculos.
Para los conductores la mecánica sería exactamente la misma, y al ejemplo me remito.
Por último, en orden de que funcione todo correctamente (y me refiero a las condiciones OR), tienes que recargar los cuadros combinados cada vez que cambias de registro para que muestren los datos que ya están guardados. Eso lo haces en el evento "Al activar regsitro" del formulario, con el código:
Private Sub Form_Current()
Me. Conductor2. Requery
Me. Conductor3. Requery
Me. Conductor4. Requery
Me. Conductor5. Requery
Me. Vehiculo2. Requery
Me. Vehiculo3. Requery
Me. Vehiculo4. Requery
Me. Vehiculo5. Requery
End Sub
Creo que esto es lo que buscas, si no, seguimos mirando posibilidades.
Un saludo