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

Tema cerradoProblemas con fechas y horas

 Responder Responder
Autor
Mensaje
Absalón Ver desplegable
Nuevo
Nuevo


Unido: 27/Marzo/2021
Localización: Málaga
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Tema: Problemas con fechas y horas
    Enviado: 19/Noviembre/2022 a las 11:50

¡!!Hola a todos¡¡¡

Paso a exponeros un problemilla que me ha surgido y que igual tiene una solución facilísima, pero por más vueltas que le he dado no he conseguido resolver:

Estoy confeccionando una base de datos para el control de actividades de voluntariado para lo cual tengo 2 tablas: Voluntarios y Actividades.

Para la gestión de las actividades de los voluntarios tengo un formulario que, entre otros, tiene los siguientes campos:

Codigo (de la tabla Voluntarios – numérico)

FechaD (Fecha corta)     HoraD (Hora corta) estos pasan al campo FHDVol  -  Fecha y Hora Desde

FechaH (Fecha corta)     HoraH (Hora corta) estos pasan al campo FHHVol  - Fecha y Hora Hasta

Los campos FHDVol y FHHVol de tipo texto y formato “00/00/000 00:00”.

Para controlar FechaD y HoraD y no introducir fecha y hora de comienzo duplicada de un mismo voluntario, utilizo lo siguiente:

If DCount(“[Codigo]”,”Actividades”,”[Codigo] = “ & Me.Codigo & “ AND [FHDVol] =’” & FHDVol & “’”) >0 Then

Lo que no consigo solucionar, y lo he intentado de incontables formas, es cuando al introducir los datos de FechaH y HoraH (y pasado a FFFVol), al introducir la HoraH me deje continuar si son correctos o me diga que ya existe una actividad del mismo voluntario y dentro de ese rango de comienzo y fin.

EJEMPLO:

Actividad grabada: Voluntario, Código: 00001

FechaD: 10/10/2022  HoraD: 09:00   FHDVol: “10/10/2022 09:00”

FechaH: 10/10/2022  HoraH: 13:45   FHHVol: “10/10/2022 13:45”

 

Nuevo registro: Voluntario, Código: 00001

FechaD: 10/10/2022   HoraD: 10:00   FHDVol: “10/10/2022 10:00”

FechaH: 10/10/2022   HoraH: 13:00   FHHVol: “10/10/2022 13:00”

No sería correcto ya que entra dentro del rango de la actividad grabada

 

Nuevo registro: Voluntario, Código: 00001

FechaD: 10/10/2022   HoraD: 08:00   FHDVol: “10/10/2022 08:00”

FechaH: 10/10/2022   HoraH: 09:00   FHHVol: “10/10/2022 09:00”

Sería correcto ya que no entra dentro del rango de la actividad grabada

 

Gracias de antemano por vuestra ayuda y si consideráis que se puede hacer de una mejor forma adelante con ello.

 

Un saludo y gracias mil 

Un saludo
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 20/Noviembre/2022 a las 12:37
https://accessaplicaciones.com/ejemplos.html#m11

A ver si te aclara algo.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
Absalón Ver desplegable
Nuevo
Nuevo


Unido: 27/Marzo/2021
Localización: Málaga
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 20/Noviembre/2022 a las 19:42
Gracias Jesús;

Le echo un vistazo a lo que me has mandado y te cuento.

Saludos desde Marbella
Paco
Un saludo
Arriba
Absalón Ver desplegable
Nuevo
Nuevo


Unido: 27/Marzo/2021
Localización: Málaga
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 26/Noviembre/2022 a las 13:09
De antemano darte las gracias Jesús por tu aporte y decirte que me aclara las cosas bastante, lo que no consigo ver es dónde me equivoco para que me diga que los datos son de distinto tipo, lo trancribo para que me digas qué hago mal:

En primer lugar en un módulo pongo esto:

Function MiFechaSQL(fecha As Date) As String
     MiFechaSQL = "#" & Format(fecha, "mm/dd/yyyy") & "#"
End Function

Function MiHoraSQL(Hora As Date) As String
     MiHoraSQL = "#" & Format(Hora, "hh:mm") & "#"
End Function

Ya en el formulario e introducidas las fechas (desde y hasta) y la hora (desde), y después de introducir la Hora (hasta) y antes de actualizar éste último campo, pongo los siguiente:

Set MiActividad = CurrentDb.OpenRecordset("SELECT Codigo FROM Actividades WHERE FechaD = " & MiFechaSQL(Me.FechaD) & " AND ((" & MiHoraSQL(Me.HoraD) & "<= HoraH) AND (" & MiHoraSQL(Me.HoraH) & " >= HoraD))")

Pues bien en éste punto es donde me indica que los datos son de distinto tipo.

No consigo ver dónde me equivoco o qué estoy haciendo mal.

Gracias Jesús
Un saludo

Un saludo
Arriba
Absalón Ver desplegable
Nuevo
Nuevo


Unido: 27/Marzo/2021
Localización: Málaga
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 26/Noviembre/2022 a las 20:47
Buenas tardes;

Después de algunas vueltas lo he solucionado, adaptando lo que me indicabas en el vínculo, de la siguiente forma:

If DCount("[Codigo]", "Actividades", "[Codigo] = " & Me.Codigo & " AND [FechaD] = " & MiFechaSQL(Me.FechaD) & " AND ((" & MiHoraSQL(Me.HoraD) & "<= HoraH) AND (" & MiHoraSQL(Me.HoraH) & " > HoraD))") <> 0 Then

Lo he probado introduciendo distintas fechas y horas y funciona perfectamente.

Agradezco tu atención, no sabes cómo, y salvo que quieras hacerme alguna salvedad al respecto, puedes dar por finalizado éste hilo.

Gracias
Un saludo
Un saludo
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: Sin conexión
Puntos: 13990
Enlace directo a este mensaje Enviado: 27/Noviembre/2022 a las 10:19
Gracias a ti por la solución.
Thumbs Up
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable