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 :

txt vers table


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut txt vers table
    Ce code fonctionne mais seulement apres l'avoir lance une foie et créer une erreur.
    Je veux recupérer les données de mon fichier 0.txt dans une la table "tbl_MOE" sur une ligne d'enregisterment.

    Il s'agit d'une erreur avec les addnew et addedit je pense.

    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
    'Charge la table en mémoire
    Set oRst = CurrentDb.OpenRecordset("Tbl MEO", dbOpenTable)
    oRst.AddNew
    'Tant que non fin de fichier
    While Not oFichier.AtEndOfStream
      'lit la ligne
       strLigne = oFichier.ReadLine
       'Si elle est pas vide
       If Trim(strLigne) <> "" Then
                If oRst.EditMode = dbEditAdd Then
                'Récupère la position des =
                i = InStr(1, strLigne, "=", vbTextCompare)
                If i > 0 Then
                    'Récupère le nom du champ et la valeur
                    strNomChamp = Left(strLigne, i - 1)
                    strValeur = Trim(Mid(strLigne, i + 1))
                    oRst.Fields(strNomChamp).Value = strValeur
                    oRst.Update
                End If
                Else
                oRst.Edit
                'Récupère la position des =
                i = InStr(1, strLigne, "=", vbTextCompare)
                If i > 0 Then
                    'Récupère le nom du champ et la valeur
                    strNomChamp = Left(strLigne, i - 1)
                    strValeur = Trim(Mid(strLigne, i + 1))
                    oRst.Fields(strNomChamp).Value = strValeur
                    oRst.Update
                    oRst.Edit
                End If

  2. #2
    ARO
    ARO est déconnecté
    Membre habitué

    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 74
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Il faut faire un Edit puis la modification du champ, et un update pour appliquer cette modification.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    oRst.Edit 
    oRst.Fields(strNomChamp).Value = strValeur
    oRst.Update

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    erreur d'execution '3021'
    aucun enregistrement en cours

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut Re: txt vers table
    Le oRst.AddNew et oRst.Edit ne sont pas à la bonne place

    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
    'Charge la table en mémoire
    Set oRst = CurrentDb.OpenRecordset("Tbl MEO", dbOpenTable)
     
    'Tant que non fin de fichier
    While Not oFichier.AtEndOfStream
      'lit la ligne
       strLigne = oFichier.ReadLine
       'Si elle est pas vide
       If Trim(strLigne) <> "" Then
                If oRst.EditMode = dbEditAdd Then
                'Récupère la position des =
                i = InStr(1, strLigne, "=", vbTextCompare)
                If i > 0 Then
                    'Récupère le nom du champ et la valeur
                    strNomChamp = Left(strLigne, i - 1)
                    strValeur = Trim(Mid(strLigne, i + 1))
                    oRst.AddNew
                    oRst.Fields(strNomChamp).Value = strValeur
                    oRst.Update
                End If
                Else
     
                'Récupère la position des =
                i = InStr(1, strLigne, "=", vbTextCompare)
                If i > 0 Then
                    'Récupère le nom du champ et la valeur
                    strNomChamp = Left(strLigne, i - 1)
                    strValeur = Trim(Mid(strLigne, i + 1))
                     oRst.Edit
                    oRst.Fields(strNomChamp).Value = strValeur
                    oRst.Update
                    oRst.Edit
                End If

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    C'est comme ca que je l'avais mis au debut.
    MAIS ca fait la meme erreur malgre tout

    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
    'Charge la table en mémoire
    Set oRst = CurrentDb.OpenRecordset("Tbl MEO", dbOpenTable)
     
    'Tant que non fin de fichier
    While Not oFichier.AtEndOfStream
      'lit la ligne
       strLigne = oFichier.ReadLine
       'Si elle est pas vide
       If Trim(strLigne) <> "" Then
                If oRst.EditMode = dbEditAdd Then
                'Récupère la position des =
                i = InStr(1, strLigne, "=", vbTextCompare)
                If i > 0 Then
                    'Récupère le nom du champ et la valeur
                    strNomChamp = Left(strLigne, i - 1)
                    strValeur = Trim(Mid(strLigne, i + 1))
                    oRst.AddNew
                    oRst.Fields(strNomChamp).Value = strValeur
                    oRst.Update
                End If
                Else
     
                'Récupère la position des =
                i = InStr(1, strLigne, "=", vbTextCompare)
                If i > 0 Then
                    'Récupère le nom du champ et la valeur
                    strNomChamp = Left(strLigne, i - 1)
                    strValeur = Trim(Mid(strLigne, i + 1))
                    oRst.Edit
                    oRst.Fields(strNomChamp).Value = strValeur
                    oRst.Update
                    oRst.Edit
                End If
               End If
        Else
            'Affiche le message terminé
            MsgBox "Terminé", vbInformation
        End If
    Wend

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Peut envoyer un package conntenant un fichier txt et le module si quelqu'un veut voir.

    Le probleme, est que si je mets un addnew dans le else, il n'y a plus d'erreur mais il y a une valeur par ligne et par champ comme une matrice diagonale.

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Fan du 5eme element

    Please Me

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

Discussions similaires

  1. [WD16] Extraction chaine de txt vers table
    Par christophe9117 dans le forum WinDev
    Réponses: 4
    Dernier message: 22/08/2011, 03h21
  2. Comment transformer les tables dans un fichier txt vers une BD comme Mysql
    Par badrdine.in dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 20/03/2009, 12h58
  3. Import txt vers table
    Par bennyben87 dans le forum Administration
    Réponses: 4
    Dernier message: 18/03/2009, 14h22
  4. fichier txt vers table access Shema.ini
    Par psyko72 dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/07/2007, 11h13
  5. fichier txt vers une table acces
    Par sahraoui07 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 23/03/2007, 19h02

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