Access - agrupar horas para condición de macro

 
Vista:

agrupar horas para condición de macro

Publicado por edu (5 intervenciones) el 19/04/2006 01:24:26
En la base de datos tengo el campo [Hora].Quiero colocar como condición que entre detereminadas horas del día se establezca el valor "Turno Tarde" o "Turno mañana" en otro campo.
En la condición pongo: [Hora] Entre ValorHora(#10:30#) Y ValorHora(#14:00#) y en establecer valor en "mañana"
En la otra condición: [Hora] Entre ValorHora(#17:30#) Y ValorHora(#22:00#) y en establecer valor en "Tarde". Pues....NO funciona, me coloca el valor tarde o mañana según le rota a access. Ya estoy harto de leer el help y de probar de mil maneras. Si algun navegante con espiritu solidario tira un cable se lo agradezco...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:agrupar horas para condición de macro

Publicado por Enrique (1299 intervenciones) el 19/04/2006 08:59:21
Edu, prueba a poner las horas en la condición, en el sistema americano (horario de 12 horas AM y PM) aunque luego las introduzcas en nuestro sistema de 24 horas :

ValorHora(#10:30:00 AM#) Y ValorHora(#02:00:00 PM#)
ValorHora(#05:30:00 PM#) Y ValorHora(#10:00:00 PM#)

Realmente no lo he probado de esta forma, pero en un Evento usando código de VBA si lo he probado y funciona bien, como indico abajo. El Campo Hora tiene definido formato Hora corta en su propiedad:

If Hora >= #10:30:00 AM# And Hora <= #2:00:00 PM# Then Turno = "Manaña"
If Hora >= #5:30:00 PM# And Hora <= #10:00:00 PM# Then Turno = Tarde"

Cualquier hora no comprendida entre las indicadas, no muestra nada en el Campo del Turno.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agrupar horas para condición de macro

Publicado por Edu (5 intervenciones) el 19/04/2006 23:42:34
Enrique, Ya lo he probado con sistema americano a.m. y p.m. y tampoco va. Intentaré crear un modulo con VBA como dices. Generalmente le rehuyo a los codigos de VBA ya que si no lo haces al pie de la letra falla y no soy muy experto en el tema.
Gracias, ya de diré algo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agrupar horas para condición de macro

Publicado por Edu (5 intervenciones) el 20/04/2006 01:21:11
Enrique pongo el codigo para que al recibir el enfoque el campo PVP, se active el evento...pero nada, ya me lo imaginaba...si se te ocurre algo te lo agradecería.

Private Sub PVP_GotFocus()
If Hora >= #10:30:00 AM# And Hora <= #2:00:00 PM# Then Turno = "Manaña"
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agrupar horas para condición de macro

Publicado por Enrique (1299 intervenciones) el 20/04/2006 08:05:17
Edu, es evidente que algo no estás haciendo correctamente. Supongamos que tienes un Formulario con el Campo Hora que debe tener en sus propiedades Formato de Hora (Hora corta, Hora larga...), puede tener origen del registro en una tabla o ser Independiente. Luego tienes un Campo Turno (creo que tu lo llamas PVP). Si el campo es Independiente tendrías que teclear a mano la hora así: 14:00 (hora corta) o 14:00:00 (hora larga) y si tiene Origen en tabla la hora del primer registro aparecerá al abrir el formulario.
Pués bien, el Evento que has puesto debería de funcionar aunque tiene un pequeño error, el End If no hay que ponerlo cuando va todo en una sóla línea.

Si la Hora fuera por ejemplo 10:30 en el Campo PVP aparecerá "Mañana", pero ojo, si fuera 22:30 no aparece nada.

Private Sub PVP_GotFocus()
Hora = "" 'Esto es Nuevo y sirve para limpiar cada vez el campo Hora.
If Hora >= #10:30:00 AM# And Hora <= #2:00:00 PM# Then PVP = "Manaña"
End If 'ESTO TE MARCA UN ERROR Y DETIENE EL EVENT, QUÍTALO.
End Sub

Mira a ver si lo consigues y si no, te envío la mdb con la que estoy probando y que funciona.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agrupar horas para condición de macro

Publicado por Enrique (1299 intervenciones) el 20/04/2006 08:09:03
Edu, donde he puesto Hora = "" cambialo por PVP = "", pues se trata de limpiar el campo donde aparece "mañana" o "tarde" no el de la Hora.

Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agrupar horas para condición de macro

Publicado por Edu (5 intervenciones) el 22/04/2006 00:48:44
Enrique, lo estoy intentando y nada. Supongo que como esto no es magia, por algun lugar debe haber un error. Lo que me extraña es que si genero una consulta de horas Entre...Y... la consulta la coje bien, pero si ese mismo esquema lo paso a una macro no va. Esto es un programa para una tienda. El PVP, en realidad es el PVP, precio venta al público. Quiero que al recibir el enfoque de la tabulación cuando se pone el precio, ejecute la macro o evento, según la hora, y coloque en el campo turno "mañana" o "tarde".
Si tienes algún ejemplo y me lo puedes mandar por Mail te lo agradecería y si ves que es mucho rollo, no te preocupes, sequiré exprimiendo neuronas hasta que lo consiga.
Gracias, un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar