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 :

comment extraire les données d'un champs


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut comment extraire les données d'un champs
    bonjour,
    dans le cadre d'un travail j'ai crée une base de données pour recenser les dossiers existant dans une entité
    j'ai commencé à saisir les données mais après un certain temps, je me rendais compte que j'aurais dû saisir les données autrement
    voici la table actuelle

    N° Code servic Nature Année Code Numéros
    3 S tr 2004 102 2-12-13-15-16-18-19-20-

    et voici le résultat que je veux voir affiché

    N° Code serv Nature Année Code b Numéros
    3 S tr 2004 102 2
    3 S tr 2004 102 12
    3 S tr 2004 102 13
    3 S tr 2004 102 15
    3 S tr 2004 102 16
    3 S tr 2004 102 18
    3 S tr 2004 102 19

    aidez moi svp

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 372
    Points
    34 372
    Par défaut
    salut,
    tu peux regarder les fonction split et ubound pour récupérer les valeurs entre "-" Plein d'exemple sont dispo sur le forum, et les tutos

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    merci
    mais j'arrive pas le faire
    voulez vous bien m'expliquer davantage
    merci infinment

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 372
    Points
    34 372
    Par défaut
    tu peux récupérer 2 12 etc dans un tableau avec
    tu créées donc un tableau Dim A(50) dans lequel tu récupères ces valeurs.
    tu parcours par la suite ton tableau et mets en place tes requêtes d'ajout

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut

    si je vous dis que je suis très débutant

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 372
    Points
    34 372
    Par défaut
    inutile de faire la tête hein, j'essaie de te faire progresser par toi même,
    utilise ce code pour comprendre comment on se sert de split:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim st As String
    Dim St1() As String
    st = "2-16-18-23-29"
    St1() = Split(st, "-")
    For i = 0 To UBound(St1)
       MsgBox St1(i)
    Next i

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    je vais créee un nouveau module n'est ce pas?

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 372
    Points
    34 372
    Par défaut
    oui tu peux

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    j'ai exécuter la commande
    et comme résultat un message s'affiche contenant les chiffres séparés
    mais c'est pas ça ce que je veux
    je veux que le champs "numéros" ma table, qui contient plus de 600 lignes, soit découpé
    c'est à dire je veux pour une ligne qui contient un champs "numéros" avec les valeurs suivantes "2-16-25-26-28" créer cinq lignes avec comme valeurs du champs numéros : 2 et 16 et 25 et 26 et 28 (une valeur pour chaque ligne)

  10. #10
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    autrement dit, avoir comme résultat une nouvelle table avec un champs "numéros" à une et une seule valeur

  11. #11
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 372
    Points
    34 372
    Par défaut
    bon, comme il faut te prendre par la main, on va le faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim st As String
    Dim St1() As String
    Dim RS as DAO.RecordSet
    Set RS = CurrentDb.Openrecordset("SELECT * FROM MaTable")
    'récupération de la liste à traiter
    do until RS.EOF
    st = RS!Numéros
    St1() = Split(st, "-")
    For i = 0 To UBound(St1)
    'ajout dans la table
       CUrrentDb.Execute "INSERT INTO ManouvelleTable (N°, Code, servic, Nature, Année, Code, Numéros)  VALUES(" & RS!N° &"," & RS!Code & ",'" & RS!Servic & "','" & RS!Nature & "', " & RS!Code & "," & St1(i) & ")"
    Next i
    RS.Movenext
    Loop
    ce code marche si tu as coché la référence DAO, et que les tables soient bien nommées, que les types de champs correspondent.

    J'ai très bien compris ce que tu veux, mais si je fais à ta place, tu ne progressera pas, ce qui n'est pas dans notre intérêt, ni pour toi, ni pour moi

    Adapte ce code et tu t'en sortiras

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    excusez mon ignorance
    voilà, j'ai adapté le code et après exécution un message d'erreur s'affiche...
    je pense qu'il a une relation avec l'activation de la référence DAO
    comment faire pour la cocher?

  13. #13
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    voilà
    j'ai coché le réf DAO

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    j'exécute
    un message d'erreur s'affiche " erreur de compilation : instruction incorrecte à l'éxtérieur d'une procédure"
    SET

  15. #15
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 372
    Points
    34 372
    Par défaut
    tu dois mettre le code dans une procédure

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
    'code ici 
    End Sub

  16. #16
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    erreur de compilation : erreur de syntaxe

    CUrrentDb.Execute "INSERT INTO invent (N°, Code, Nature, Année, Codebur, Numéros ) VALUES(" & RS!N° &"," & RS!Code & ",'" & RS! Nature & "','" & RS!Année & "', " & RS!Codebur & "," & St1(i) & ")"

  17. #17
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par atmar Voir le message
    erreur de compilation : erreur de syntaxe

    CUrrentDb.Execute "INSERT INTO invent (N°, Code, Nature, Année, Codebur, Numéros ) VALUES(" & RS!N° &"," & RS!Code & ",'" & RS! Nature & "','" & RS!Année & "', " & RS!Codebur & "," & St1(i) & ")"

    CurrentDb.Execute "INSERT INTO invent (N°, Code, Nature, Année, Codebur, Numéros) VALUES(" & RS!N° & "," & RS!Code & ",'" & RS!Nature & "','" & RS!Année & "', " & RS!Codebur & "," & St1(i) & ")"

  18. #18
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    cette dernière syntaxe génère l'erreur suivante :
    erreur d'exécution
    trop peu de paramètre .1 attendu

  19. #19
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 372
    Points
    34 372
    Par défaut
    pas grave,
    peux-tu nous donner les types des champs de la table (numérique, texte, date, etc.) stp ?

  20. #20
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Points : 20
    Points
    20
    Par défaut
    N° : NuméroAuto
    Code,Nature, Année,Codebur, Codenat : texte
    Numéros : mémo
    anneefer : numérique

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Comment extraire les données 2 fois
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/07/2013, 18h02
  2. Comment extraire les données d'un fichier txt dans un tableau excel
    Par mirage23 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/11/2012, 09h16
  3. Réponses: 2
    Dernier message: 29/03/2012, 12h54
  4. [AC-2003] Comment diviser les données d'un champs en 2 champs?
    Par victorzecat dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/08/2009, 19h38
  5. [Talend open studio] Comment extraire les données à partir d'Oracle ?
    Par aymengomez dans le forum Développement de jobs
    Réponses: 19
    Dernier message: 15/05/2009, 12h09

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