Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
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 27/07/2005, 09h50   #1
Invité de passage
 
Inscription : juillet 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 16
Points : 2
Points : 2
Par défaut "tout et rien"

Bonjour à tous,

Le titre du message peut paraitre particulièrement vague....

Voici le problème:

Dans ma requête, j'utilise pour prendre tout les champs, le problème et que certain sont Null, il faut alors faire pour les prendre.

Existerait il, par hazard, une expression suivante: "je te chope n'importe quel champs quel que soit son contenu, champ rempli, chaine vide ou champ null" ; en gros TOUT

Franchement ca me simplifirait la vie !

Merci à vous
alexei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 09h52   #2
Membre émérite
 
Avatar de jean-paul lepetit
 
Inscription : février 2005
Messages : 809
Détails du profil
Informations personnelles :
Âge : 56

Informations forums :
Inscription : février 2005
Messages : 809
Points : 830
Points : 830
Salut,
Je comprends pas trop ton problème, mais as tu essayé
jean-paul lepetit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 09h56   #3
Membre éprouvé
 
Avatar de Petogaz
 
Inscription : avril 2004
Messages : 468
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 468
Points : 483
Points : 483
salut,

je ne connais pas la structure de ta table. mais moi je n'ai aucun problème avec les champs Null. en ayant des champs Null de ma table, et en faisiant une requête avec "*" j'ai tous mes champs en résultat (y compris les Null).
Petogaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 10h06   #4
Invité de passage
 
Inscription : juillet 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 16
Points : 2
Points : 2
Salut,

J'ai oublié de précisé que j'essaie de rentrer mon code directement dans la requete access.

Du coup, le il ne l'encaisse pas du tout et me ressort
Code :
Comme VraiFaux(EstVide(nz([forms]![Menu]![SearchISIN]));([DATA].[ISIN]) Comme "*" Ou ([DATA].[ISIN]) Est Null;[forms]![Menu]![SearchISIN])
quand je saisi
Code :
Comme VraiFaux(EstVide(nz([forms]![Menu]![SearchISIN]));"*" Ou  EstNull;[forms]![Menu]![SearchISIN])
Ca donne à réfléchir...

Pour te répondre Petrogaz, le mien n'encaisse pas les Null... un problème de paramétrage des champs dès le début ?
alexei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 15h29   #5
Expert Confirmé
 
Inscription : mai 2005
Messages : 3 419
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3 419
Points : 3 768
Points : 3 768
pour tout avoir il suffit de ne pas mettre de critère
random est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 16h42   #6
Invité de passage
 
Inscription : juillet 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 16
Points : 2
Points : 2
Salut Random,

Bien vu, si je ne met pas de critère, je vais effectivement tous avoir.

Le problème (car il y a toujours un problème...) c'est que dans ma requete je fais référence à différents champs optionnels sur un formulaire(c'est une recherche multi critères).

Voila la traduction en francais de ce que je veux:
Si le champ du formulaire est vide, tu acceptes tous (champs remplis, chaiens vide ou Null), si le champ est renseigné tu fais la recherche avec ce qu'on te donnes.

Pas très compliqué à priori, mais en vérité ca fait deux jour que je me prend la tête la dessus... GRRR !!
alexei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 17h10   #7
Invité de passage
 
Inscription : mars 2005
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 11
Points : 3
Points : 3
Pourquoi tu veux mettre le code directement dans la requête ?
Un bouton [Rechercher] serait plus facile à coder et ta requête à paramétriser.

Gézabel.
Gézabel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 17h34   #8
Membre éprouvé
 
Avatar de Petogaz
 
Inscription : avril 2004
Messages : 468
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 468
Points : 483
Points : 483
je viens de comprendre ce que tu veux. en fait le champ vide c'est sur le formulaire. il faut donc mettre ceci dans le critère de ta requête :

Code :
Comme [Forms]![menu]![SearchISIN] & "*"
avec ça si tu renseigne un nom il te le trouve sinon il t'affiche tous les enregistrements.
voilà !
Petogaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 18h16   #9
Invité de passage
 
