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 :

extraire en VBA données d'une query [AC-2016]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 72
    Points : 55
    Points
    55
    Par défaut extraire en VBA données d'une query
    Bonjour,

    j'ai retravaillé à ma façon une démo intéressante trouvée sur le net pour extraire les données relatives aux codes postaux mais je coince :-)
    Le processus de recherche m'amène à l'affichage d'une query mentionnant toutes les communes ayant le même CP.

    Jusque là très bien mais je n'arrive pas (je suis assez faible en vba..) à extraire les informations relatives à l'enregistrement qui m'intéresse.

    Je pensais demander à VBA de se positionner sur l'enregistrement qui m'intéresse et ensuite extraire les données mais là impossible pour moi d'y parvenir.

    Si quelqu'un peut m'aider je l'en remercie vivement
    Prosper02

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    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 652
    Points : 14 631
    Points
    14 631
    Par défaut
    bonjour,
    Le processus de recherche m'amène à l'affichage d'une query mentionnant toutes les communes ayant le même CP.
    peux-tu poster le code SQL et afficher un exemple du résultat obtenu ?
    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 ?

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 72
    Points : 55
    Points
    55
    Par défaut
    Bonjour Tee_Grandbois,

    merci pour la réaction, voici les info's demandées

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT liste_rues.STRAATNM, liste_rues.STRAATNM2, liste_rues.SUBSTRNM, table_City.Localite, table_City.CodePostal, table_Country.Pays
    FROM liste_rues INNER JOIN (table_City INNER JOIN table_Country ON table_City.Country_FK = table_Country.Country_PK) ON liste_rues.PKANCODE = table_City.CodePostal
    WHERE (((liste_rues.STRAATNM)=[Forms]![Extraction_rues]![moteur_rue]));

    et le résultat de l'affichage du résultat où dans le cas présent je souhaiterais faire le choix de la commune qui m'intéresse et donc récupérer les données.

    Nom : Capture.PNG
Affichages : 196
Taille : 12,6 Ko

    Prosper02

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    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 652
    Points : 14 631
    Points
    14 631
    Par défaut
    je n'arrive pas (je suis assez faible en vba..) à extraire les informations relatives à l'enregistrement qui m'intéresse.
    - il faudrait préciser ce que tu entends par "extraire"
    - sinon, si c'est pour afficher il faudrait créer un sous-formulaire continu en mettant la requête comme source de ce sous-formulaire, puis, en cliquant sur l'enregistrement souhaité ouvrir un autre formulaire qui s'ouvrira grâce à l'identifiant de l'enregistrement sélectionné.
    Le code ressemblerait à ça (par exemple, sur clic de l'identifiant du sous-formulaire):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Identifiant_Click()
    DoCmd.OpenForm "NomduFormulaireAOuvrir", , , "Identifiant=" & Me.Identifiant
    End Sub
    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 ?

  5. #5
    Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 72
    Points : 55
    Points
    55
    Par défaut
    Reprenons la copie d'écran
    Arrivé à ce stade, je souhaite par exemple récupérer les informations reprises dans l'enregistrement où se trouve indiqué la commune "Wanze".

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    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 652
    Points : 14 631
    Points
    14 631
    Par défaut
    Citation Envoyé par prosper02
    je souhaite par exemple récupérer les informations reprises dans l'enregistrement où se trouve indiqué la commune "Wanze"
    cela ne répond pas vraiment à ma question, même si j'ai bien compris que tu veux récupérer un ligne de la sélection, mais pour en faire quoi: l'afficher (comme dans mon exemple), l'imprimer, l'exporter, un autre usage ... ?
    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 ?

  7. #7
    Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 72
    Points : 55
    Points
    55
    Par défaut
    Je souhaite récupérer ces données afin de compléter un fichier client qui au cours de l'encodage d'une nouvelle donnée va faire appel à cet écran.
    L'objectif étant de disposer de données correctes et de limiter les erreurs d'encodage.

  8. #8
    Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 72
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    je reviens après un peu d'absence car j'ai dû me consacrer à d'autres activités et je continue à bloquer sur ce point.

    Pas de réponse pour moi ou n'ai-je pas été assez clair dans ma demande ?

    Je place ci-après une copie d'écran de là où je suis arrivé et donc mon souhait est de récupérer les données de rue et de localité dans des variables de façon à pouvoir les intégrer dans l'adresse de la facture que je souhaite établir.

    Nom : Capture.PNG
Affichages : 220
Taille : 17,2 Ko

    merci à vous
    Prosper2

  9. #9
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Peut-être que cette proposition peut t'amener à tes fins...

    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
     
    Private Sub DetailLigne(ByVal Commune As String)
    Dim SQL                                                As String
    Dim oRS                                                As DAO.Recordset
        SQL = "SELECT R.STRAATNM, R.STRAATNM2, R.SUBSTRNM, C.Localite, C.CodePostal, P.Pays FROM liste_rues R INNER JOIN (table_City C INNER JOIN P ON C.Country_FK = P.Country_PK) ON R.PKANCODE = C.CodePostal WHERE R.STRAATNM='" & Commune & "';"
        Set oRS = CurrentDb.OpenRecordset(SQL, dbOpenDynaset)
        With oRS
            If Not .EOF Then
                MsgBox "J'ai trouvé :" & vbCrLf & "C'est " & .Fields("STRAATNM").Value & vbCrLf & "avec comme code postal " & .Fields("CodePostal").Value & vbCrLf & "et ça se trouve en " & .Fields("Pays").Value, vbInformation, "C'est OK"
            Else
                MsgBox "Bah, il n'y a aucun enregistrement existant sur le commune " & Commune & " !", vbExclamation, "Dommage"
            End If
            oRS.Close
            Set oRS = Nothing
        End With
    End Sub
    que tu appliques à un bouton nommée btnTrouverDetailMoteurRue comme suit, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub btnTrouverDetailMoteurRue_Click()
    Dim strVille                                             As String
        '   Défini la valeur de la commune
        strVille = Nz(Me!NomCommune, "")
        If strVille <> "" Then
            'appel la procédure
            Call DetailLigne(strVille)
        End If
    End Sub
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  10. #10
    Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 72
    Points : 55
    Points
    55
    Par défaut
    Bonjour Argygonet

    là franchement, je suis vraiment ravi de ta réaction car je suis persuadé que cela va m'aider à mieux appréhender les recordset qui sont pour moi un véritable casse-tête et ce même après avoir lu et relu le tuto de Christophe Warin qui est pourtant super bien fait.
    je teste la solution et donne du retour au plus vite

    Prosper02

  11. #11
    Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 72
    Points : 55
    Points
    55
    Par défaut
    Bonjour à tous,

    j'ai bien avancé grâce aux explications données mais reste un problème.
    lorsque je veux copier les noms de rue dans une table cela marche impeccablement sauf lorsqu'une apostrophe vient à se présenter

    J'ai déjà parcouru des tonnes de pages internet sans succès

    voici le code utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     requete = "INSERT INTO recherche_rue (indicateur_rues) VALUES ('" & rue & "')"
    si vous avez une idée pour résoudre ce problème sahant que je souhaite conserver l'apostrophe

    merci !!

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    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 652
    Points : 14 631
    Points
    14 631
    Par défaut
    bonjour,
    il faut doubler l'apostrophe avec Replace si il y en a une:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete = "INSERT INTO recherche_rue (indicateur_rues) VALUES ('" & Replace(rue, "'", "''") & "')"
    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 ?

  13. #13
    Membre du Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2013
    Messages : 72
    Points : 55
    Points
    55
    Par défaut
    Super, cela fonctionne parfaitement

    Merci à toi

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    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 652
    Points : 14 631
    Points
    14 631
    Par défaut
    Super.
    Pense à clore la discussion:
    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 ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/01/2015, 23h03
  2. extraire toutes les données d'une table (coté serveur)
    Par stoner2008 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 13/06/2014, 12h40
  3. Extraire ou filtrer données d'une liste avec conditions.
    Par SimonLefebvre dans le forum Excel
    Réponses: 7
    Dernier message: 08/10/2008, 07h02
  4. Réponses: 3
    Dernier message: 13/02/2008, 10h10
  5. Encoder des données d'une Query
    Par Inspirate dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/07/2007, 14h46

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