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

VBA Access Discussion :

Modifier une condition Where par VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut Modifier une condition Where par VBA
    Bonjour,

    Voici ma requête SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSql = "SELECT DISTINCTROW * FROM [" & strTable1 & "] LEFT OUTER JOIN ([" & strTable2 & "] LEFT OUTER JOIN ([" & strTable3 & "] LEFT OUTER JOIN [" & strTable4 & "] ON PriceListSan.Equipement = IndicateurSoutien.Sigle_Equipement ) ON DonnéesClient.Sigle_Commercial = IndicateurSoutien.Sigle_Equipement) ON DonnéesClient.reference = DonnéesTechniques.Reference WHERE ...
    Quand l'utilisateur choisit la table "DonnéesTechniques", plusieurs textBox s'affiche.

    Je voudrais que ma requête SQL tienne compte de ces textBox.

    J'ai un début de solution :

    'Comment faire pour vérifier si une textbox est vide ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Me.matextbox =! 0 Then
              strSQl = strSQL AND (" & matextbox & ")
    Pensez-vous que ça marche ? Et quelles sont les syntaxes exactes ? Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 221
    Par défaut
    Si un textbox est vide?!
    Si tu est dans le code de ton formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If NomTextBox.Value <> empty then
         'ton code
    end if
    Si t'es dans un module :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Forms!NomForm.NomTextBox <> empty then
         'ton code
    end if
    De plus si tu veux concaténer utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = SQL & " je veux rajouter ca"
    Ton code n'est pas correct, tu rajoutes seulement la chaine de caractère "matextbox"

    Il faut que pour chaque textbox tu prépares ce que tu veux rajouter dans ta clause WHERE comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If TextBox_Nom.Value <> empty then
         SQL = SQL & " Nom = """ & TextBox_Nom.value & """"
    end if
     
    If TextBox_Prenom.Value <> empty then
         SQL = SQL & " Prenom = """ & TextBox_Prenom.value & """"
    end if
     
    'et ainsi de suite
    Et une fois que tu as fini de rajouter ce que tu souhaites il faut que tu fasses :
    Voila pour ce que j'ai compris

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    Merci c'est exactement ce que je voulais au niveau du VBA.

    En ce qui concerne le SQL, sachant qu'il y aura plusieurs critères, y'a pas un "AND" à mettre quelque part ?


    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQL = SQL & "AND Prenom = """ & TextBox_Prenom.value & """"

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 221
    Par défaut
    Si en effet il y a un AND mais le problème c'est que vu que tu ne sais pas combien de text box tu va mettre ni lesquelles il te faut une variable pour te dire si c'est le premier. En gros ton code va ressembler à ca :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    Dim strSql as string
    Dim compteur as boolean
    compteur = false
     
    strSql = "SELECT DISTINCTROW * FROM [" & strTable1 & "] LEFT OUTER JOIN ([" & strTable2 & "] LEFT OUTER JOIN ([" & strTable3 & "] LEFT OUTER JOIN [" & strTable4 & "] ON PriceListSan.Equipement = IndicateurSoutien.Sigle_Equipement ) ON DonnéesClient.Sigle_Commercial = IndicateurSoutien.Sigle_Equipement) ON DonnéesClient.reference = DonnéesTechniques.Reference WHERE"
     
    If TextBox_Nom.Value <> empty then
         if compteur = false then
              strSql = strSql & " Nom = """ & TextBox_Nom.value & """"
              compteur = true
         else
              strSql = strSql & " AND Nom = """ & TextBox_Nom.value & """"
         end if
    end if
     
    If TextBox_Prenom.Value <> empty then
         if compteur = false then
              strSql = strSql & " Prenom = """ & TextBox_Prenom.value & """"
              compteur = true
         else
              strSql = strSql & " AND Prenom = """ & TextBox_Prenom.value & """"
         end if
     
    'etc....
     
    strSql = strSql & ";"
    end if
    Et le mieux c'est de mettre une msgbox à la fin pour voir si ton code correspond

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    D'accord je vois, merci bien !

    Je teste je mettrais résolu après.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 117
    Par défaut
    J'aurais peut-etre dû mettre ce que j'avais avant dans le WHERE

    Car en fait j'ai utilisé le tutoriel de loufab pour créer ce formulaire de recherche, et j'ai un peu de mal à intégrer le code.

    Donc ma clause WHERE c'est sa :

    WHERE((" & strCriteria & "));"

    Donc, en reprenant ton code, si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If TextBox_Nom.Value <> empty then
         if compteur = false then
              strCriteria = strCriteria & " Nom = """ & TextBox_Nom.value & """"
              compteur = true
         else
              strCriteria = strCriteria & " AND Nom = """ & TextBox_Nom.value & """"
         end if
    end if
    Sa passerait ? Je teste mais si t'a une solution qui marche pour ça je prends.

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

Discussions similaires

  1. Modifié les conditions WHERE selon la valeur d'une requête
    Par Thebest85 dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/07/2008, 16h12
  2. Comment modifier une BufferedImage alimenté par un Thread
    Par jlassiramzy dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 02/08/2006, 15h04
  3. Modifier une requete access en vba
    Par WyLLoU dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/07/2006, 08h32
  4. Réponses: 9
    Dernier message: 01/06/2006, 14h12
  5. Fonction MAX dans une condition WHERE
    Par borgfabr dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/10/2004, 16h06

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