** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Asignar Rango
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Asignar Rango

 Responder Responder
Autor
Mensaje
Faviola Lira Ver desplegable
Nuevo
Nuevo


Unido: 07/Julio/2020
Localización: Chile
Estado: Sin conexión
Puntos: 1
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Faviola Lira Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Asignar Rango
    Enviado: 07/Julio/2020 a las 04:15
Necesito ver la forma de asignar una fecha a un numero de acuerdo a si es mayo o menor que, pero con una lista grande de rangos para access

en excel tengo esta formula =INDICE(Fecha!A:C;COINCIDIR((A2*1);Fecha!B:B;-1);3)

Entrega Inicial Entrega Final  Fecha
84000000 88000000 01-01-9999
81870392 82000000 06-07-2020
81870353 81870391 05-07-2020
81870051 81870352 04-07-2020
81869091 81870050 03-07-2020
81867551 81869090 02-07-2020
81866577 81867550 01-07-2020
81865749 81866576 30-06-2020
81865532 81865748 29-06-2020
81865268 81865531 27-06-2020
81864689 81865267 26-06-2020
81863903 81864688 25-06-2020
81862945 81863902 24-06-2020
81862197 81862944 23-06-2020
81861142 81862196 22-06-2020
81861004 81861141 21-06-2020
81860826 81861003 20-06-2020
81859986 81860825 19-06-2020


Por lo tanto si mi registro dice 81869200 entonces me trae la fecha 03-07-2020



Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 13015
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita xavi Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 07/Julio/2020 a las 13:29
Hola Faviola y bienvenida al foro,

En Access no existe (hasta dónde yo se) una función equivalente a COINCIDIR que permita indicar el valor mayor o menor. La forma seria una consulta que, ordenando por el campo EntregaFinal DESCENDENTE, filtrada a un valor menor o igual al de referencia y devolviendo 1 solo registro, tomara el campo Fecha:

(obviando declaraciones y otras instrucciones)
Set rst = CurrentDb.OpenRecordset("SELECT TOP 1 Fecha FROM miTabla WHERE EntregaFinal <=" & Me!txtEntregaFinal & " ORDER BY EntregaFinal DESC")
Msgbox "La fecha podria ser: " & rst!Fecha


Escrito al vuelo
Xavi, un minyó de Terrassa

Mi web
Arriba
fcoval Ver desplegable
Habitual
Habitual


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 168
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita fcoval Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 07/Julio/2020 a las 14:54
Otra opción seria usar Dlookup :

Cita

Sub Obtener_Fecha()

'** Creas una tabla llamada NombreTabla con los campos :
' - Entrega Inicial y Entrega Final (numericos)
' - Fecha (fecha)


Dim QueValorBusco As Double
Dim FechaObtenida As Date


QueValorBusco = 81865748

FechaObtenida = Nz(DLookup("[Fecha]", "[NombreTabla]", "[Entrega Inicial] <= " & QueValorBusco & " AND " & "[Entrega Final] >= " & QueValorBusco), #1/1/9999#)


Debug.Print FechaObtenida


End Sub

Arriba
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5212
Opciones de entrada Opciones de entrada   Gracias (1) Gracias(1)   Cita emiliove Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 07/Julio/2020 a las 15:52
Hola Fcoval

No necesitas utilizar ambas columnas solo con que utilices una de las dos es suficiente algo como:

=DLookup("[Fecha]","[NombreTabla]","[EntregaInicial] <= " & [ValorBusco])

Saludos.

PD: Los campos separados dan problemas yo los prefiero juntos "EntregaInicial"


Editado por emiliove - 07/Julio/2020 a las 15:54
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable