Buscar registro especifico en una tabla de access

Estoy experimentando en Access y eh llegado a una encrucijada. Tengo una tabla con registro de distancias entre ciudades, eh probado con consultas tabla referencias cruzadas, consulta sobre consulta y no logro conseguir el registro.

Este es mi formulario donde quiero buscar la información y me muestre el resultado

.- ORIGEN; depende de las filas

.- DESTINO; depende de las columnas

.- KM; es el valor del registro de la celda donde se cruzan

Este es mi tabla con los registros

Espero puedan entender lo que quiero lograr y me puedan ayudar con el comando VBA para ejecutar la búsqueda coincidente.

Respuesta
1

Es de suponer que tienes tantas columnas como filas en tu tabla. En ese caso, puedes hacerlo así:

En el evento "Después de actualizar" del segundo combinado, o en "al entrar" o "al recibir el enfoque" del cuadro de texto pones este código:

If Nz(Me.Origen)="" Then
  MsgBox "Tienes que seleccionar un Origen"
  Me.Origen.SetFocus
  Exit Sub
End If
If Nz(Me.Destino)="" Then
  MsgBox "Tienes que seleccionar un Destino"
  Me.Destino.SetFocus
  Exit Sub
End If
Me.KM=DLookup("[" & Me.Origen & "]","ZonaSur","Destino='" & Me.Destino & "'")

Gracias por tu respuesta, la puse en ejecución pero me presenta error

Creo que algo estoy haciendo mal, o estaré confundiendo las búsquedas.. te adjunto mi link de mi data para que puedas revisarla https://1drv.ms/u/s!An72VgL_xDdIgtEd2cV29vaDG5OERQ?e=WgWmJT, espero puedas ayudarme...

Gracias...

Vale, lo que no has dicho es que los cuadros combinados trabajan con el id y no con los nombres de las poblaciones.

Ponlo así, ya verás como funciona:

Private Sub Destino_AfterUpdate()
If Nz(Me.Origen) = "" Then
MsgBox "Tienes que seleccionar un Origen"
Me.Origen.SetFocus
Exit Sub
End If
If Nz(Me.Destino) = "" Then
MsgBox "Tienes que seleccionar un Destino"
Me.Destino.SetFocus
Exit Sub
End If
Me.KM = DLookup("[" & Me.Origen.Column(1) & "]", "ZonaSur", "Destino='" & Me.Destino.Column(1) & "'")
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas