Cómo agregar registros a tablas a partir de cuadros combinados relacionados entre sí

Tengo una base de datos en Access en la que a cada registro le doy una ubicación específica de la siguiente manera: Primero el edificio donde se encuentra el bien mueble, dentro del edificio en una área en específico, dentro de esa área en una ubicación que puede ser en un estante, rack, gaveta o un archivero, y por último una Sub ubicación que puede ser el número de cajón u otro tipo de compartimiento, aunque no todos los bienes llegan a este nivel. Por ejemplo:

Edificio: Museo de Arte Contemporáneo
Área: Bodega planta alta
Ubicación: Archivero 10
Sub ubicación: Cajón 3

Las tablas correspondientes están relacionadas entre sí de la siguiente manera:

IdEdificio
Edificio

IdEdificio
IdÁrea
Área

IdÁrea
IdUbicación
Ubicación

IdUbicación
IdSubUbicación
SubUbicación

Agrego los registros de las nuevas ubicaciones conforme avanzo en la captura al ocurrir el evento "Al no estar en la lista", pero me topé con el siguiente inconveniente, al agregar una nueva Sub ubicación en la Ubicación que ya tenía dada de alta, en este caso "Archivero 10", esta nueva Sub ubicación no se mostraba en mi formulario, al revisar las tablas me percato que se había agregado correctamente, pero en el Archivero 10 de la Bodega planta baja, esto sucede debido a que la relación no llega hasta este nivel, por lo que yo necesitaría saber a que bodega corresponde el Archivero 10, planta alta o planta baja. Espero haberlo explicado de manera clara, seguro estoy que algún Experto me puede apoyar para dar solución a este problema y agradezco de antemano su apoyo y atención.

Respuesta
2

Vamos a suponer que en el evento Al no estar en lista del combinado Producto tienes una instrucción que te abre el formulario Productos para que lo des de alta, por ejemplo

Private Sub producto_NotInList(NewData As String, Response As Integer)
Dim Productonuevo As Integer, título As String, mensaje As Integer
título = "El Producto que ha escrito no está en la lista"
mensaje = vbYesNo + vbDefaultButton1
Productonuevo = MsgBox("¿Desea agregar este producto a la lista ?", mensaje, título)
If Productonuevo = vbYes Then
DoCmd.RunCommand acCmdUndo
DoCmd.OpenForm "Productos", acNormal, "", "", acAdd, acDialog
Response = acDataErrAdded
End If
End Sub

Pues precisamente la línea

Response=... hace que ya te aparezca ese valor nuevo en el combinado

Y sino, también puedes ponerle, en el evento Al recibir el enfoque de ese cuadro combinado Producto

Producto. Requery

Esto hace que en cuanto pongas el cursor en dicho combinado, "reconsulta" su origen de la fila.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas