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 :

[SQL & VBA] Afficher plusieurs enregistrement d'une requête avec Variables et %


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 73
    Points
    73
    Par défaut [SQL & VBA] Afficher plusieurs enregistrement d'une requête avec Variables et %
    Bonjour,

    Codant en ACCESS je me suis trouvé confronté à un problème. En effet, vous m'avez expliquer comment afficher le contenu d'une variable VBA dans une requête SQL. Cependant, j'aimerais à présent faire un LIKE avec les sempiternelles "%" avant et après et je n'arrive pas à m'en sortir.

    D'avance merci

    Altrensa

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En VBA et dans le SQL Access on utilise pas % mais * comme caractére joker.

    Starec

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 73
    Points
    73
    Par défaut
    Merci Starec,

    Peux-tu alors me donner la syntaxe à utiliser car :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT .... WHERE BLA = '" & Var &"'"
    -> FONCTIONNE

    Mais, à l'inverse
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    "SELECT .... WHERE BLA = '*" & Var &"*'"
    "SELECT .... WHERE BLA = '"*" & " & Var & " & "*"'"
    "SELECT .... WHERE BLA = '"* & Var & *"'"
    "SELECT .... WHERE BLA = '""*" & Var & "*""'"
    -> NE FONCTIONNENT PAS

    D'avance merci

    Altrensa

  4. #4
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    tu parles de LIKE dans ton premier post pour l'oublier ensuite ...

    J'aime bien cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL = "SELECT .... WHERE BLA LIKE '*" & Var & "*'"
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup cependant, je me trouve confronté à un autre problème, si ma requête trouve plusieurs valeurs, elle ne m'affiche que la première... Que faire ?

    Voici le code :
    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
    28
    29
    30
    31
    32
    33
    34
     
    'Bouton "Recherche" permettant, à partir des critères entrés de faire une recherche dans la table principale
    Private Sub Bouton_Recherche_Click()
     
        'On vérifie que le champs de recherche n'est pas nul
        If Not IsNull(Me.[Criteres_de_recherche]) Then
     
            'On stocke le critère recherché
            Dim Critere As String   'Critère de recherche saisi
            Critere = Me.[Criteres_de_recherche]
     
            'DEBUG : Affiche le contenu de la variable "Critere" en décommentant (enlever le ')
            MsgBox (Critere)
     
            'On cherche les champs correspondants à ce critère
            Set r = CurrentDb.OpenRecordset("SELECT [TFT_TableProduits].[Ref produit] FROM [TFT_TableProduits] WHERE [TFT_TableProduits].[Ref produit] LIKE '*" & Critere & "*'")
     
            'On stoque dans des variables les refs correspondantes
            If Not r.EOF Then
                Ref_correspondantes = r.Fields(0).Value
     
                'DEBUG : Affiche le contenu de la variable "Ref_correspondantes" en décommentant (enlever le ')
                MsgBox (Ref_correspondantes)
     
            End If
     
            'On met ce résultat dans le champs des références disponibles correspondantes à la recherche
            Me.[Reference_produit] = Ref_correspondantes
     
        Else
            'Si on ne donne pas de critère, on ne fait rien
        End If
     
    End Sub
    Et en fait, il ne m'affiche que le premier enregistrement de la table qui correspond...
    Que faire ?
    En effet, j'aimerais qu'il me duplique la ligne Ref_produit ZC ZC ZC ZC ZC ZC ZC ZC pour chaque produit où ZC est une zône à cocher

    D'avance merci

    Altrensa

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Dans cette partie du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Not r.EOF Then
                Ref_correspondantes = r.Fields(0).Value
     
                'DEBUG : Affiche le contenu de la variable "Ref_correspondantes" en décommentant (enlever le ')
                MsgBox (Ref_correspondantes)
     
            End If
    Tu ne parcours pas le recordset

    Il faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    While Not r.EOF
                Ref_correspondantes = r.Fields(0).Value
     
                'DEBUG : Affiche le contenu de la variable "Ref_correspondantes" en décommentant (enlever le ')
                MsgBox (Ref_correspondantes)
                r.MoveNext
    Wend
    Starec

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Il faut que tu attribues le SQL à une zone de liste ou à un sous-formulaire.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Mais je ne vois pas trop le but d'afficher dans une msgbox tes données, quel est-il ?

    Comme le dit Caféine, si tu veux toutes les afficher tu n'as pas besoin de tout ce code.

    Starec

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 73
    Points
    73
    Par défaut
    Bonjour à tout ceux que je n'ai pas encore vu, (Salut Caféine)
    En fait, l'intérêt des MsgBox c'est juste pour savoir s'il y a bien ce que je veux dans les variables, après elles sont commentées (d'où le "DEBUG .... supprimez ' pour afficher").

    En fait je fait des recherches sur des produits et j'aimerais que pour chaque produit que cela trouve, cela me fasse le système de case à cocher détaillé plus haut. Je n'arrive pas à m'en sortir avec le sous-formulaire qui ne m'affihce toujours qu'un enregistrement (le dernier trouvé car il les affiche les uns après les autres dans les mêmes cases puis ne conserve que le dernier).

    Comment puis-je faire pour que le résultat de la recherche crée automatiquement des lignes avec cases à cocher dans mon sous-formulaire ?

    Encore et d'avance merci pour votre aide

    Altrensa

  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 73
    Points
    73
    Par défaut
    Bonjour

    J'ai changé mon code et celui semble à peu près fonctionnel cependant, les zones à cocher sont interdépendantes...
    En cliquer une coche toute la colonne, comment les rendre indépendantes...

    D'avance merci

    Altrensa

  11. #11
    Invité
    Invité(e)
    Par défaut
    Re

    J'ai mal lu.

    Tes cases à cocher sont-elles le reflet de champs Oui/Non de ta table qui alimente ton formulaire ?

    Starec

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

Discussions similaires

  1. [AC-2003] Requete qui affiche plusieurs enregistrements sur une même ligne
    Par Stef999 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/12/2011, 16h19
  2. combo box afficher plusieurs valeurs d'une requête
    Par Cupidon dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/10/2008, 17h10
  3. Réponses: 12
    Dernier message: 18/10/2007, 10h34
  4. Réponses: 3
    Dernier message: 20/05/2007, 23h41

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