** 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

Tema cerradoAsignar Rango

 Responder Responder
Autor
Mensaje
Faviola Lira Ver desplegable
Nuevo
Nuevo


Unido: 07/Julio/2020
Localización: Chile
Estado: Sin conexión
Puntos: 1
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: 14720
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
Asiduo
Asiduo


Unido: 19/Enero/2013
Estado: Sin conexión
Puntos: 225
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
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5694
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