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 :

Concatenation via code VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 370
    Par défaut Concatenation via code VBA
    bonjour a tous ,

    a la recherche d'une solution pour ma requete ,je me permet d 'exprimer mon besoin . j'ai le tableau ci-dessous :

    Nom : for1.png
Affichages : 154
Taille : 20,1 Ko

    mon souhait est de concatonner la colonne : Num_compte , donc chaque NTiers dois avoir une seule ligne avec les 3 numero de compte .

    quelqu'un m'avait donner ce code , helas j'ai pu alles plus loin sur cette requete :

    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
     
    Function ConcatForQuery(strRegroup As String, fldRegroup As String, _
        strConcat As String, strTable As String, _
        Optional strSep As String = " / ") As String
    '** Regroupement de donnée sur le champ fldRegroup
    '** et concaténation sur le champ strConcat
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim strResult As String
    Dim strRst As String
     
    Set db = CurrentDb()
    strRst = "Select * From [" & strTable & "] " _
        & "Where [" & strRegroup & "] = """ & fldRegroup & """;"
     
    Set rst = db.OpenRecordset(strRst, dbOpenDynaset)
    With rst
        If Not .BOF Then
            .MoveFirst
            Do Until .EOF
                If strResult = "" Then
                    strResult = .Fields(strConcat)
                Else
                    strResult = strResult & strSep & .Fields(strConcat)
                End If
            .MoveNext
            Loop
        End If
    End With
    rst.Close: Set rst = Nothing
    db.Close: Set db = Nothing
    ConcatForQuery = strResult
    End Function

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    657
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 657
    Par défaut
    Bonjour,

    Je pense que tu devrais aller voir là : https://access.developpez.com/source...QLLigneColonne

    ONTAYG

  3. #3
    Membre éclairé Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 370
    Par défaut
    Bonjour ,

    j'ai fais le module suivant :

    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
    Public Function RecupProjet(Nom 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 Projet FROM 6 TIERS TEL PROF PP WHERE IDF_NUM_TIERS=" & _
              Chr(34) & Nom & 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
    ensuite la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT 6 TIERS TEL PROF PP.IDF_NUM_TIERS, Recupprojet(NomParticipant) AS NUM_COMPTE
    FROM 6 tiers tel prof pp;
    Nom de la table : 6 TIERS TEL PROF PP
    rassembler par : IDF_NUM_TIERS
    champ a concatonner : NUM_COMPTE

    apparement j'aurai un probleme de syntaxe

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    657
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 657
    Par défaut
    Essayes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Projet FROM [6 TIERS TEL PROF PP] WHERE IDF_NUM_TIER
    Mettre le nom de la table entre crochet car il y a des espaces.

  5. #5
    Membre éclairé Avatar de omen123
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2015
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2015
    Messages : 370
    Par défaut
    je ne dispose pas du champ projet dans ma requete /table

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    657
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 657
    Par défaut
    Citation Envoyé par omen123 Voir le message
    je ne dispose pas du champ projet dans ma requete /table
    Bien sûr il faut adapter la requête, le lien c'est le principe.

Discussions similaires

  1. Erreur gestion excel via code VBA dans access pour importation
    Par blacklolou dans le forum VBA Access
    Réponses: 4
    Dernier message: 11/01/2013, 10h24
  2. Comment imprimer un fichier "PRN" via code VBA.
    Par lakhdar16 dans le forum VBA Access
    Réponses: 7
    Dernier message: 08/03/2012, 18h55
  3. Tronquer text via code VBA
    Par developpeur_débutant dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 06/12/2011, 19h47
  4. Accés au donnés sur Excel via Code vba Access
    Par sakia dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/11/2007, 16h46
  5. Réponses: 5
    Dernier message: 03/08/2006, 16h13

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