Como reflejar una tabla de precios!

Hola Raul: Soy yo de nuevo, mira mi problema es el siguiente: tengo una tabla en la cual tengo los siguientes campos; [Hora Inicio], [Hora termino], [Total Tiempo], que es la diferencia entre hora termino-hora inicio, bueno de acuerdo al total tiempo tengo que cobrar un precio. Entonces en Excel por ejemplo podría hacer un si para comparar por ejemplo, si( "00:¿00"<[total Tiempo]<="00:15",300,si("00:15"<[Total Tiempo]<="00:30",500,0)), y asi pero los tiempos pueden variar desde 1 minuto hasta unas 9 horas, me entiendes?, pero no puedo anidar tantos si.
Tendré que hacer una macro o algo así, si es así por favor explicame como por favor!

1 Respuesta

Respuesta
1
No estoy muy seguro de entender la pregunta ya que de Excel casi no entiendo nada.
Habría que ver si calculas el Total Tiempo con la función DifFecha o con una resta entre los campos Hora Inicio y Hora Termino. Independientemente de esto
una solución fácil sería crear una tabla Precios y Tiempo.
Incluso si vas a cobrar siempre lo mismo por ese minuto o fracción de tiempo aún seria más fácil. Solo tendrías que usar algo parecido a esto en el Origen del control Precio: =[Total Tiempo]*x
donde x seria el Precio
Necesitaría que me explicaras un poco más como es lo que quieres evaluar, ya que si se tratará de crear una tabla con esos tramos desde 1 hasta 9 horas podríamos hacerlo por código.
Bueno queirdo Raul te explico:
Mira los tramos son los siguientes:
Entre 0 y 15 minutos, debo cobrar 300 pesos, entre 16 y 30 minutos debo cobrar 500, entre 31 y 45 minutos debo cobrar 700, entre 46 y 60 minutos 900, y luego se van sumando cada 15 minutos, osea entre 1 hora y 1 hora 15 minutos sera 900+300, luego 1:15 y 1:30 sera 900+500, entre 1:30 y 1:45 900+700, y entre 1:45 y 2:00 900+900, y así sucesivamente. Osea es una progresión, por eso yo creo que seria bueno un código. De lo contrario al crear una tabla en realidad deberían ser dos con una relación 1 a 1, supongo.
Muchas Gracias por tu tiempo y disposición de antemano.
Polilla
Disculpa el retraso, me costó un poco encontrar una función que me pasara Tiempo a minutos en una cadena númerica. Te explico lo que he hecho:
1º Una tabla con un ID autonumérico, un campo Hora inicio, otro Hora termino y otro TotalT, los tres son tipo-dato Fecha/Hora y formato Hora corta, un campo Precio numérico entero largo y formato moneda.
2º Un módulo estándar con la siguiente función:
Function timetomin(TotalT)
On Error GoTo desk:
timetomin = CInt(CDbl(TotalT) * 24 * 60)
desk:
Exit Function
End Function
3º Un formulario basado en la tabla con todos los campos, más un cuadro de texto independiente llamado Minutos.
4º En el Origen del control del campo TotalT le pones =([Hora termino]-[Hora Inicio])
5º En el Origen del control del campo independiente Minutos le pones =timetomin([TotalT])
6º En el evento Al Salir del campo independiente Minutos le pones:
If Minutos >= 0 And Minutos <= 15 Then
Precio = 300
ElseIf Minutos >= 16 And Minutos <= 30 Then
Precio = 500
ElseIf Minutos >= 31 And Minutos <= 45 Then
Precio = 700
ElseIf Minutos >= 46 And Minutos <= 60 Then
Precio = 900
ElseIf Minutos >= 61 And Minutos <= 75 Then ' 1 hora y 15 minutos
Precio = 1200
ElseIf Minutos >= 76 And Minutos <= 90 Then
Precio = 1400
ElseIf Minutos >= 91 And Minutos <= 105 Then
Precio = 1600
ElseIf Minutos >= 106 And Minutos <= 120 Then
Precio = 1800
ElseIf Minutos >= 121 And Minutos <= 135 Then '2 horas y 15 minutos
Precio = 2100
ElseIf Minutos >= 136 And Minutos <= 150 Then
Precio = 2200
ElseIf Minutos >= 151 And Minutos <= 165 Then
Precio = 2400
ElseIf Minutos >= 166 And Minutos <= 180 Then
Precio = 2600
ElseIf Minutos >= 181 And Minutos <= 195 Then '3 horas y 15 minutos
Precio = 2800
'El resto hasta las 9 horas tendrás que terminarlo tú, solo tienes que
'añadir tantos ElseIf como necesites.
End If
Un cordial saludo
Raul
NOTA: el código es un poco basto, pero no encuentro un bucle que haga algo más simple.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas