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 :

Probleme pour Concaténer plusieurs enregistrements dans une seule colonne


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Probleme pour Concaténer plusieurs enregistrements dans une seule colonne
    Bonjour a tous

    Je me permets de vous contacter pour vous demander de l'aide par rapport au source Concaténer plusieurs enregistrements dans une seule colonne présent ici : http://access.developpez.com/sources...QLLigneColonne

    Je n'arrive pas a appliquer ce code qui me serait indispensable.

    J'ai une requete nommé Mail commande qui me donne la liste des commande avec le ou les mail lié a celle ci :
    134 toto@titi.fr
    134 titi@tutu.com
    135 truc@truc.com
    135 tyty@test.fr

    dans un module je place :

    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
     
    Public Function RecupProjet(N°Commande As string) As string
       Dim res As DAO.Recordset
       Dim SQL As String
       'Selectionne les  projet du partcipant
       'chr(34) correspond a des guillemets pour encadrer le texte
       SQL = "SELECT Mail FROM mailcommande WHERE N°Commande=" & _
              Chr(34) & N°Commande & Chr(34)
       Set res = CurrentDb.OpenRecordset(SQL)
       'Concatene les différents enregistrement
       While Not res.EOF
          RecupProjet = RecupProjet & res.Fields(0).Value & ";"
          res.MoveNext
        Wend
     
        'Enleve le dernier ;
        RecupProjet = Left(RecupProjet, Len(RecupProjet) - 1)
        'libere la mémoire
        Set res = Nothing
    End Function
    la requete sql :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT Mailcommande.N°Commande, Recupprojet(N°Commande) AS LesProjets
    FROM Mailcommande

    Mais il me renvoi cela :

    Type de donnée incompatible dans l'expression du critere


    Merci par avance de votre aide

    Cordialement

    Vincent

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Est-ce que N°Commande est bien une chaîne caractères ?

    Est-ce que si tu mets

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT Mailcommande.N°Commande
    FROM Mailcommande

    Tu obtients des résultats ?

    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Bonjour et merci pour ta reponse

    oui j'obtient bien la liste de toutes mes commandes. vois tu d'ou vient le problème?

    merci

    Vincent

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    J'ai bien peur que le DISTINCT n'aime pas trop l'appel à la fonction. Essaye en enlevant DISTINCT.

    De plus tu n'as pas répondu à ma question alors je la repose :-)

    Est-ce que N°Commande est bien une chaîne caractères ?

    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Bonjour René

    N°commande est de type numérique.

    Si j’enlève DISTINCT j'ai une erreur d’exécution 3464 Type de donnée incompatible dans l'expression du critère

    en cliquant sur débogage cette ligne se met en sur brillance :
    Set res = CurrentDb.OpenRecordset(SQL)

    vincent

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Re bonjour

    j'ai enlevé DISTINCT et enlevé dans le code les Chr(34) &

    merci de ta précieuse aide René

    Vincent

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Juste une petite question René

    J'ai environ 500 lignes et le temps de reponse pour afficher la requete est long saurais tu si on peux optimisé car la base va encore grossir et j'ai peur de ces longueurs merci

    Vincent

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    C'est le problème avec cela, et il n'y a pas d'astuce miracle. On peut utiliser un champ mémo pour enregistrer le résultat de la concacténation.

    Si tes données ne change pas constament tu peux par exemple lancer une requête de modification qui va mettre le champ à jour tous les soirs.

    Une autre solution est de faire ce travail, c-à-d enregistrer le résultat pour l'élément en cours, à chaque fois que tu en ajoutes, modifies ou supprimes un.

    Enfin tu pourrais regarder du côté du contrôle TreeView pour présenter ta concatenation sous forme d'arbre, à la demande.

    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Consultant CRM
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant CRM
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci pour ces informations

    si je peux abuser de ta connaissance je voudrai te soummettre mon cas peut etre verra tu de suite une solution sinon ce n'est pas grave.

    Concernant ce code tu l'aura compris je cherche a recuperer tous les emails liées à celle ci pour les concatener et me permettre ainsi d'envoyer une notification par email c'est pourquoi la concatenation avec le point virgule est idéal. En fait je n'ai pas besoin de les sauvegarder ni de les visualiser par la suite. J'en ai juste besoin momentanement lorsque je suis sur la fiche de la commande.

    J'ai tenté dans ma requete initial mailcommande de mettre en critere sur le champs N°Commande ceci : Formulaires![Détails de la commande validation]![N°Commande] afin de ne le faire que sur la commande en cours

    mais lors de l'ouverture de la requette faisant appel a la fonction j'ai une erreur d'execution

    vois tu comment je peux faire?

    Vincent

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Personnellement je ferai une table temporaire pour y stoker les infos pour ton email puis je ferai une fonction VBA de concaténation basée sur une requête paramétrée qui me donnerai seulement la liste des emails qui m'intresse.

    J'ajouterai le résultat dans ma table temporaire.

    Pour la concatenation ça resemblerai à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public function ConcatenerEmail(prmNoCommande as string) as string
       dim result as string
       dim db as dao.database:set db=currentdb
       dim q as dao.querydef:set q=db.querydefs("rSelectionneEmail")
       q.pramameters("prmNoCommande")=prmNoCommande
       dim r as dao.recordset:set r=q.openrecordset()
       '
       'ici le code qui calcul result (voir ton post)
       '
       r.close:set r=nothing
       set q=nothing
       set db=nothing
       ConcatenerEmail=result
    end function
    Ta requete devrait resembler à

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Mail FROM mailcommande WHERE N°Commande="""" & [prmNoCommande] & """"

    Pour définir un paramètre sur une requête il y a un choix Paramètre dans un des menus où tu peux saisir son nom et son type.

    Pour le traitement en lui même,

    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
    public sub CreerEMail(prmNoCommande as string)
       'Suppose un seul mail à la fois  
       dim db as dao.database:set db=currentdb
       dim q as dao.querydef
     
       'Vide la table temporaire
       set q=db.querydefs("rViderTableTempEMail")
       q.execute
     
       'Crée un enregistrement pour la commande courrante
       set q=db.querydefs("rRemplirTableTempEMail") 'Ceci est une requête d'ajout
       q.pramameters("prmNoCommande")=prmNoCommande
       q.execute
     
       dim r as dao.recordset: set r=db.openrecordset("TableTempEMail")
       r.edit
       r![eMail]=ConcatenerEmail(prmNoCommande)
       r.update
     
       r.close:set r=nothing
     
       set q=nothing
       set db=nothing
     
    end sub
    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.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'essaie d'employer le même script que Severik mais j'ai le message "Sélectionner la source de données".

    J'ai pensé au début à une erreur de syntaxe mais même en faisant un copier-coller du script d'exemple dans une db vierge (et en créant la table adéquate), j'ai le même message.

    quelqu'un pourrait-il m'aider à comprendre ?

    Pour info, je suis en access 2007

    Merci

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    Chercheuse Sciences humaines
    Inscrit en
    Juillet 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheuse Sciences humaines

    Informations forums :
    Inscription : Juillet 2014
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Je voudrais faire exactement ce qu'indique le tuto https://access.developpez.com/source...QLLigneColonne

    mais j'aimerais savoir s'il est possible de le faire sans passer par le module, d'autant que dans Access 2013 que j'utilise depuis peu, je ne trouve plus le bouton pour y accéder dans la Création de requête.

    Il s'agit de produire un état qui regroupe sur une même ligne tous les enregistrements d'une table de relation.

    Merci de votre aide.

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    Bonsoir,
    tu seras obligée de créer un module car je ne pense pas qu'une solution existe en SQL seul.
    pour le bouton Module, c'est dans l'onglet "Créer" du ruban :
    Nom : Acc_MenuCreer.JPG
Affichages : 638
Taille : 39,3 Ko
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  14. #14
    Nouveau membre du Club
    Femme Profil pro
    Chercheuse Sciences humaines
    Inscrit en
    Juillet 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheuse Sciences humaines

    Informations forums :
    Inscription : Juillet 2014
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    tu seras obligée de créer un module car je ne pense pas qu'une solution existe en SQL seul.
    Bonjour et merci pour cette réponse rapide,

    Puisque cette fonction me semble assez basique pour extraire des données d'un SGBDR (ça m'étonne que les programmateurs d'Access n'aient pas eu l'idée de faire une fonction simplifiée pour les utilisateurs qui ne font pas de code mais bref, c'est le paradoxe éternel de ce logiciel...), je me lance !

    J'ai créé le code avec mes paramètres (table de relation extraite en xlsx en PJ)

    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
    Public Function RecupUGF_ALTEREE(REF_UGF_ALTERATION As Long) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'Selectionne les UGF altérées par UGF altération
    SQL = "SELECT REF_UGF_ALTEREE FROM REL_UGF_ALTER WHERE REF_UGF_ALTERATION=" & REF_UGF_ALTERATION
    Set res = CurrentDb.OpenRecordset(SQL)
    'Concatene les différents enregistrements
    While Not res.EOF
    RecupUGF_ALTEREE = RecupUGF_ALTEREE & res.Fields(0).Value & " "
    res.MoveNext
    Wend
    'Enleve le dernier espace
    RecupUGF_ALTEREE = Left(RecupUGF_ALTEREE, Len(RecupUGF_ALTEREE) - 1)
    'libere la mémoire
    Set res = Nothing
    End Function
    C'est juste ?
    REF_UGF_ALTEREE = texte court
    REF_UGF_ALTERATION = texte court

    Je crée la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT REL_UGF_ALTER.REF_UGF_ALTERATION, RecupUGF_ALTEREE(REF_UGF_ALTERATION) As LES_UGF_ALTEREES
    FROM REL_UGF_ALTER
    Mais j'obtiens le message Fonction "RecupUGF_ALTEREE" non définie dans l’expression. (Erreur 3085)

    D'après l'Aide, il doit y avoir une erreur dans l'expression mais alors là je suis strictement incapable de la déceler !

    Je veux bien un petit coup de pouce. J'ai lu quelques tutos et autres cours mais je suis totalement ignorante en VBA... je me lance et je n'ai pas absolument tout lu sur le sujet, je vous remercie d'avance de votre indulgence.
    Fichiers attachés Fichiers attachés

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    Bonjour,
    as-tu compilé ton code (menu VBA : Débogage / Compiler) ? je pense que non et après l'avoir fait, tu devrais avoir un message "type défini par l'utilisateur non défini".
    Si c'est bien le cas, il faut ajouter la référence Microsoft Office 15.0 Access Database engine object Library (menu VBA : Outils / Références) pour utiliser DAO.

    Nom : Vba_References.JPG
Affichages : 729
Taille : 49,9 Ko

    Ensuite, dans le code de ta fonction RecupUGF_ALTEREE, il y a une erreur : tu as déclaré REF_UGF_ALTERATION As Long alors que c'est du String et comme c'est du texte il faut mettre des apostrophes dans la requête (et comme elles sont à l'intérieur d'autres apostrophes, il faut les doubler): WHERE REF_UGF_ALTERATION=""" & REF_UGF_ALTERATION & """". Pour le dernier espace, tu peux utiliser Rtrim() qui supprime les espaces à droite du texte ou alors Trim() qui supprime à gauche et à droite mais pas entre les textes.
    Tu recompiles pour vérifier s'il y a encore des erreurs.
    Voici le code corrigé :
    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
    Public Function RecupUGF_ALTEREE(REF_UGF_ALTERATION As String) As String
    Dim res As DAO.Recordset
    Dim SQL As String
    'Selectionne les UGF altérées par UGF altération
    SQL = "SELECT REF_UGF_ALTEREE FROM REL_UGF_ALTER WHERE REF_UGF_ALTERATION=""" & REF_UGF_ALTERATION & """"
    Set res = CurrentDb.OpenRecordset(SQL)
    'Concatene les différents enregistrements
    While Not res.EOF
        RecupUGF_ALTEREE = RecupUGF_ALTEREE & res.Fields(0).Value & " "
        res.MoveNext
    Wend
    'Enleve le dernier espace
    RecupUGF_ALTEREE = RTrim(RecupUGF_ALTEREE)
    'libere la mémoire
    Set res = Nothing
    End Function
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Chercheuse Sciences humaines
    Inscrit en
    Juillet 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheuse Sciences humaines

    Informations forums :
    Inscription : Juillet 2014
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    Merci tee_grandbois,

    J'ai fait toutes les modifs indiquées mais j'ai toujours le même message quand j'exécute la requête...

    Fonction "RecupUGF_ALTEREE" non définie dans l’expression


    Ps. Je n'ai pas eu le message "type défini par l'utilisateur non défini" mais la référence Microsoft Office 15.0 Access Database engine object Library était déjà cochée.

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bizarre. As-tu compilé le code ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Nouveau membre du Club
    Femme Profil pro
    Chercheuse Sciences humaines
    Inscrit en
    Juillet 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheuse Sciences humaines

    Informations forums :
    Inscription : Juillet 2014
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    Oui.

    Je peux envoyer ma base mais elle fait 10Mo...

  19. #19
    Nouveau membre du Club
    Femme Profil pro
    Chercheuse Sciences humaines
    Inscrit en
    Juillet 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheuse Sciences humaines

    Informations forums :
    Inscription : Juillet 2014
    Messages : 33
    Points : 35
    Points
    35
    Par défaut
    En cherchant dans une autre discussion, j'ai trouvé plusieurs options de solutions.

    1.
    Le Module contenant la fonction Recupparticipant est appelé Recup puisque je ne peux pas l'appelé du même nom que la fonction
    Je ne le savais pas donc j'ai renommé mon module Recup_ALTER1
    ... mais ça ne change rien.

    2. Une proposition de Maxence Hubiche : si le champ Projet de Gremchou est alphanumérique (équivalent REF_UGF_ALTERATION pour moi), alors il faut écrire la requête de cette façon :
    Citation Envoyé par Maxence HUBICHE Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT NomParticipant FROM Tbl_Projet WHERE Projet=" & Chr(34) & Projet & Chr(34)
    Mais ça ressemble fortement à la solution de Tee_Grandbois donc j'imagine que les deux ne peuvent pas coexister
    comme c'est du texte il faut mettre des apostrophes dans la requête (et comme elles sont à l'intérieur d'autres apostrophes, il faut les doubler ):
    WHERE REF_UGF_ALTERATION=""" & REF_UGF_ALTERATION & """"
    Qu'en pensez-vous ?

  20. #20
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    Bonjour,
    Je peux envoyer ma base mais elle fait 10Mo...
    tu peux la compacter (Menu Fichier / bouton Compacter et réparer la base de données), ensuite la compresser et joindre au message (petit trombone à droite du smiley) sans données sensibles ni confidentielles car tout ce qui est joint est accessible à tout le monde.
    Mais ça ressemble fortement à la solution de Tee_Grandbois donc j'imagine que les deux ne peuvent pas coexister
    L'une ou l'autre solution donnera le même résultat. Pour info, Chr(34) c'est le code numérique de la double apostrophe : "
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Réponses: 9
    Dernier message: 31/05/2017, 17h08
  2. Réponses: 11
    Dernier message: 24/07/2015, 19h17
  3. Réponses: 2
    Dernier message: 11/04/2014, 18h16
  4. [AC-2003] Concaténer plusieurs enregistrements dans une seule colonne
    Par pgomis dans le forum Access
    Réponses: 2
    Dernier message: 29/07/2013, 10h39
  5. Réponses: 4
    Dernier message: 29/10/2010, 17h05

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