Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dlookup con varios criterio

2,254 views
Skip to first unread message

Fabricio

unread,
Feb 18, 2010, 2:28:16 PM2/18/10
to
Hola amigos estoy al borde del colapso, nesecito su ayuda urgente:
Me explico; el script adjunto lo que debe hacer es direccionar la hora
a un campo dependiendo si un trabajador ya se registro antes o no
entonces buscara el trabajador que es un numero y la fecha en una
tabla que se llama asistencia si en la tabla el trabajador no figura
en la fecha de hoy entonces marcara hora de entrada y si ya se
registro el dia de hoy entonces marcara salida. El script es como
sigue pero no me funciona, me bota "error no coinciden los tipos".

En la funcion Dlookup de deben de cumplirse dos criterios al mismo
tiempo el [Trabajador] y [Fecha]

Para esto:

La tabla se llama Asistencia
Los Campos: idregistro, trabajador, fecha, entrada, salida

El script lo aplico en un formulario que se llama tambien Asistencia y
tambien llevan controles con los mismos nombres(trabajador, fecha,
entrada, salida) todos los controles son cuadros de texto y el script
esta en el cuadro de texto [Trabajador].

Private Sub Trabajador_AfterUpdate()
If DLookup("[Trabajador]", "Asistencia", "[Trabajador]" = " & Me!
[Trabajador]" And "[fecha]=#&Date()&#") = Me![Trabajador] Then
Me![Nombres] = DLookup("[Nombres]", "Trabajadores",
"[IdTrabajador]=" & Me![Trabajador])
Me![Apellidos] = DLookup("[Apellido Paterno]&' '&[Apellido
Materno]", "Trabajadores", "[IdTrabajador]=" & Me![Trabajador])
Me![OLEDependiente12] = DLookup("[Fotografia]", "Trabajadores",
"[IdTrabajador]=" & Me![Trabajador])
Me![Fecha] = Date
Me![Salida] = Time()
Else
Me![Nombres] = DLookup("[Nombres]", "Trabajadores",
"[IdTrabajador]=" & Me![Trabajador])
Me![Apellidos] = DLookup("[Apellido Paterno]&' '&[Apellido
Materno]", "Trabajadores", "[IdTrabajador]=" & Me![Trabajador])
Me![OLEDependiente12] = DLookup("[Fotografia]", "Trabajadores",
"[IdTrabajador]=" & Me![Trabajador])
Me![Fecha] = Date
Me![Entrada] = Time()
End If
End Sub

Ju@nK

unread,
Feb 18, 2010, 4:27:53 PM2/18/10
to
En la parte ...

DLookup("[Trabajador]", "Asistencia", "[Trabajador]" = " & Me!
[Trabajador]" And "[fecha]=#&Date()&#")

...

Tienes mal las comillas, prueba

DLookup("[Trabajador]", "Asistencia", "[Trabajador] = " & Me![Trabajador] &
" And [fecha]=#" & Date() & "#")

y si trabajador es un string, debes poner comillas simples tambien:


DLookup("[Trabajador]", "Asistencia", "[Trabajador] = '" & Me![Trabajador] &
"' And [fecha]=#" & Date() & "#")


"Fabricio" <fabri...@gmail.com> escribi� en el mensaje de
noticias:1dcc586c-18fb-4527...@a13g2000vbf.googlegroups.com...

--
--
**
Salu2/Regards
Ju@nK [MVP Access] 2006/10
[DCE2003 ***] + VSTO [DCE2005 **]
http://juank.mvps.org http://www.juank.es
Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank?hl=es
www.juank.es
�Que es un MVP?, ent�rate en http://mvp.support.microsoft.com
**

Fabricio

unread,
Feb 19, 2010, 12:01:26 PM2/19/10
to
On 18 feb, 16:27, "Ju@nK" <con...@hotmail.com> wrote:
> En la parte ...
>
> DLookup("[Trabajador]", "Asistencia", "[Trabajador]" = " & Me!
> [Trabajador]" And "[fecha]=#&Date()&#")
> ...
>
> Tienes mal las comillas, prueba
>
> DLookup("[Trabajador]", "Asistencia", "[Trabajador] = " & Me![Trabajador] &
> " And [fecha]=#"  & Date() & "#")
>
> y si trabajador es un string, debes poner comillas simples tambien:
>
> DLookup("[Trabajador]", "Asistencia", "[Trabajador] = '" & Me![Trabajador] &
> "' And [fecha]=#"  & Date() & "#")
>
> "Fabricio" <fabrici...@gmail.com> escribió en el mensaje de
> noticias:1dcc586c-18fb-4527-9a4c-7667f68e2...@a13g2000vbf.googlegroups.com...
> [DCE2003 ***] + VSTO [DCE2005 **]http://juank.mvps.orghttp://www.juank.es

> Correos personales o preguntas particulares en mi grupohttp://groups.google.es/group/juank?hl=eswww.juank.es
> ¿Que es un MVP?, entérate enhttp://mvp.support.microsoft.com
> **

Gracias probare con eso, [Trabajador] no es un string es un campo de
la tabla "Asistencia".

Fabricio

unread,
Feb 19, 2010, 12:36:40 PM2/19/10
to
On 18 feb, 16:27, "Ju@nK" <con...@hotmail.com> wrote:
> En la parte ...
>
> DLookup("[Trabajador]", "Asistencia", "[Trabajador]" = " & Me!
> [Trabajador]" And "[fecha]=#&Date()&#")
> ...
>
> Tienes mal las comillas, prueba
>
> DLookup("[Trabajador]", "Asistencia", "[Trabajador] = " & Me![Trabajador] &
> " And [fecha]=#"  & Date() & "#")
>
> y si trabajador es un string, debes poner comillas simples tambien:
>
> DLookup("[Trabajador]", "Asistencia", "[Trabajador] = '" & Me![Trabajador] &
> "' And [fecha]=#"  & Date() & "#")
>
> "Fabricio" <fabrici...@gmail.com> escribió en el mensaje de
> noticias:1dcc586c-18fb-4527-9a4c-7667f68e2...@a13g2000vbf.googlegroups.com...
> [DCE2003 ***] + VSTO [DCE2005 **]http://juank.mvps.orghttp://www.juank.es
> Correos personales o preguntas particulares en mi grupohttp://groups.google.es/group/juank?hl=eswww.juank.es
> ¿Que es un MVP?, entérate enhttp://mvp.support.microsoft.com
> **

Hola nuevamente gracias por tu tiempo:
Hice lo que me sugeriste pero la linea se pone en rojo, pero si coloco
las comillas asi:
(El script no arroja errores pero no funciona la condicionalidad de la
funcion IF, a pesar que las condiciones de trabajador y fecha se
cumplen, es decir solo me arroja el resultado de luego de la sentencia
ELSE )

If DLookup("[Trabajador]", "Asistencia", "[Trabajador]" = " & Me!

[Trabajador]&" And [Fecha] = "#&Date()&#") = Me![Trabajador] Then

Patxi Sanz

unread,
Feb 19, 2010, 1:46:09 PM2/19/10
to
If DLookup("[Trabajador]", "Asistencia", "[Trabajador]" = " &
Me![Trabajador]&" And [Fecha] = "#&Date()&#")

El igual (=) que hay detr�s de "[Trabajador]" est� fuera de las comillas,
con lo que Access estiende que est�s haciendo una comparaci�n, pero fuera
del DLookup.

Adem�s, unes los & con las palabras anteriores y posteriores, con lo que
vuelves loco a Access. Si quieres unir las palabras, deja un espacio antes y
despu�s de cada &.

Y si quieres poner almohadillas (#) a una fecha, ind�calas dentro de las
comillas para que Access sepa que es parte del texto, no fuera para que
Access no sepa que hacer con ellas.

Y ya que estamos, las fechas siempre en formato americano, o en n�mero.

If DLookup("[Trabajador]", "Asistencia", "[Trabajador] = " & Me![Trabajador]

& " And [Fecha] = #" & Format(Date(), "mm/dd/yyyy") & "#") = Me![Trabajador]
Then

P.D.: si Trabajador es un texto, hay que agregar m�s comillas para que
Access sepa que es eso: un texto.

--
Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/

Ju@nK

unread,
Feb 23, 2010, 3:55:51 PM2/23/10
to
El = esta en donde cuadre fuera y dentro, prueba como te lo puso Patxi Sanz
y repasa todo para ver que tienes bien las comillas, que se te desmadran.

Nota: Cuando digo (decimos) "un string" queremos decir que es un Campo de
tipo string, dicho en castellano, de tipo Texto.

--
--
**
Salu2/Regards
Ju@nK [MVP Access] 2006/10
[DCE2003 ***] + VSTO [DCE2005 **]

http://juank.mvps.org http://www.juank.es


Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank?hl=es

www.juank.tk


�Que es un MVP?, ent�rate en http://mvp.support.microsoft.com
**

"Patxi Sanz" <patxisanz[ARROBA]yahoo[PUNTO]es> escribi� en el mensaje
news:EFD8D7F2-FB37-4A69...@microsoft.com...

Fabricio

unread,
Feb 24, 2010, 3:50:18 PM2/24/10
to
On 23 feb, 15:55, "Ju@nK" <con...@hotmail.com> wrote:
> El = esta en donde cuadre fuera y dentro, prueba como te lo puso Patxi Sanz
> y repasa todo para ver que tienes bien las comillas, que se te desmadran.
>
> Nota: Cuando digo (decimos) "un string" queremos decir que es un Campo de
> tipo string, dicho en castellano, de tipo Texto.
>
> --
> --
> **
> Salu2/Regards
> Ju@nK [MVP Access] 2006/10
> [DCE2003 ***] + VSTO [DCE2005 **]http://juank.mvps.orghttp://www.juank.es

> Correos personales o preguntas particulares en mi grupohttp://groups.google.es/group/juank?hl=eswww.juank.tk
> Que es un MVP?, ent rate enhttp://mvp.support.microsoft.com
> **
> "Patxi Sanz" <patxisanz[ARROBA]yahoo[PUNTO]es> escribi en el mensajenews:EFD8D7F2-FB37-4A69...@microsoft.com...

>
>
>
> > If DLookup("[Trabajador]", "Asistencia", "[Trabajador]" = " &
> > Me![Trabajador]&" And [Fecha] = "#&Date()&#")
>
> > El igual (=) que hay detr s de "[Trabajador]" est fuera de las comillas,
> > con lo que Access estiende que est s haciendo una comparaci n, pero fuera
> > del DLookup.
>
> > Adem s, unes los & con las palabras anteriores y posteriores, con lo que
> > vuelves loco a Access. Si quieres unir las palabras, deja un espacio antes
> > y despu s de cada &.
>
> > Y si quieres poner almohadillas (#) a una fecha, ind calas dentro de las
> > comillas para que Access sepa que es parte del texto, no fuera para que
> > Access no sepa que hacer con ellas.
>
> > Y ya que estamos, las fechas siempre en formato americano, o en n mero.
>
> > If DLookup("[Trabajador]", "Asistencia", "[Trabajador] = " &
> > Me![Trabajador] & " And [Fecha] = #" & Format(Date(), "mm/dd/yyyy") & "#")
> > = Me![Trabajador] Then
>
> > P.D.: si Trabajador es un texto, hay que agregar m s comillas para que
> > Access sepa que es eso: un texto.
>
> > --
> > Un saludo,
>
> > Patxi Sanz
> > Tudela (NA)
> >http://www.pasa.es.tt/


Gracias chicos por su ayuda el codigo ya esta funcionando de las mil
maravillas, solo queria agraderceles y si me pueden recomendar alguna
web donde aprender el uso de las almodillas, las comillas para poder
practicar mas acerca de las sintaxis de las funciones tipo dlookup y
otras mas.

Atentamente.

Fabricio, gracias me fueron de mucha ayuda sus consejos en especial a
ti Patxi Sanz.

Ju@nK

unread,
Feb 25, 2010, 10:02:36 AM2/25/10
to
Busca la web de Eduardo Olaz (Ex-MVP) tiene un manual de vba muy bueno.

--
--
**
Salu2/Regards
Ju@nK [MVP Access] 2006/09


[DCE2003 ***] + VSTO [DCE2005 **]

http://juank.mvps.org http://www.juank.es


Correos personales o preguntas particulares en mi grupo
http://groups.google.es/group/juank?hl=es
www.juank.tk

�Que es un MVP?, ent�rate en http://mvp.support.microsoft.com
**
"Fabricio" <fabri...@gmail.com> escribi� en el mensaje
news:534dc96c-7d12-4185...@d27g2000yqf.googlegroups.com...

Patxi Sanz

unread,
Feb 25, 2010, 10:45:39 AM2/25/10
to
Adem�s del curso de Eduardo Olaz, tambi�n puedes revisar los mensajes del
grupo, hay muchos con ejemplos de uso de comillas y almohadillas.
0 new messages