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 :

Import un Fichier txte Vertical vers un table Access horizontale [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Par défaut Import un Fichier txte Vertical vers un table Access horizontale
    Bonjour,

    est ce que si possible d'importer des information vertical d'une fichier texte sur une table Access horizontale:

    voila les deux table:



    et le table Access comme ce de suite:


    Palette Product Code Qty Label
    P023 MX65EL4C0117189 70 0000015744
    P023 MX65EL4C0117189 70 0000015745
    P008 MX65D06C0017186 35 0000019348
    P008 MX65D06C0017186 35 0000019349

    Sachant que le N° de palette n'était que a chaque début des articles intégrer dans cette palette.

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    Bien sûr que c'est possible !

    La 1re chose : importer ou lier le fichier texte dans la base de données Access en te servant de l'assistant. La table « REC » n'aura qu'une colonne appelée « Champ1 ».

    Ensuite un peu de VBA pour lire chaque enregistrement de REC pour reconstituer les 4 données et, à chaque rupture, ajouter un enregistrement dans la table cible.

  3. #3
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Par défaut Import un Fichier txte Vertical vers un table Access horizontale
    Bonjour,

    J'ai un peut former sur VBA, peut tu nous aider comment on peut créé ce code?

    Salutations

    dellal

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    OK, je teste.

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Voici.

    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
    35
    Public Sub AlimenterTable()
      Dim oRst As Recordset
      Dim sPalette As String
      Dim sProductCode As String
      Dim lQty As Long
      Dim sLabel As String
      Dim sSql As String
      'Lire la table REC
      Set oRst = CurrentDb.OpenRecordset("REC")
      oRst.MoveFirst
      Do While Not oRst.EOF
        'Controle de rupture sur la palette
        If oRst(1) Like "P*" Then
            sPalette = oRst(1)
            oRst.MoveNext
        End If
        sProductCode = oRst(1)
        oRst.MoveNext
        lQty = oRst(1)
        oRst.MoveNext
        sLabel = Format(oRst(1), "0000000000")
        sSql = "INSERT INTO LaTable ( Palette, ProductCode, QTy, Label ) " _
                & "SELECT """ & sPalette & """ AS Expr1, " _
                & """" & sProductCode & """ AS Expr2, " _
                & 99 & " AS Expr3, " _
                & """" & sLabel & """ AS Expr4;"
        DoCmd.SetWarnings False
        DoCmd.RunSQL sSql
        DoCmd.SetWarnings True
        oRst.MoveNext
      Loop
    sortie:
      oRst.Close
      Set oRst = Nothing
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Par défaut Import un Fichier txte Vertical vers un table Access horizontale
    Merci de votre effort ClaudeLELOUP , mais le module ne fonction pas correctement:

    Nom : 2017-12-01.png
Affichages : 384
Taille : 17,8 Ko

    d'autre part il ce peut que :

    les [qty] peut être changer de 35
    et le [Product code] peut être pas commencer par "MX"

    Salutations

    dellal

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    FICHIER ="c:\REC.txt"
    Open FICHIER For Input As #1
     t =split(trim( Input(LOF(1), #1)),vbcrlf)
    Close #1
     
    Set rs =CurrentDb.openrecordset("select * from tableDestination")
    For i=0 to ubound(t) step 3
    Rs.addnew 
    Rs(0)=t(i)
    Rs(1)=t(i +1)
    Rs(2)=t(i+2)
    Rs.update
    Next
    Dernière modification par Invité ; 23/12/2017 à 00h24.

  8. #8
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Par défaut
    C'est résolu

    Merci a tous

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu peux pas demander de l'aide et finir par merci c'était cool!

    Donnes ta solution pour le internautes qui pourraient avoir le même problème!
    Dernière modification par Invité ; 26/12/2017 à 18h14.

  10. #10
    Membre averti
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Collégien
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 53
    Par défaut
    Bonjour M.dysorthographie

    La résolution a été émis par M.ClaudeLELOUP qui me dirige depuis l'émission de ce poste.

    il n'est a rien a caché tous les question est réponses sont dans cette discussion, est aussi la base de donner de test.


    Citation Envoyé par ClaudeLELOUP Voir le message
    OK, j'ai compris : c'est ta procédure d'import qui n'est pas bonne (Public Sub ImportExcelSpreadsheet) : le modèle n'est pas bon, la longueur du champ1 est trop courte !

    Je l'ai corrigée (longueur du champ1 à 255).

    Saluations

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

Discussions similaires

  1. [XL-2013] comment importer les données de Fichiers excel vers une table access ?
    Par morobaboumar dans le forum Excel
    Réponses: 0
    Dernier message: 28/07/2017, 17h05
  2. importer un nombre n de fichiers excel vers Une table access
    Par mimieloic dans le forum VBA Access
    Réponses: 33
    Dernier message: 22/05/2015, 16h45
  3. [AC-2007] importer un fichier .txt vers ma table access en vba ?
    Par Debutant10 dans le forum VBA Access
    Réponses: 13
    Dernier message: 05/11/2011, 18h38
  4. [AC-2000] VBA, importation particulière fichier Excel vers une table access
    Par ElCyril dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/12/2010, 02h05
  5. Réponses: 170
    Dernier message: 12/08/2009, 09h56

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