Pues directamente una consulta no creo que se pueda hacer, pero a ver si esta alternativa te sirve:
1º/ Creas un formulario con dos cuadros de texto independientes (txtCiudad y txtKilos) para introducir los datos que quieres consultar, un botón de comando (cmdConsultar) y otro cuadro de texto independiente para mostrar el resultado
2º/ En el botón le programas este código:
Private Sub cmdConsultar_Click()
'Comprobaciones previas
If IsNull(Me.txtCiudad) Or Me.txtCiudad = "" Then
MsgBox "Introduzca una ciudad", vbInformation + vbOKOnly, "SIN DATOS"
Me.txtCiudad.SetFocus
End If
If IsNull(Me.txtKilos) Or Me.txtCiudad = "" Then
MsgBox "Introduzca una cantidad", vbInformation + vbOKOnly, "SIN DATOS"
Me.txtKilos.SetFocus
End If
If Not IsNumeric(Me.txtKilos) Then
MsgBox "Tienes que poner una cantidad en el cuadro kilos", vbInformation + vbOKOnly, "DATOS INCORRECTOS"
Me.txtKilos.SetFocus
End If
'Buscamos el dato
On Error GoTo sol_err
Dim rst As DAO.Recordset
Dim miSQL As String
miSQL = "SELECT Ciudad, [" & Me.txtKilos & "] FROM Tabla1 Where Ciudad='" & Me.txtCiudad & "'"
Set rst = CurrentDb.OpenRecordset(miSQL)
If rst.RecordCount = 0 Then
Me.txtPrecio = "Sin datos"
Else
Me.txtPrecio = rst(1)
End If
rst.Close
Set rst = Nothing
sol_err:
If Err.Number = 3061 Then
MsgBox "Cantidad no disponible", vbInformation + vbOKOnly, "DATOS INCORRECTOS"
Me.txtKilos.SetFocus
Else
MsgBox Err.Number & ":" & vbCrLf & Err.Description
End If
End Sub
Tendrás que cambiar "Tabla1" por el nombre de tu tabla.
Te subo un mini-ejemplo para que lo veas "en acción"