J'ai un souci avec la clause where de la requête qui suit. J'ai une table
searchparam qui contient des valeurs sur lesquelles je sélectionne les
enregistrements à afficher. 2 dates (from_date et to_date) et un
employee_id.
Mon problème est pour employee_id, s'il faut prendre tous les employés la
valeur est à -1 auquel cas je dois afficher tous les employées (like "*") et
là çà ne marche pas du tout il me retourne aucun enregistrement alors qu'il
devrait y en avoir des centaines. Par contre tout marche quand un employé
spécifique est sélectionné.
Donc le problème vient du like "*" car le test du -1 marche.
Donc probablement la manière de l'écrire, mais je trouve pas la soluce.
Merci pour votre aide,
Sam
SELECT DISTINCTROW employees.[employee id], [labor record].date, [labor
record].id, [labor record].locked, employees.name, employees.Dept
FROM param INNER JOIN (employees INNER JOIN [labor record] ON
employees.[employee id] = [labor record].[employee id]) ON param.USERDPT =
employees.Dept
WHERE (((employees.[employee
id])=IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee
id]) Like "*",DLookUp("employee_id","searchparam"))) AND (([labor
record].date)>=DLookUp("from_date","searchparam") And ([labor
record].date)<=DLookUp("to_date","searchparam")) AND (([labor
record].locked)=No))
ORDER BY [labor record].date DESC
WITH OWNERACCESS OPTION;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent DUB
Bonjour, Peut etre une piste car j'ai eu le même pb
Remplacer = par like WHERE (((employees.[employee id])=IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee ..... donne WHERE (((employees.[employee id]) like IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee ... cordialement Lrd
Bonjour, Peut etre une piste car j'ai eu le même pb
Remplacer = par like
WHERE (((employees.[employee
id])=IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee
.....
donne
WHERE (((employees.[employee
id]) like
IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee ...
cordialement
Lrd
Bonjour, Peut etre une piste car j'ai eu le même pb
Remplacer = par like WHERE (((employees.[employee id])=IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee ..... donne WHERE (((employees.[employee id]) like IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee ... cordialement Lrd
ze_titi
Bonjour,
je pense que le problème vient du fait qu'en cas de "LIKE *", on a dans la clause WHERE la formulation suivante : ....[employee id])=LIKE "*".... ce qui induit une erreur. A la place du "=", je pense que tu devrais utiliser directement l'opérateur LIKE.
-- Cordialement,
ze_titi
Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ
Bonjour,
J'ai un souci avec la clause where de la requête qui suit. J'ai une table searchparam qui contient des valeurs sur lesquelles je sélectionne les enregistrements à afficher. 2 dates (from_date et to_date) et un employee_id.
Mon problème est pour employee_id, s'il faut prendre tous les employés la valeur est à -1 auquel cas je dois afficher tous les employées (like "*") et là çà ne marche pas du tout il me retourne aucun enregistrement alors qu'il devrait y en avoir des centaines. Par contre tout marche quand un employé spécifique est sélectionné.
Donc le problème vient du like "*" car le test du -1 marche.
Donc probablement la manière de l'écrire, mais je trouve pas la soluce.
Merci pour votre aide,
Sam
SELECT DISTINCTROW employees.[employee id], [labor record].date, [labor record].id, [labor record].locked, employees.name, employees.Dept FROM param INNER JOIN (employees INNER JOIN [labor record] ON employees.[employee id] = [labor record].[employee id]) ON param.USERDPT = employees.Dept WHERE (((employees.[employee id])=IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee id]) Like "*",DLookUp("employee_id","searchparam"))) AND (([labor record].date)>=DLookUp("from_date","searchparam") And ([labor record].date)<=DLookUp("to_date","searchparam")) AND (([labor record].locked)=No)) ORDER BY [labor record].date DESC WITH OWNERACCESS OPTION;
Bonjour,
je pense que le problème vient du fait qu'en cas de "LIKE *", on a dans la
clause WHERE la formulation suivante : ....[employee id])=LIKE "*".... ce qui
induit une erreur.
A la place du "=", je pense que tu devrais utiliser directement l'opérateur
LIKE.
--
Cordialement,
ze_titi
Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ
Bonjour,
J'ai un souci avec la clause where de la requête qui suit. J'ai une table
searchparam qui contient des valeurs sur lesquelles je sélectionne les
enregistrements à afficher. 2 dates (from_date et to_date) et un
employee_id.
Mon problème est pour employee_id, s'il faut prendre tous les employés la
valeur est à -1 auquel cas je dois afficher tous les employées (like "*") et
là çà ne marche pas du tout il me retourne aucun enregistrement alors qu'il
devrait y en avoir des centaines. Par contre tout marche quand un employé
spécifique est sélectionné.
Donc le problème vient du like "*" car le test du -1 marche.
Donc probablement la manière de l'écrire, mais je trouve pas la soluce.
Merci pour votre aide,
Sam
SELECT DISTINCTROW employees.[employee id], [labor record].date, [labor
record].id, [labor record].locked, employees.name, employees.Dept
FROM param INNER JOIN (employees INNER JOIN [labor record] ON
employees.[employee id] = [labor record].[employee id]) ON param.USERDPT =
employees.Dept
WHERE (((employees.[employee
id])=IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee
id]) Like "*",DLookUp("employee_id","searchparam"))) AND (([labor
record].date)>=DLookUp("from_date","searchparam") And ([labor
record].date)<=DLookUp("to_date","searchparam")) AND (([labor
record].locked)=No))
ORDER BY [labor record].date DESC
WITH OWNERACCESS OPTION;
je pense que le problème vient du fait qu'en cas de "LIKE *", on a dans la clause WHERE la formulation suivante : ....[employee id])=LIKE "*".... ce qui induit une erreur. A la place du "=", je pense que tu devrais utiliser directement l'opérateur LIKE.
-- Cordialement,
ze_titi
Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ
Bonjour,
J'ai un souci avec la clause where de la requête qui suit. J'ai une table searchparam qui contient des valeurs sur lesquelles je sélectionne les enregistrements à afficher. 2 dates (from_date et to_date) et un employee_id.
Mon problème est pour employee_id, s'il faut prendre tous les employés la valeur est à -1 auquel cas je dois afficher tous les employées (like "*") et là çà ne marche pas du tout il me retourne aucun enregistrement alors qu'il devrait y en avoir des centaines. Par contre tout marche quand un employé spécifique est sélectionné.
Donc le problème vient du like "*" car le test du -1 marche.
Donc probablement la manière de l'écrire, mais je trouve pas la soluce.
Merci pour votre aide,
Sam
SELECT DISTINCTROW employees.[employee id], [labor record].date, [labor record].id, [labor record].locked, employees.name, employees.Dept FROM param INNER JOIN (employees INNER JOIN [labor record] ON employees.[employee id] = [labor record].[employee id]) ON param.USERDPT = employees.Dept WHERE (((employees.[employee id])=IIf(DLookUp("employee_id","searchparam")="-1",([employees].[employee id]) Like "*",DLookUp("employee_id","searchparam"))) AND (([labor record].date)>=DLookUp("from_date","searchparam") And ([labor record].date)<=DLookUp("to_date","searchparam")) AND (([labor record].locked)=No)) ORDER BY [labor record].date DESC WITH OWNERACCESS OPTION;