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

Access Discussion :

ajout a une table de données provenant d'un fichier texte


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut ajout a une table de données provenant d'un fichier texte
    Bonjour,

    Je suis en train de monter un programme de surveillance mais j'e rencontre un probleme sur une partie du code
    Je dois mettre a jour une table (prealablement vidée) a partir d'un fichier texte.

    Ce fichier texte a comme separateur "|"
    Afin d'etre sur de tout prendre je tente une boucle comme celle-ci :

    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
        Dim j As String
        Dim i As Integer
        Dim ifile As String
        Dim vsfile As String
        Dim sline As String
        Dim slineoriginal As String
        Dim rs As Recordset
     
        i = 1
     
        ifile = Freefile
        Open vsfile For Input As ifile
        For i = 1 To 5
            Line Input #ifile, sline
        Next
     
        Do While Not EOF(ifile)
            Line Input #1, slineoriginal
            sline = slineoriginal
            If (Left$(sline, 7) >= "1000000" And Left$(sline, 7) <= "3999999") Then
                rs.AddNew
                For j = 3 To Recordset.Fields.Count
                    i = InStr(sline, Chr$(124))
                    If i <> 0 Then
                        stexte = Left$(sline, i - 1)
                        Recordset.Fields.Item(j) = stexte
                        sline = Mid$(sline, i + 1)
                    Else
                        Recordset.Fields.Item(j) = sline
     
                Exit For
     
            End If
        Next
     
       Recordset.Update
     
       End If
    mais elle ne fonctionne pas

    Puis je vous demander votre aide ? merci d'avance

    modération : cafeine,

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    dans ton code Recordset n'est pas défini ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 22
    Points : 24
    Points
    24
    Par défaut
    je pense que tu peux faire ça plus simplement grace à l'instruction : ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferText acImportDelim, "NomTable", "SpécifImportation", Nom_fichier, True, ""
    où la spécification d'importation est un élément que tu vas devoir définir au préalable dans access (en réalisant l'import manuellement et en sauvegardant la spécif)
    et True c'est pour dire qu'il y a le nom des champs dans ton fichier, sinon tu mets false.

    et là ça te prendra 1 ligne de code !

  4. #4
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour cette commande mais il y a un element qui me pose probleme, j'ai besoin de faire un contrôle sur un separateur et donc voici pourquoi je me lancais dans la lecture sequentielle du fichier afin de trouver ce separateur.

    Est ce qu'il n'y aurait pas la même commande mais en incluant un caractere de delimitation ?
    Ici en l'occurence le caractere "|"

    Merci d'avance

  5. #5
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Essaie l'import manuel, tu verras que tu peux spécifier le caractère de séparation de champs ...

  6. #6
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Justement l'interet de ma fonction initiale etait justement un import en automatique, j'ai bien vu que l'import de table je pouvais faire l'equivalent du "text to column" dans Excell, je souhaites réellement importer cela en automatique.

    Selon vous comment definir l'equivalent du text to column en VBA ?

    Ou encore est ce qu'il est possible via un "DoCmd.TransferText" de definir un champs de separation ? et si oui comment SVP


    Merci d'avance pour votre aide

  7. #7
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Re,

    non tu n'as pas compris, si je parle d'import manuel c'est pour le faire une et une seule fois.

    en effet seul l'import manuel te permet de définir une spécification d'import (pour info stockées dans des tables systèmes : MSysIMEXSpecs et MSysIMEXColumns), dont tu pourras ensuite te resservir dans le code.

  8. #8
    Candidat au Club
    Inscrit en
    Octobre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Oui merci je viens effectivement de comprendre et de faire fonctionner cela.

    Tout fonctionne

    Merci beaucoup pour votre aide

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 710
    Points : 847
    Points
    847
    Par défaut
    Salut,

    Cela m'interesse. Peux tu nous dire plus précisement comme tu réutilise les spécifs d'importation ?

    A+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/01/2013, 23h19
  2. Réponses: 4
    Dernier message: 05/08/2009, 14h00
  3. Import de données provenant d'un fichier texte
    Par DanaX dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/09/2008, 11h25
  4. [Conception] Alimenter une base de données à partir d'un fichier texte
    Par gharbi5 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/10/2007, 13h12
  5. Réponses: 3
    Dernier message: 29/03/2006, 14h23

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