IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

(Access 2003 - SQL 2000) requete VBA multicriteres


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 72

    Informations forums :
    Inscription : Août 2007
    Messages : 133
    Points : 74
    Points
    74
    Par défaut (Access 2003 - SQL 2000) requete VBA multicriteres
    Bonjour a tous les Developpezcomiens,

    J'ai cree un formulaire de recherche multi-criteres dans lequel j'ai inserer differents criteres de recherches...
    Tout se passe bien si tous les criteres de recherches sont tous alimentes

    Par contre je ne sais pas comment traduire en VBA la requete dans le cas ou un critere n'est pas rentre par l'utilisateur...

    Si le critere n'est pas rentre cela ne veut pas dire "Null" mais bien au contraire que la requete ne doit pas tenir compte de ce critere...


    Dim SelectionShowroom As String

    Dim ActualFabric As String
    Dim ActualFabricConstruction As String

    '--------------------------------------- Fabric
    If Me![WizardFabric] <> "" Then
    ActualFabric = Me![WizardFabric]
    Else
    ActualFabric = ""
    End If
    '--------------------------------------- Fabric Construction
    If Me![WizardFabricConstruction] <> "" Then
    ActualFabricConstruction = Me![WizardFabricConstruction]
    Else
    ActualFabricConstruction = ""
    End If

    SelectionShowroom = " SELECT PictureShowroom.PictureAddress, PictureShowroom.ShowroomPictureRank, PictureShowroom.ShowroomStyleSystem, StyleShowroom.ShowroomStyleOwn, ....... , StyleShowroom.ShowroomFabric, StyleShowroom.ShowroomFabricComposition, StyleShowroom.ShowroomFabricConstruction, ....." _
    & " FROM StyleShowroom INNER JOIN PictureShowroom ON StyleShowroom.ShowroomStyleSystem = PictureShowroom.ShowroomStyleSystem " _
    & " WHERE (((PictureShowroom.ShowroomPictureRank)=1) AND ((StyleShowroom.ShowroomFabric) Like '" & ActualFabric & "') AND ((StyleShowroom.ShowroomFabricConstruction) Like '" & ActualFabricConstruction & "'));"

    ............

    CurrentDb.QueryDefs("GetPictureShowroom").SQL = SelectionShowroom

    A titre d'exemple je n'ai mis que 2 criteres et on pourrait dire de faire plusieurs requetes... le benol est que j'ai ... 14 criteres qui peuvent ou non etre alimentes ou pas...

    Pour etre un peu plus clair... je souhaiterai faire une query dans laquelle je mets des conditions ou pas...

    D'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Salut, voilà pour t'aider:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    dim critere as string
    if not isnull(me.moncritere1.value) then
      if critere <> "" then
          critere = critere & " AND monchamp1 = '" & me.moncritere1.value & "'"
      else
          critere = "WHERE monchamp1 = '" & me.moncritere1.value & "'"
      end if
    end if
     
    if not isnull(me.moncritere2.value) then
      if critere <> "" then
          critere = critere & " AND monchamp2 = '" & me.moncritere2.value & "'"
      else
          critere = "WHERE monchamp2 = '" & me.moncritere2.value & "'"
      end if
    end if
    ...
    str = "SELECT * FROM tatable " & critere

  3. #3
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 72

    Informations forums :
    Inscription : Août 2007
    Messages : 133
    Points : 74
    Points
    74
    Par défaut
    Je te remercie pour cette reponse si rapide

    je vais essayer de comprendre la logique et essayer de l'appliquer...

    En attendant le

  4. #4
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 72

    Informations forums :
    Inscription : Août 2007
    Messages : 133
    Points : 74
    Points
    74
    Par défaut
    Je viens de comprendre la logique....

    Tu crees le premier WHERE au quel tu rajoutes le cas echeant les nouveaux criteres... Chapeau bas....



    J'essaie apres le repas....

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    T'inquiète, la logique de développement s'apprend... en développant

  6. #6
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 72

    Informations forums :
    Inscription : Août 2007
    Messages : 133
    Points : 74
    Points
    74
    Par défaut


    Cela marche a merveille...



    J'ai "bricole" quelque peu ton code .... (j'apprends sur le tas et certainement il y a une facon plus accademique...

    if not isnull(me.moncritere2.value) then
    if critere <> "" then
    critere = critere & " AND monchamp2 = '" & me.moncritere2.value & "'"
    else
    critere = "WHERE monchamp2 = '" & me.moncritere2.value & "'"
    end if
    end if
    Comme il peut y avoir un autre critere il faut ne pas "fermer" par ... " ' " ... mais par ... " ' ... que je ferme une fois que tous les criteres on ete controles...

    Encore

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    tiens un info supp pour complèter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If Not (IsNull(me.moncritere2.value) Or IsEmpty(me.moncritere2.value) Or me.moncritere2.value = "") Then

  8. #8
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 72

    Informations forums :
    Inscription : Août 2007
    Messages : 133
    Points : 74
    Points
    74
    Par défaut
    6ril25 (Doubs ?)

    Combien de fois ai-je isolement utilise ces conditions sans jamais pense a les mettre ensemble...

    Je vais de ce pas rectifier mon code...

    encore

    PS: je ne sais pas si c'est dans les us et coutumes du forum mais j'ai egalement poste une discussion sous "VBA"

    access-2003-sql-filedialog-filepicker-ordre-enregistrements

    et il semblerait que la solution demandee ne soit pas evidente...

    Je suis convaincu que c'est une fois de plus au bout de mon nez et que je n'arrive pas a le voir...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    oui, du Doubs, pkoi?

    je vais voir ta discussion, pense au

  10. #10
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Âge : 72

    Informations forums :
    Inscription : Août 2007
    Messages : 133
    Points : 74
    Points
    74
    Par défaut
    J'ai vecu plusieurs annee a Besancon et j'y ai trouve ma femme a Geneuille...

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Mdr, j'suis de Besac et j'connais bien Geneuille

    "Comtois rends-toi, Nenni ma foi"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/02/2009, 14h09
  2. Access 2003 SQL 2000 - Conflit d'écriture
    Par Chris 81 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 19/09/2008, 13h36
  3. Réponses: 6
    Dernier message: 04/09/2008, 10h28
  4. Réponses: 8
    Dernier message: 29/08/2008, 17h29
  5. [Access 2003] Problème de requête SQL
    Par 973thom dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/08/2006, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo