Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/01/2011, 18h50   #1
Invité de passage
 
Inscription : avril 2004
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 4
Points : 0
Points : 0
Par défaut "Ne rien faire" en fonction d'une condition

Bonjour, j'ai une question relative à un probleme que je rencontre sur access.
Je crée une requête qui va interroger un formulaire.
jusque la aucun probleme.

exemple simplifié :
un formulaire F avec 2 champs de texte TNom et TPays
un bouton d'execution de la requete R

du coté de la requete R
j'ai une table avec nom et pays
la requete interroge TNom pour le nom
et TPays pour le pays

du coup si je marque "Belgique" et "Caroline", il va verifier dans la table et me renvoie la ligne correspondante.

par contre, si un champs seulement est rempli, par exemple "Belgique" en TPays, et rien dans Tnom, je veux que la requete ne fasse rien sur le nom, et qu'elle me renvoie donc tous les noms qui ont pour pays "Belgique".

j'ai fait un truc qui marche pas :
Code :
1
2
3
VraiFaux([Formulaires]![F]![TNom]<>"";[Formulaires]![F]![Nom];Null)
VraiFaux([Formulaires]![F]![TNom]<>"";[Formulaires]![F]![Nom])
VraiFaux([Formulaires]![F]![TNom]<>null;[Formulaires]![F]![Nom];Null)
j'ai trituré tout ca dans tous les sens, mais ca marche po.
Vous avez des idées?
misteurz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 20h14   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 460
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 460
Points : 7 536
Points : 7 536
Le truc le plus simple dans ce genre de cas c'est d'utiliser like

Code sql :
WHERE [TonChampTNom] LIKE "*" & [Formulaires]![F]![TNom] & "*"  AND [TonChampNom] LIKE "*" & [Formulaires]![F]![Nom] & "*"

le * avant et après fais en sorte que pour un champ vide c'est toujours vrai et donc tous les enregistrement sont sélectionnés.

Autre solution utiliser Or mais c'est un peux plus complex :

Code sql :
1
2
3
4
WHERE 
    ([TonChampTNom] = & [Formulaires]![F]![TNom] AND [TonChampNom] = [Formulaires]![F]![Nom])
    OR (IsNull([Formulaires]![F]![TNom]) AND [TonChampNom] = [Formulaires]![F]![Nom])
    OR ([TonChampTNom] = & [Formulaires]![F]![TNom] AND isNull([Formulaires]![F]![Nom]))

A+

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 22h11   #3
Invité de passage
 
Inscription : avril 2004
Messages : 4
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 4
Points : 0
Points : 0
Merci!! j'ai utilisé la solution 1 et ca marche nickel.
Merci l'ami!!
misteurz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 14h04   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 460
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 460
Points : 7 536
Points : 7 536
Un point que j'ai oublié de mentionner c'est qu'avec le like tu pourrais ramasser un peu plus que ce que tu cherches.

Par exemple, si tu cherche 'anne' tu va aussi ramasser 'anne-marie', 'marianne', bref toutes les chaines qui contiennent 'anne'.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h22.


 
 
 
 
Partenaires

Hébergement Web