Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

problema con informe

Estas en el tema de problema con informe en el foro de Bases de Datos General en Foros del Web. En access yo tengo un informe que me hace una suma total de horas. El caso es que necesito que me muestre las horas redondeadas, ...
  #1 (permalink)  
Antiguo 30/07/2008, 03:28
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 9 meses
Puntos: 1
problema con informe

En access yo tengo un informe que me hace una suma total de horas. El caso es que necesito que me muestre las horas redondeadas, por lo que en principio había creado un nuevo campo que cogiese el campo de la suma y lo mosrase ya redondeado.

Para explicarme mejor, tengo un campo llamado HorasTotales, cuyo origen de datos es =TimeToString(Suma([horas])). Después tengo un campo de texto llamado HorasTotales2 en el que no tiene nada y quiero mostrar las horas redondeadas.

Se me había ocurrido poner algo al abrir el informe, pero mis intentos acaban en fracaso, por lo que ya no se me ocurre nada más... En el informe tengo puesto lo siguiente:


Private Sub Report_Open(Cancel As Integer)
If (Minuto(Me.HorasTotales) > 30) Then
Me.HorasTotales2 = hora(HorasTotales) & ":" & (Minuto(Me.HorasTotales) = 30)
Else
Me.HorasTotales2 = Me.HorasTotales
End If
End Sub

Con esto lo que quiero es redondear los minutos (quiero empezar por ahí, porque si no me sale esto, después no lo puedo pulir >.<). Si los minutos pasan de 30, que se ponga a 30 minutos...
__________________
Cámara Oscura
Etheria
  #2 (permalink)  
Antiguo 30/07/2008, 04:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: problema con informe

koudelka, si has convertido a cadena la suma de horas con timetostring, lo mismo el problema es que estás tratando esa cadena como time, usando la función minute sobre ella. Intenta hacerlo como si de una cadena de texto se tratase y cogiendo los caracteres 4 y 5 desde la derecha (también habría segundos imagino) y cambiándolos como dices... es lo que se me ocurre
  #3 (permalink)  
Antiguo 30/07/2008, 05:04
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: problema con informe

Creo recordar (ya que esto lo paré hace una semana para ponerme con otra cosa >.<) es que intenté hacer lo que tu decías, cogiendo el numerito en cuestión (los minutos) y en caso de que fuese mayor de 30, se modificase a 30 el campo en donde lo cogía.

Era tan bonito que conseguía juntar las horas y los minutos (los tomaba por separado) en un sólo campo, quedándose redondeado a simple vista. El problema es que después con ese campo ya redondeado tenía que hacer nuevamente una suma y con el campo redondeado no me dejaba >.< Por eso pensé en hacerlo de esta manera.
__________________
Cámara Oscura
Etheria
  #4 (permalink)  
Antiguo 30/07/2008, 06:08
Avatar de Koudelka  
Fecha de Ingreso: febrero-2008
Mensajes: 397
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: problema con informe

acabo de encontrar en dónde tenía hecho esto mismo pero de otra manera (en la que consigo redondear pero no sumar).

Veamos, he creado 3 campos en el formulario, el primero tiene como origen =Hora([HorasTotales])). El segundo es donde redondeo a 30 y tengo puesto lo siguiente: =SiInm(Minuto([HorasTotales])>30;"30";(Formato(Minuto([HorasTotales]);"00")))

Ahora, creo un nuevo campo de texto en que cojo esos dos campos para juntarlos y hacerlo parecer que está en formato hora: =[horitas] & ":" & [minutillos]

El problema es que si intento sumar este tercer campo, me da error, ya que al abrir el informe me pregunta por el dato de ese campo.
__________________
Cámara Oscura
Etheria
  #5 (permalink)  
Antiguo 30/07/2008, 09:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: problema con informe

Te diré mi opinión, pues no manejo Access demasiado ahora y tampoco he hecho mucho uso de los cast, de las conversiones de tipo en Access.
Entiendo que puedas convertir modificar los datos desde fecha a una cadena y poner luego los minutos como desee, pero eso seguirá siendo una cadena. Para poder volver a sumarla tendrás que hacer una conversión a fecha de esa cadena, que imagino deberá contemplar la presencia de segundos.
CFecha()
introduce la cadena con IIf o SiInm dentro de ese CFecha() y creo que podrás sumarlas. Yo lo he probado en rejilla de consulta y no me dejaba agrupar y sumar la cadena de texto, pero sí dentro de ese CFecha(horitas] & ":" & [minutillos]&":00").
El problema tal vez sea que de nuevo sumen más de 24 horas y te saque días, etc. Pero primero hay que conseguir que sume...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:16.