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 :

Création d'un fichier txt avec une table Access [Toutes versions]


Sujet :

VBA Access

  1. #41
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 955
    Points
    55 955
    Billets dans le blog
    131
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If NombreDeSeparateurs = NombreAttendu Then
        ... ' traitement normal
    Else
       ... ' Traitement de l'erreur par écriture dans une table de log ou un fichier log
    End If
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------
      0  0

  2. #42
    Invité
    Invité(e)
    Par défaut
    Bonsoirs,
    Comme je l'ai dis plus comme Pierre également , si il n'y a pas de solution contournes la.
    comme je te l'ai déjà suggéré je concatènerai autant de [;] qu'il y a. De champs si pour une raison obscure il n'y avait pas de ; le ubound ferrait erreur!

    Rajouter autant de points virgules que de champs sous entend que le ubond retourne le double de la taille -1

    Ce ai évite toute ambiguïté!

    Maintenant si tu concatènes ton message champ avec autant se point virgule qu'il y a de champs, tu peux vérifier si tel champs est un numérique, si tel champ est un prénom si tel champ est un nom et si il n'y a qu'un prénom décider arbitrairement ue c'est le nom!
    Pour cela il te faut un dictionnaire de prénom.

    J'avais trouvé tout le prénom connus à l'état civil belge ça me faisait un bonne échantillon!
    Dernière modification par Invité ; 21/09/2016 à 00h37.
      1  0

  3. #43
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Bonsoirs,
    Comme je l'ai dis plus comme Pierre également , si il n'y a pas de solution contournes la.
    comme je te l'ai déjà suggéré je concatènerai autant de [;] qu'il y a. De champs si pour une raison obscure il n'y avait pas de ; le ubound ferrait erreur!

    Rajouter autant de points virgules que de champs sous entend que le ubond retourne le double de la taille -1

    Ce ai évite toute ambiguïté!

    Maintenant si tu concatènes ton message champ avec autant se point virgule qu'il y a de champs, tu peux vérifier si tel champs est un numérique, si tel champ est un prénom si tel champ est un nom et si il n'y a qu'un prénom décider arbitrairement ue c'est le nom!
    Pour cela il te faut un dictionnaire de prénom.

    J'avais trouvé tout le prénom connus à l'état civil belge ça me faisait un bonne échantillon!
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    ligne = oTxt.ReadLine
        strArray = Split(ligne, ";")
     
        For i = LBound(strArray) To UBound(strArray)
            strArray(i) = Replace(Trim(strArray(i)), """", "")  ' replace " by nothing
        Next
     
        DoCmd.RunSQL "UPDATE Champ SET Position_CSV = -1 WHERE Table = '" & TableName & "'"
        Set rst = CurrentDb.OpenRecordset("SELECT * FROM Champ WHERE Table = '" & TableName & "' Order by OrderIndex")
        If rst.RecordCount > 0 Then
            rst.MoveFirst
            Do While Not rst.EOF
                'Debug.Print rst!Champ
     
                For i = LBound(strArray) To UBound(strArray)  ' find index in the array
                    If rst!Champ = strArray(i) Then
                        DoCmd.RunSQL "UPDATE Champ SET Position_CSV = " & i & " WHERE Table = '" & TableName & "' AND Champ = '" & rst!Champ & "'"
                    End If
                Next
     
                rst.MoveNext
            Loop
        End If
     
        ' insert values
        Set rst = CurrentDb.OpenRecordset("SELECT * FROM Champ WHERE Position_CSV <> -1 AND Table = '" & TableName & "' Order by OrderIndex")
        If rst.RecordCount > 0 Then
            While Not oTxt.AtEndOfStream
                ligne = oTxt.ReadLine
     
                strArray = Split(ligne, ";")
     
                Set rst2 = CurrentDb.OpenRecordset(TableName)
                rst2.AddNew
     
                rst.MoveFirst
                Do While Not rst.EOF
     
     
     
                    data = Replace(strArray(rst!Position_CSV), """", "")
                    End If
     
                    If strArray(rst!Position_CSV) <> "" And strArray(rst!Position_CSV) <> """""" Then
     
                        rst2(rst!Champ).Value = data
     
     
                    End If
                    rst.MoveNext
                Loop
                rst2.Update
            Wend
        End If
     
        oTxt.Close
    End Function
     
    Function Traitement_Fichier_M(PathF, NameF, Index) 
        If Index = 8 Then
            Set rst = CurrentDb.OpenRecordset("SELECT DISTINCT Table FROM Champ ")
            If rst.RecordCount > 0 Then
                rst.MoveFirst
                Do While Not rst.EOF
                    If InStr(1, NameF, rst!Table & "_") = 1 Then   ' starts with TableName_
                    
                    End If
                    rst.MoveNext
                Loop
            End If
        End If
     
    End Function
    je n'arrive pas à placer mon if rst!Position_CSV=i then (traitement normale)
    else msg box("non traité")
    end if
    si jamais vous avez des idees
    merci
      0  0

  4. #44
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    imaginons qu tu est 3 champs!
    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
    Sub test()
    ligne = String(1, ";") 'ici j'ai 2 champs et pas 3
     strArray = Split(ligne & String(2, ";"), ";")
     If UBound(strArray) < 4 Then 
           MsgBox "ne pourra pas être traité!" 'plus petit que 5 champs vue que le tabeau commence à 0
    else
        for i=0 to 2
        next
     
    '            For i = LBound(strArray) To UBound(strArray)  ' find index in the array
    '                If rst!Champ = strArray(i) Then
     '                   DoCmd.RunSQL "UPDATE Champ SET Position_CSV = " & i & " WHERE Table = '" & TableName & "' AND Champ = '" & rst!Champ & "'"
    '                End If
    '           Next
    end if
    End Sub
    Nom : Sans titre.png
Affichages : 181
Taille : 2,6 Ko
    Dernière modification par Invité ; 21/09/2016 à 14h06.
      1  0

  5. #45
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Bonjour,
    imaginons qu tu est 3 champs!
    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
    Sub test()
    ligne = String(1, ";") 'ici j'ai 2 champs et pas 3
     strArray = Split(ligne & String(2, ";"), ";")
     If UBound(strArray) < 4 Then 
           MsgBox "ne pourra pas être traité!" 'plus petit que 5 champs vue que le tabeau commence à 0
    else
        for i=0 to 2
        next
     
    '            For i = LBound(strArray) To UBound(strArray)  ' find index in the array
    '                If rst!Champ = strArray(i) Then
     '                   DoCmd.RunSQL "UPDATE Champ SET Position_CSV = " & i & " WHERE Table = '" & TableName & "' AND Champ = '" & rst!Champ & "'"
    '                End If
    '           Next
    end if
    End Sub
    Nom : Sans titre.png
Affichages : 181
Taille : 2,6 Ko
    ta macro s'excute bien jusq'au la ligne ou il ya une erreur j'ai un msg ne pouura pas etre traite et ensuite elle plante
    sur la ligne :
    data = Replace(strArray(rst!Position_CSV), """", "")

    elle ne poursuit pas le traitement
      0  0

  6. #46
    Invité
    Invité(e)
    Par défaut
    Vraisemblablement tu n'as pas compris ce que j'ai voulu dire car ça ne devrait pas planté car tubas le message et data = Replace(strArray(rst!Position_CSV), """", "") devrait ce trouvé dans le else!

    Bien sur ils faut tenir compte du nombre de ;,dans ton split.

    En d'autre terme tu as x champs matérialiste par de ; compte le nombre max possible -1.
      1  0

  7. #47
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Vraisemblablement tu n'as pas compris ce que j'ai voulu dire car ça ne devrait pas planté car tubas le message et data = Replace(strArray(rst!Position_CSV), """", "") devrait ce trouvé dans le else!

    Bien sur ils faut tenir compte du nombre de ;,dans ton split.

    En d'autre terme tu as x champs matérialiste par de ; compte le nombre max possible -1.
    Toujours un pb de boucle

    même en modifiant le else et le nombre de champs
      0  1

  8. #48
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 955
    Points
    55 955
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par watred Voir le message
    [...]
    data = Replace(strArray(rst!Position_CSV), """", "")

    elle ne poursuit pas le traitement
    C'est vraiment trop difficile de donner le contenu de strArray et de rst!Position_CSV? Et tu affectes le résultat à une variable nommée data? D'où sort-elle, cette variable? Elle n'est pas déclarée dans ta procédure. As-tu la déclaration obligatoire des variables (Ligne Option Explicit en tout début de module)? Et tant qu'on y est, donner le message d'erreur, c'est parfois une bonne idée!

    Tu crois qu'on a une boule de cristal où une connexion fantôme vers ton pc?

    48 messages pour un problème qui est probablement basique simplement parce que tu ne nous aides pas à t'aider!
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------
      2  0

  9. #49
    Invité
    Invité(e)
    Par défaut
    il me faut absolument la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ligne = oTxt.ReadLine
    debug.print  ligne
    pour lire la valeur ouvre la fenêtre d’exécution raccourci [Ctrl] + [G] et execute le programme en pas à pas touche [F8]

    si le données sont confidentiel replace les par des valeur bidon mais il me faut absolument le nombre de [;] dans un cas de figure qui fonctionne

    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
     
    ' insert values
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM Champ WHERE Position_CSV <> -1 AND Table = '" & TableName & "' Order by OrderIndex")
    If rst.RecordCount > 0 Then
        While Not oTxt.AtEndOfStream
            ligne = oTxt.ReadLine
            'Debug.Print Ligne
     
            strArray = Split(ligne & ";", ";")
            If UBound(strArray) < 3 Then 'si tu as 3 champs
                MsgBox "ne pourra pas être traité!"
            Else
                 strArray = Split(ligne , ";")
                Set rst2 = CurrentDb.OpenRecordset(TableName)
                rst2.AddNew
                rst.MoveFirst
                Do While Not rst.EOF
                    data = Replace(strArray(rst!Position_CSV), """", "")
                    If strArray(rst!Position_CSV) <> "" And strArray(rst!Position_CSV) <> """""" Then
                     rst2(rst!Champ).Value = data
                    End If
                    rst.MoveNext
                Loop
                rst2.Update
            End If
        Wend
    End If
    oTxt.Close
    End Function
    pour information,comme le disait Pierre, il est difficile d'aider quelqu'un qui ne fournit pas d'information.

    De plus tu nomes tes objet de façon incohérente en regard du langage usuel.
    Il ma fallu du temps pour comprendre que Champ était une table alors que Tb_Champ ne laisse aucune ambiguïté!

    Préfixe tes objet (Tb_,Rq_,Fm_,Et_) pour (table,requête,formulaire,état)!
    Dernière modification par Invité ; 22/09/2016 à 08h47.
      1  0

  10. #50
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    il me faut absolument la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ligne = oTxt.ReadLine
    debug.print  ligne
    pour lire la valeur ouvre la fenêtre d’exécution raccourci [Ctrl] + [G] et execute le programme en pas à pas touche [F8]

    si le données sont confidentiel replace les par des valeur bidon mais il me faut absolument le nombre de [;] dans un cas de figure qui fonctionne

    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
     
    ' insert values
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM Champ WHERE Position_CSV <> -1 AND Table = '" & TableName & "' Order by OrderIndex")
    If rst.RecordCount > 0 Then
        While Not oTxt.AtEndOfStream
            ligne = oTxt.ReadLine
            'Debug.Print Ligne
     
            strArray = Split(ligne & ";", ";")
            If UBound(strArray) < 3 Then 'si tu as 3 champs
                MsgBox "ne pourra pas être traité!"
            Else
                 strArray = Split(ligne , ";")
                Set rst2 = CurrentDb.OpenRecordset(TableName)
                rst2.AddNew
                rst.MoveFirst
                Do While Not rst.EOF
                    data = Replace(strArray(rst!Position_CSV), """", "")
                    If strArray(rst!Position_CSV) <> "" And strArray(rst!Position_CSV) <> """""" Then
                     rst2(rst!Champ).Value = data
                    End If
                    rst.MoveNext
                Loop
                rst2.Update
            End If
        Wend
    End If
    oTxt.Close
    End Function
    pour information,comme le disait Pierre, il est difficile d'aider quelqu'un qui ne fournit pas d'information.

    De plus tu nomes tes objet de façon incohérente en regard du langage usuel.
    Il ma fallu du temps pour comprendre que Champ était une table alors que Tb_Champ ne laisse aucune ambiguïté!

    Préfixe tes objet (Tb_,Rq_,Fm_,Et_) pour (table,requête,formulaire,état)!
    hello,
    trouvé finalement c'était juste un pb de boucle il fallait inversé les arguments
    voici le progo si ca peut aidé :
    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
      If UBound(strArray) = i Then 'si tu as 3 champs
     
     
                 strArray = Split(ligne, ";")
                Set rst2 = CurrentDb.OpenRecordset(TableName)
                rst2.AddNew
                rst.MoveFirst
                Do While Not rst.EOF
                    data = Replace(strArray(rst!Position_CSV), """", "")
                    If strArray(rst!Position_CSV) <> "" And strArray(rst!Position_CSV) <> """""" Then
                     rst2(rst!Champ).Value = data
                     Else
                     rst2(rst!Champ).Value = "0"
                    End If
                    rst.MoveNext
                Loop
    merci bcq de votre aide
      0  0

  11. #51
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Basiquement, voici comment coder un export txt sur base d'une table de la base Access courante... Le reste, ce n'est jamais que du formatage de données pour préparer la ligne. Après, on peut enjoliver avec un objet qui récupère l'enregistrement et qui propose une propriété qui crée la ligne, mais l'apport technologique est assez faible. Si une donnée pose problème pour son écriture en chaine de caractère (une date, par exemple), il existe des fonctions qui permettent une conversion aisée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function Export_Txt()
      Dim rs As DAO.Recordset
     
      Open "d:\export.txt" For Output As #1
     
      Set rs = CurrentDb.OpenRecordset("contact")
      Do While Not rs.EOF
        Print #1, rs.Fields("id") & ";"; rs.Fields("Prenom") & ";" & rs.Fields("nom")
        rs.MoveNext
      Loop
      Close #1
    End Function
    le fichier txt est également réussi grace à ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function Export_Txt()
      Dim rs As DAO.Recordset
     
      Open "d:\export.txt" For Output As #1
     
      Set rs = CurrentDb.OpenRecordset("contact")
      Do While Not rs.EOF
        Print #1, rs.Fields("id") & ";"; rs.Fields("Prenom") & ";" & rs.Fields("nom")
        rs.MoveNext
      Loop
      Close #1
    End Function
    Merci encore
      1  0

  12. #52
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Le temps d'exécution de macro me semble lent, n'existe-il pas un moyen d'optimiser celui ci?
    Car une boucle qui parcours plusieurs fichiers pour chercher les données


    merci
      0  0

  13. #53
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function Export_Txt()
      Dim rs As DAO.Recordset,txt as string
       Set rs = CurrentDb.OpenRecordset("contact")
      Do While Not rs.EOF
         txt=txt &   rs.Fields("id") & ";" &  rs.Fields("Prenom") & ";" & rs.Fields("nom") & vbcrlf
         rs.MoveNext
      Loop
     Open "d:\export.txt" For Output As #1
     Print #1,txt
     Close #1
    End Function
      2  0

  14. #54
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Re,
    c'est surtout le code d'avant
    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
     insert values
    Set rst = CurrentDb.OpenRecordset("SELECT * FROM Champ WHERE Position_CSV <> -1 AND Table = '" & TableName & "' Order by OrderIndex")
    If rst.RecordCount > 0 Then
        While Not oTxt.AtEndOfStream
            ligne = oTxt.ReadLine
            'Debug.Print Ligne
     
            strArray = Split(ligne & ";", ";")
            If UBound(strArray) < 3 Then 'si tu as 3 champs
                MsgBox "ne pourra pas être traité!"
            Else
                 strArray = Split(ligne , ";")
                Set rst2 = CurrentDb.OpenRecordset(TableName)
                rst2.AddNew
                rst.MoveFirst
                Do While Not rst.EOF
                    data = Replace(strArray(rst!Position_CSV), """", "")
                    If strArray(rst!Position_CSV) <> "" And strArray(rst!Position_CSV) <> """""" Then
                     rst2(rst!Champ).Value = data
                    End If
                    rst.MoveNext
                Loop
                rst2.Update
            End If
        Wend
    End If
    oTxt.Close
    End Function
    Merci
      0  0

  15. #55
    Invité
    Invité(e)
    Par défaut
    déjà ton code me paris énormément complique pour ce que j'ai compris et je ne vois as la notion de fichier et de répertoire!
      1  0

  16. #56
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    déjà ton code me paris énormément complique pour ce que j'ai compris et je ne vois as la notion de fichier et de répertoire!
    La notion de fichier et répertoire viens dans la partie export celle ci est assez rapide. Mais quand me programme parcours toutes les tables (tables name comme variable) celui ci met du temps dans les boucles.
    Cordialement,
      0  0

  17. #57
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par watred Voir le message
    La notion de fichier et répertoire viens dans la partie export celle ci est assez rapide. Mais quand me programme parcours toutes les tables (tables name comme variable) celui ci met du temps dans les boucles.
    Cordialement,
    oui mais d'ou vient Mais quand me programme parcours toutes les tables (tables name comme variable)

    nous ne trayons que sur un code qui me parais à la base bazarroîd , sur lequel nous ne savons ni les tenants et les aboutissant!

    je ne peux pas te proposer de solution optimisé!
      1  0

  18. #58
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Septembre 2016
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Septembre 2016
    Messages : 67
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    oui mais d'ou vient Mais quand me programme parcours toutes les tables (tables name comme variable)

    nous ne trayons que sur un code qui me parais à la base bazarroîd , sur lequel nous ne savons ni les tenants et les aboutissant!

    je ne peux pas te proposer de solution optimisé!
    Ma question était dans le sens si il existe des formules pour alléger les boucles
    Mercî suand meme
      0  0

Discussion fermée
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. [AC-2000] Problème Import fichier .txt dans une table Access
    Par sylviobarca dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/12/2010, 18h17
  2. remplissage d'un fichier excel avec une table access
    Par lupus83 dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/08/2007, 15h24
  3. Réponses: 3
    Dernier message: 06/03/2007, 00h54
  4. Réponses: 8
    Dernier message: 28/12/2006, 15h18
  5. importation d'un fichier txt dans une table
    Par pierre.egaud dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/09/2006, 17h26

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