Inscription : juillet 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 16
Points : 2
Points : 2
Je test !

Merci les gars
alexei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 18h17   #10
Membre éprouvé
 
Avatar de Petogaz
 
Inscription : avril 2004
Messages : 468
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 468
Points : 483
Points : 483
n'oublis pas le tag résolu !
Petogaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 18h28   #11
Invité de passage
 
Inscription : juillet 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 16
Points : 2
Points : 2
Ah en fait nan je crois qu'on c'est mal compris.

Voila le code que j'ai déjà :
Code :
Comme VraiFaux(EstVide(nz([forms]![Menu]![SearchISIN]));"*";[forms]![Menu]![SearchISIN])
Ce code est entré directement dans la requète, car il y a 8 options dans le formulaire, et je vais être amené à la dupliquer après.... (de toute manière je suis débutant alors je prefère ne rester au bon vieux tableau de requete pour l'instant)

Voila l'effet de ce code:

Access regarde ce qu'il y a dans le champ du formulaire SearchISIN; si il n'y a rien, il me sort l'ensemble des champs A L'EXEPTION DES NULL, si il y a quelque chose, il recherche avec.

CE QUE JE VEUX: si le champ du formulaire n'est pas renseigné, je veux que la requête sorte TOUS, les champs renseignés ET les Null.

Voila, je suis pret à me déplacer pour venir embrasser celui ou celle qui viendra me délivrer (j'espère que ca va motiver et n'aurra pas l'effet inverse
alexei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 18h32   #12
Membre émérite
 
Avatar de FRED.G
 
Inscription : novembre 2002
Messages : 1 029
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2002
Messages : 1 029
Points : 898
Points : 898
Bon, si y a des bisous en jeu, je veux bien m'y mettre... A bientôt...
__________________
"Fred point G"

Recherche vieux jeux et autres ordis anciens !!

(\ _ /)
(='.'=)
(")-(")
FRED.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 18h38   #13
Membre éprouvé
 
Avatar de Petogaz
 
Inscription : avril 2004
Messages : 468
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 468
Points : 483
Points : 483
Citation:
Envoyé par alexei
CE QUE JE VEUX: si le champ du formulaire n'est pas renseigné, je veux que la requête sorte TOUS, les champs renseignés ET les Null.
as-tu bien testé mon code dans ton critère. parce qu'il répond bien à la question.
Petogaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 18h47   #14
Invité de passage
 
Inscription : juillet 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 16
Points : 2
Points : 2
Citation:
je viens de comprendre ce que tu veux. en fait le champ vide c'est sur le formulaire. il faut donc mettre ceci dans le critère de ta requête :
Bein en fait je croyais avoir été clair, (mais en fait c'était sous entendu, bon ok ma faute) : LE CHAMP VIDE QUI ME POSE PROBLEME N'EST PAS DANS LE FORMULAIRE; IL EST DANS LA TABLE QUE J'INTERROGE (avec la requête).

Les champ vide des formulaires, je les gère déjà avec la formule VraiFaux.

Ce que je gère pas, c'est la table ou il y a à la fois des champs remplis et des Null ou des chaines vides.
alexei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 18h53   #15
Membre émérite
 
Avatar de FRED.G
 
Inscription : novembre 2002
Messages : 1 029
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2002
Messages : 1 029
Points : 898
Points : 898
Bon... me revoilà pour les bisous !

Voici comment construire ton SQL (plus spécialement ta clause WHERE) proprement :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Dim strSQL As String
 
'WHERE
 
  'Critère 1
 
  'Exemple pour un champ falcultatif avec critère facultatif de type string
  If (Len(Nz(TextBoxCritère1, "")) > 0) Then strSQL = " (nz([MaTableOuRequête].[ChampCritère1],"""")" & " Like ""*" & TextBoxCritère1 & "*"")"
 
  'Critère 2
 
  'Exemple pour un champ obligatoire avec critère facultatif de type string
  If strSQL <> "" Then strSQL = strSQL & " AND"
    If (Len(Nz(TextBoxCritère2, "")) > 0) Then
      strSQL = " ([MaTableOuRequête].[ChampCritère2] Like ""*" & TextBoxCritère2 & "*"")"
    End If
  End If
 
  'Critère 3
 
  'Exemple pour un champ obligatoire avec critère facultatif de type numérique
  If Len(Nz(TextBoxCritère3, "")) > 0 Then
    If strSQL <> "" Then strSQL = strSQL & " AND"
    strSQL = strSQL & " (MaTableOuRequête.ChampCritère3 =" & TextBoxCritère3 & ")"
  End If
 
  'Critère N, etc.
  '...
 
  'Finalisation de la clause where
  If strSQL <> "" Then strSQL = " WHERE " & strSQL
 
 
'SELECT
    strSQL = "SELECT ... FROM " & strSQL
 
'ORDER BY
    strSQL = strSQL & " ORDER BY ..."
Edit : correction critère 2
__________________
"Fred point G"

Recherche vieux jeux et autres ordis anciens !!

(\ _ /)
(='.'=)
(")-(")
FRED.G est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 19h00   #16
Membre éprouvé
 
Avatar de Petogaz
 
Inscription : avril 2004
Messages : 468
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 468
Points : 483
Points : 483
Citation:
Envoyé par alexei
Bein en fait je croyais avoir été clair, (mais en fait c'était sous entendu, bon ok ma faute) : LE CHAMP VIDE QUI ME POSE PROBLEME N'EST PAS DANS LE FORMULAIRE; IL EST DANS LA TABLE QUE J'INTERROGE (avec la requête).
ok donc j'avais mal compris. c'est pas juste c'est FRED qui aura le Bisous !!
Petogaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 19h08   #17
Invité de passage
 
Inscription : juillet 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 16
Points : 2
Points : 2
bon pour les bisous en fait... (confirme moi dans mon doute Fred, tu es bien... un homme )


Blague à part : il est 19H et je quitte le taf, je remet donc le test à demain.

Néanmoins, ca me complique un peu d'utiliser SQL ; je suis un débutant (un peu effarouché) et je m'en tient pour l'instant au table de requete toutes gentilles et facile ; et d'un point de vu technique, je vais être amené à employer un grand nombre de requete (en gros 6 tableau de requete pouvant utiliseé 8 champs + 2 champs pour une recherche avec date contenu .... et encore, dès que je fini un truc mon boss m'en rajoute !)

Bref, si il pouvait exister une expression qui soit l'equivalent de "*" + Null en langage de requete access (sql simplifié je crois ? ) ce serait quand même vachement cool !

Donc, non je ne me défile pas pour le bisous , oui je vais tester (mon acharnement est sans limite, mon taf en dépend) MAIS, mon instinct de débutant me dis que plus simple ca doit exister.

pour finir: MERCI Fred et à demain pour la suite
alexei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2005, 20h06   #18
Membre éprouvé
 
Avatar de Petogaz
 
Inscription : avril 2004
Messages : 468
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 468
Points : 483
Points : 483
voilà pour moi ma dernière réponse pour ce soir :

Code :
 Comme VraiFaux(Nbcar(nz([forms]![Menu]![SearchISIN]));"")>0;[forms]![Menu]![SearchISIN];[forms]![Menu]![SearchISIN]&"*" ou EstNull)
j'aurais peut être mon bisous.
Petogaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2005, 09h58   #19
Invité de passage
 
Inscription : juillet 2005
Messages : 16
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 16
Points : 2
Points : 2
Bonjour à tous,

toujours pas trouvé de slution satisfaisante malgré les test...

Merci quand même les gars.


Keep going...
alexei est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2005, 10h05   #20
Membre éprouvé
 
Avatar de Petogaz
 
Inscription : avril 2004
Messages : 468
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 468
Points : 483
Points : 483
à mon avis il va falloir que tu te mette au langage SQL et un peu de VBA pour avoir ce que tu veux. l'assistant est bien limité pour certaines opérations. à mmois qu'il y ai quelqu'un avec la solution miracle.
Petogaz est dé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 10h18.


 
 
 
 
Partenaires

Hébergement Web