** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Calcular formula sumando +1
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Calcular formula sumando +1

 Responder Responder
Autor
Mensaje
zaraka Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Julio/2017
Localización: Argentina
Estado: Sin conexión
Puntos: 18
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita zaraka Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Calcular formula sumando +1
    Enviado: 04/Agosto/2017 a las 00:01
Buenos dias, tengo una tabla en la que cada columna corresponde a un mes de contrato. Estan diagramadas del Mes1 a Mes36. Lo hice asi porque cada contrato arrancan de meses distintos.
Entonces supongamos que hoy seria el mes 4 de su contrato, quiero que me devuelva el resultado de la columna Mes4.
Con esta formula que la he probado hasta el Mes 10 anda, pero en este caso me dice que es muy extensa para añadirle todos los meses y por eso no puedo añadirla:
SiInm(([DiferenciadeMeses]=1),[Mes1],SiInm(([DiferenciadeMeses]=2),[Mes2],SiInm(([DiferenciadeMeses]=3),[Mes3],SiInm(([DiferenciadeMeses]=4),[Mes4],SiInm(([DiferenciadeMeses]=5),[Mes5],SiInm(([DiferenciadeMeses]=6),[Mes6],SiInm(([DiferenciadeMeses]=7),[Mes7],SiInm(([DiferenciadeMeses]=8),[Mes8],SiInm(([DiferenciadeMeses]=9),[Mes9],SiInm(([DiferenciadeMeses]=10),[Mes10],SiInm(([DiferenciadeMeses]=11),[Mes11],SiInm(([DiferenciadeMeses]=12),[Mes12],SiInm(([DiferenciadeMeses]=13),[Mes13],SiInm(([DiferenciadeMeses]=14),[Mes14],SiInm(([DiferenciadeMeses]=15),[Mes15],SiInm(([DiferenciadeMeses]=16),[Mes16],SiInm(([DiferenciadeMeses]=17),[Mes17],SiInm(([DiferenciadeMeses]=18),[Mes18],SiInm(([DiferenciadeMeses]=19),[Mes19],SiInm(([DiferenciadeMeses]=20),[Mes20],SiInm(([DiferenciadeMeses]=21),[Mes21],SiInm(([DiferenciadeMeses]=22),[Mes22],SiInm(([DiferenciadeMeses]=23),[Mes23],SiInm(([DiferenciadeMeses]=24),[Mes24],SiInm(([DiferenciadeMeses]=25),[Mes25],SiInm(([DiferenciadeMeses]=26),[Mes26],SiInm(([DiferenciadeMeses]=27),[Mes27],SiInm(([DiferenciadeMeses]=28),[Mes28],SiInm(([DiferenciadeMeses]=29),[Mes29],SiInm(([DiferenciadeMeses]=30),[Mes30],SiInm(([DiferenciadeMeses]=31),[Mes31],SiInm(([DiferenciadeMeses]=32),[Mes32],SiInm(([DiferenciadeMeses]=33),[Mes33],SiInm(([DiferenciadeMeses]=34),[Mes34],SiInm(([DiferenciadeMeses]=35),[Mes35],SiInm(([DiferenciadeMeses]=36),[Mes36],"Renovar"))))))))))))))))))))))))))))))))))))

Queria saber si hay una forma de contar+1 y que me devuelva la columna Mes+1 correspondiente
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: España
Estado: en línea
Puntos: 9758
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita Mihura Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 04/Agosto/2017 a las 09:53
Supongamos que accedes al registro con un RecordSet y que la variable que contiene la diferencia de meses es i:

Set Rs = CurrentDb.OpenrecordSet("SELECT * FROM Mitabla WHERE ...", DbOpenForwardOnly)
If Rs.RecordCount <> 0 Then
i= 15
ElValorQueQuiero = Rs("Mes" & i)
End If
Rs.Close


Podrías hacer un bucle si quieres pasar por todos, etc.

Por cierto, comprueba el código, está escrito al vuelo.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
zaraka Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Julio/2017
Localización: Argentina
Estado: Sin conexión
Puntos: 18
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita zaraka Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Agosto/2017 a las 14:49
Uff! lo pruebo y te digo, tengo que masticar eso que pusiste
Arriba
zaraka Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Julio/2017
Localización: Argentina
Estado: Sin conexión
Puntos: 18
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita zaraka Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Agosto/2017 a las 14:51
Publicado originalmente por Mihura Mihura escribió:

Supongamos que accedes al registro con un RecordSet y que la variable que contiene la diferencia de meses es i:

Set Rs = CurrentDb.OpenrecordSet("SELECT * FROM Mitabla WHERE ...", DbOpenForwardOnly)
If Rs.RecordCount <> 0 Then
i= 15
ElValorQueQuiero = Rs("Mes" & i)
End If
Rs.Close


Podrías hacer un bucle si quieres pasar por todos, etc.

Por cierto, comprueba el código, está escrito al vuelo.
Esto me decis que lo coloque en un boton de un formulario?
Arriba
zaraka Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 28/Julio/2017
Localización: Argentina
Estado: Sin conexión
Puntos: 18
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita zaraka Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 12/Agosto/2017 a las 15:20
Mira estuve viendo y me conviene hacer esta tabla que aparece abajo, que me ahorro dos tablas con un contenido que seria duplicado.

Para eso mi idea seria crear un formulario como se ve en la imagen en donde el primer campo id del contrato, simplemente pongo el valor que corresponda.
En incremento, eligo las 2 opciones que tiene el campo 6 o 12 que corresponde a si el incremento es semenstral o anual.
En porcentaje de incremento tiene valores definidos de 10, 15, 20, etc.
y en años si es 2,3 años(tiene valores predefinidos 1,2 y 3). y en fecha inicial o final precisamente desde cuando comienza el contrato.

Entonces suponiendo:
contrato 1, comienzan el 1/8/17 y termina el 31/7/19 (2años).
el monto inicial sera 2000, incremento del 10% y sera semestral.

Entonces me gustaria que al pulsar el boton me creara en la tabla alquileres mensuales(la otra imagen)
cada renglon con los datos del monto en la columna alquiler Neto y en la columna id_mes el mes que iria o quizas mejor aun seria que coloque los primeros de cada mes (1/8/17,1/9/17,1/10/17 y asi sucesivamente)
formulariotabla alquileres

La pregunta del millon: esto es viable?
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable