Access 2003, IIf dans requête
FlyingAlex
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
FlyingAlex Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
FlyingAlex Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème (encore) avec ma fonction IIf.
Je m'explique: j'ai une requête dans ma base de données que je construis en design view. J'aimerai mettre un critère sur une des colonnes:
Si la checkbox ChkProduct est True, dans ce cas le critère doit être la valeur de la combobox Product
Si la checkbox ChkProduct est false, il ne doit pas y avoir de critère, en gros c'est comme si c'étais vide.
IIf([Forms]![Reports menu]![ChkProduct]=True,[Forms]![Reports menu]![Product])
Et ca ne marche pas, j'ai aussi essayé ca
IIf([Forms]![Reports menu]![ChkProduct]=True,[Forms]![Reports menu]![Product],"")
Non plus
Voila, si vous avez une piste, merci de m'aider!
Edit : quand je dis que ca marche pas, c'est la deuxieme partie qui ne marche pas. Si je coche la checkbox, c'est ok mais si je la coche pas, ca ne marche pas (j'ai pu verifier ca car plusieurs colonne ont ce critere, et par exemple, si une checkbox est cochée et une autre non, aucun résultat ne s'affiche alors qu'il devrait y en avoir.
J'ai un problème (encore) avec ma fonction IIf.
Je m'explique: j'ai une requête dans ma base de données que je construis en design view. J'aimerai mettre un critère sur une des colonnes:
Si la checkbox ChkProduct est True, dans ce cas le critère doit être la valeur de la combobox Product
Si la checkbox ChkProduct est false, il ne doit pas y avoir de critère, en gros c'est comme si c'étais vide.
IIf([Forms]![Reports menu]![ChkProduct]=True,[Forms]![Reports menu]![Product])
Et ca ne marche pas, j'ai aussi essayé ca
IIf([Forms]![Reports menu]![ChkProduct]=True,[Forms]![Reports menu]![Product],"")
Non plus
Voila, si vous avez une piste, merci de m'aider!
Edit : quand je dis que ca marche pas, c'est la deuxieme partie qui ne marche pas. Si je coche la checkbox, c'est ok mais si je la coche pas, ca ne marche pas (j'ai pu verifier ca car plusieurs colonne ont ce critere, et par exemple, si une checkbox est cochée et une autre non, aucun résultat ne s'affiche alors qu'il devrait y en avoir.
A voir également:
- Access 2003, IIf dans requête
- Office 2003 - Télécharger - Bureautique
- Acer quick access - Forum Logiciels
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit - Forum Access
- Exemple base de données Access de gestion ✓ - Forum Logiciels
4 réponses
Salut, tu essaies de mettre le iif dans la clause WHERE ?
Je ne passe pas par le SQL, je passe par la design view. Je met ce code dans le critere. Le truc, c'est que ma requete est assez enorme, et je ne suis pas avance du tout en SQL.....
Juste comme ca, je te met la requete mais bon (la elle est complete, je fait en sorte de la reduire a l'essentiel)
SELECT [Master Table].[Project name], [Master Table].Suffix, [Master Table].[Part Number], [Master Table].[Customer part number], [Master Table].[Login date], [Master Table].NBO, [Master Table].Sales, [Master Table].[Project Manager], [Master Table].[Design Engineer], [Master Table].[Product structure DA internal vers], [Master Table].[Product structure DA external vers], [Master Table].[Product structure LGF], [Master Table].[Product structure IA], [Master Table].[Product structure Module], [Master Table].[Project Volume (in k pcs)], [Master Table].[End customer region], [Master Table].[Gate 0], [Master Table].[Gate 2], [Master Table].[Gate 3], [Master Table].[Gate 4], [Master Table].[Project killed date], [Master Table].[Reason for killling], [Master Table].[Comments for killing project or making it inactive], [Master Table].[End customer name], [Master Table].[DA technology], [Master Table].[LGF technology], [Master Table].[IA technology], [Master Table].[Module technology]
FROM [Master Table]
WHERE ((([Master Table].[Login date])>=[Forms]![Reports menu]![From_date] And ([Master Table].[Login date])<=[Forms]![Reports menu]![To_date]) AND (([Master Table].[Product structure DA internal vers])=[Forms]![Reports menu]![Product_structure_DA_internal_vers]) AND (([Master Table].[Product structure DA external vers])=[Forms]![Reports menu]![Product structure DA external vers]) AND (([Master Table].[Product structure LGF])=[Forms]![Reports menu]![Product structure LGF]) AND (([Master Table].[Product structure IA])=[Forms]![Reports menu]![Product structure IA]) AND (([Master Table].[Product structure Module])=[Forms]![Reports menu]![Product structure Module]) AND (([Master Table].[End customer region])=IIf([Forms]![Reports menu]![AllECregion]=False,[Forms]![Reports menu]![End Customer Region],[Master Table]![End customer region])) AND (([Master Table].[Gate 0])=[Forms]![Reports menu]![Gate 0]) AND (([Master Table].[Gate 2])=[Forms]![Reports menu]![Gate 2]) AND (([Master Table].[Gate 3])=[Forms]![Reports menu]![Gate 3]) AND (([Master Table].[Gate 4])=[Forms]![Reports menu]![Gate 4]) AND (([Master Table].[End customer name])=IIf([Forms]![Reports menu]![AllEC]=False,[Forms]![Reports menu]![End customer],[Master Table]![End customer name])) AND (([Master Table].[DA technology])=IIf([Forms]![Reports menu]![Product_structure_DA_internal_vers]=True Or [Forms]![Reports menu]![Product structure DA external vers]=True,[Forms]![Reports menu]![DA technology])) AND (([Master Table].[LGF technology])=IIf([Forms]![Reports menu]![Product structure LGF]=True,[Forms]![Reports menu]![LGF technology])));
Juste comme ca, je te met la requete mais bon (la elle est complete, je fait en sorte de la reduire a l'essentiel)
SELECT [Master Table].[Project name], [Master Table].Suffix, [Master Table].[Part Number], [Master Table].[Customer part number], [Master Table].[Login date], [Master Table].NBO, [Master Table].Sales, [Master Table].[Project Manager], [Master Table].[Design Engineer], [Master Table].[Product structure DA internal vers], [Master Table].[Product structure DA external vers], [Master Table].[Product structure LGF], [Master Table].[Product structure IA], [Master Table].[Product structure Module], [Master Table].[Project Volume (in k pcs)], [Master Table].[End customer region], [Master Table].[Gate 0], [Master Table].[Gate 2], [Master Table].[Gate 3], [Master Table].[Gate 4], [Master Table].[Project killed date], [Master Table].[Reason for killling], [Master Table].[Comments for killing project or making it inactive], [Master Table].[End customer name], [Master Table].[DA technology], [Master Table].[LGF technology], [Master Table].[IA technology], [Master Table].[Module technology]
FROM [Master Table]
WHERE ((([Master Table].[Login date])>=[Forms]![Reports menu]![From_date] And ([Master Table].[Login date])<=[Forms]![Reports menu]![To_date]) AND (([Master Table].[Product structure DA internal vers])=[Forms]![Reports menu]![Product_structure_DA_internal_vers]) AND (([Master Table].[Product structure DA external vers])=[Forms]![Reports menu]![Product structure DA external vers]) AND (([Master Table].[Product structure LGF])=[Forms]![Reports menu]![Product structure LGF]) AND (([Master Table].[Product structure IA])=[Forms]![Reports menu]![Product structure IA]) AND (([Master Table].[Product structure Module])=[Forms]![Reports menu]![Product structure Module]) AND (([Master Table].[End customer region])=IIf([Forms]![Reports menu]![AllECregion]=False,[Forms]![Reports menu]![End Customer Region],[Master Table]![End customer region])) AND (([Master Table].[Gate 0])=[Forms]![Reports menu]![Gate 0]) AND (([Master Table].[Gate 2])=[Forms]![Reports menu]![Gate 2]) AND (([Master Table].[Gate 3])=[Forms]![Reports menu]![Gate 3]) AND (([Master Table].[Gate 4])=[Forms]![Reports menu]![Gate 4]) AND (([Master Table].[End customer name])=IIf([Forms]![Reports menu]![AllEC]=False,[Forms]![Reports menu]![End customer],[Master Table]![End customer name])) AND (([Master Table].[DA technology])=IIf([Forms]![Reports menu]![Product_structure_DA_internal_vers]=True Or [Forms]![Reports menu]![Product structure DA external vers]=True,[Forms]![Reports menu]![DA technology])) AND (([Master Table].[LGF technology])=IIf([Forms]![Reports menu]![Product structure LGF]=True,[Forms]![Reports menu]![LGF technology])));
La voila reduite a fond :
SELECT [Master Table].[Part Number], [Master Table].[Product structure DA internal vers], [Master Table].[Product structure DA external vers], [Master Table].[DA technology], [Master Table].[Product structure LGF], [Master Table].[LGF technology]
FROM [Master Table]
WHERE ((([Master Table].[Product structure DA internal vers])=[Forms]![Reports menu]![Product_structure_DA_internal_vers]) AND (([Master Table].[Product structure DA external vers])=[Forms]![Reports menu]![Product structure DA external vers]) AND (([Master Table].[DA technology])=IIf([Forms]![Reports menu]![Product_structure_DA_internal_vers]=True Or [Forms]![Reports menu]![Product structure DA external vers]=True,[Forms]![Reports menu]![DA technology])) AND (([Master Table].[Product structure LGF])=[Forms]![Reports menu]![Product structure LGF]) AND (([Master Table].[LGF technology])=IIf([Forms]![Reports menu]![Product structure LGF]=True,[Forms]![Reports menu]![LGF technology])));
SELECT [Master Table].[Part Number], [Master Table].[Product structure DA internal vers], [Master Table].[Product structure DA external vers], [Master Table].[DA technology], [Master Table].[Product structure LGF], [Master Table].[LGF technology]
FROM [Master Table]
WHERE ((([Master Table].[Product structure DA internal vers])=[Forms]![Reports menu]![Product_structure_DA_internal_vers]) AND (([Master Table].[Product structure DA external vers])=[Forms]![Reports menu]![Product structure DA external vers]) AND (([Master Table].[DA technology])=IIf([Forms]![Reports menu]![Product_structure_DA_internal_vers]=True Or [Forms]![Reports menu]![Product structure DA external vers]=True,[Forms]![Reports menu]![DA technology])) AND (([Master Table].[Product structure LGF])=[Forms]![Reports menu]![Product structure LGF]) AND (([Master Table].[LGF technology])=IIf([Forms]![Reports menu]![Product structure LGF]=True,[Forms]![Reports menu]![LGF technology])));
Re,
Je ne pense pas que ça soit possible de le faire ainsi j'ai eu le même problème.
Regardez ici http://fr.w3support.net/index.php?db=so&id=317377 notemment le poste #1981489
Je ne pense pas que ça soit possible de le faire ainsi j'ai eu le même problème.
Regardez ici http://fr.w3support.net/index.php?db=so&id=317377 notemment le poste #1981489
Merci de ton coup de main, pour le moment, je laisse tomber cette partie (manque de temps, le stage se termine bientot). Je vais exporter les resultats de la requete sous excel est puis ils pourront trier manuelement. D'ailleurs (je pense pas que ca vaille la peine de faire un nouveau poste, tu dois savoir) comment fait on pour dire a access de copier dans le meme dossier que la bdd. Genre maintenant j'ai ca, mais si la bdd bouge c'est le bordel
DoCmd.TransferSpreadsheet acExport, , "Revenue query", "C:\Documents and Settings\Al\DB \Revenue report.xls", False, ""
Merci encore!
DoCmd.TransferSpreadsheet acExport, , "Revenue query", "C:\Documents and Settings\Al\DB \Revenue report.xls", False, ""
Merci encore!