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 :

Fichier dat : comment l'exploiter ? [Débutant(e)]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut Fichier dat : comment l'exploiter ?
    Bonjour à tous,

    J'ai un fichier .dat contenant des données (réference et description). Entre chaque champ dans le bloc note, apparait une sorte de petit carré.

    Lorsque je veux importer ce fichier dans une table access, access n'arrive pas à voir plusieurs enregistrement mais juste tout sur une seule ligne avec ces petits symboles carrés.

    Comment est ce que je pourrais exploiter ce fichier en sachant que les enregistrements à l'intérieur sont très nombreux (plus de 1000) et que tout retoucher à la main pour le mettre au format me prendrait trop de temps.

    J'attends vos réponses avec impatience
    Denis

  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,

    il suffit de faire un Copier / Coller du petit carré et de le déclarer en séparateur de champ dans l'assistant d'importation ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Super Caféine ca marche.

    Seul problème sérieux, il m'importe les données en colonne et non en ligne. Y a t-il un moyen de "renverser" le processus de colonne à ligne ?
    Je suis assez novice désolé
    Denis

  4. #4
    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,

    l'importation se fait toujours de manière tabulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                             champ1   champ2 .. champ n
    enregistrement 1    x1          y1             z1
    enregistrement 1    x2          y2             z2
    ...
     
    enregistrement n    xn          yn             zn
    Comment se présente ton fichier source ?
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Voici un extrait de mon fichier :

    0160017  0160034  0220001  0220416  0220515

    J'aimerais qu'il y ait un numéro par ligne et non pas un numéro par colonne. Comment faire ?

  6. #6
    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
    tu fais une fonction VBA qui :
    1- ouvre ton fichier source en lecture
    2- ouvre un nouveau fichier en écriture

    Boucle sur le nb de lignes du fichier
    3- lit une ligne du source, remplace le carré par un saut de ligne
    4- écrit dans ton nouveau fichier la chaîne après remplacement
    Fin boucle

    5- ferme tout
    6- importe le nouveau fichier
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Cafeine tu es vraiment super ! Ca fait plaisir

    Pour ce qui est de la fonction VBA, ca a l'air bien. Penses-tu pouvoir m'aider dans la réalisation de cette fonction ? Parce que tout seul, je veux bien essayer mais je ne sais même pas par où commencer

  8. #8
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Voici ce que j'arrive à faire mais franchement je suis pas sur de moi et je bloque à l'étape 3. Qu'en pensez vous ?

    Private Sub MaJWishList()

    Open "E:\select.txt" For Input As #1
    ' Ouvre le fichier en lecture.
    Open "E:\selectUpdate.txt" For Output As #2
    ' Ouvre un nouveau fichier en écriture.
    Do While Not EOF(1)
    'ouverture de la boucle
    Input #1, ??????
    'lit une ligne du source, remplace le carré par un saut de ligne
    Print #2, ???
    'écrit dans ton nouveau fichier la chaîne après remplacement
    Loop
    Close #1
    Close #2
    End Sub

    Quel est le code à utiliser afin de lire une ligne du fichier source, de remplacer le carré par un saut de ligne et d'écrire dans le nouveau fichier la chaîne après remplacement

    J'avance un peu mais je patauge beaucoup

  9. #9
    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
    c'était pas loin

    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
    Sub ConvertFile(strFich, strFich2)
     
    Dim fic1 As Integer, fic2 As Integer
    Dim Expr As String, Exp() As String
    Dim i As Long
     
    ' fermons les fichiers
    Reset
     
    fic1 = 1
    fic2 = 2
     
    ' les ouvertures
    Open strFich For Input As #fic1
    Open strFich2 For Output As #fic2
     
    ' la dite boucle
    Do While Not (EOF(fic1))
        ' la récupération de ligne
        Line Input #fic1, Expr
        ' le découpage avec Split()
        Exp = Split(Expr, "<Met ici ton caractère carré>")
        For i = 0 To UBoud(Exp)
            ' écriture dans le fichier de sortie, mot par mot
            Print #fic2, Exp(i)
        Next i
    Loop
     
    ' on ferme les ptits fichiers
    Reset
     
    ' on importe le nouveau fichier
    ' merci de regarder l'aide pour ça ...
    DoCmd.TransferText ....
     
    End Sub
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  10. #10
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Merci Caféine j'exploite ca immédiatement

    Juste par souci de compréhension : où est ce que doivent apparaitre le nom des fichiers textes (monfichier.txt) ? Où est ce qu'apparaît le symbole pour saut de ligne ??

  11. #11
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Désolé Caféine pour ma question précédente. Après observation sérieuse, je pense avoir trouvé la réponse seule à ma question.

    Ci-dessous mon code final. Mais qq chose cloche encore, je ne sais pas quoi. Une idée ?


    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
     
    Option Compare Database
     
    Private Sub ConvertFile("E:\select.txt",  "E:\selectUpdate.txt")
     
    Dim fic1 As Integer, fic2 As Integer
    Dim Expr As String, Exp() As String
    Dim i As Long
     
    ' fermons les fichiers
    Reset
     
    fic1 = 1
    fic2 = 2
     
    ' les ouvertures
    Open "E:\select.txt" For Input As #fic1
    Open "E:\selectUpdate.txt" For Output As #fic2
     
    ' la dite boucle
    Do While Not (EOF(fic1))
        ' la récupération de ligne
        Line Input #fic1, Expr
        ' le découpage avec Split()
        Exp = Split(Expr, "")
        For i = 0 To UBoud(Exp)
            ' écriture dans le fichier de sortie, mot par mot
            Print #fic2, Exp(i)
        Next i
    Loop
     
    ' on ferme les ptits fichiers
    Reset
     
    ' on importe le nouveau fichier
    ' merci de regarder l'aide pour ça ...
    'DoCmd.TransferText ....
     
    End Sub
     
    Private Sub Command0_Click()
    Call ConvertFile
    End Sub
    [/code]

  12. #12
    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
    Citation Envoyé par denisfavre
    Merci cafeine j'exploite ca immédiatement

    Juste par souci de compréhension : où est ce que doivent apparaitre le nom des fichiers textes (monfichier.txt) ? Où est ce qu'apparaît le symbole pour saut de ligne ??
    au secours ...

    les strFic et strFic2 sont les arguments de la fonction ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Toto(x)
    Toto = x *2
    End Function
    pour l'appeler on fait
    ce qui donne 8 pour y au passage ...

    donc garde mon code ... et appelle la fonction comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConvertFile "E:\select.txt",  "E:\selectUpdate.txt"
    pour quoi faire le saut de ligne ?
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  13. #13
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Désolé je m'emmêle un peu les pinceaux...

    Pour les sauts de ligne : je pensais qu'il fallait remplacer les carrés par des sauts de lignes. Ca n'est pas nécessaire ?

    Pour ce qui est du début de la fonction, cela m'affiche un message d'erreur quelque soit la formule notée :
    Sub ConvertFile "E:\select.txt" ,"E:\selectUpdate.txt" ou
    ConvertFile ("E:\select.txt", "E:\selectUpdate.txt")

    Le message d'erreur : "compile error. Expected end of statement"

    Que me manque t-il pour que ca marche ?

  14. #14
    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
    Hepp !!!!

    j'ai mis ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConvertFile "E:\select.txt",  "E:\selectUpdate.txt"
    pas ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ConvertFile ("E:\select.txt",  "E:\selectUpdate.txt")
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  15. #15
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Vraiment désolé Caféine, j'essaie de faire de mon mieux mais mon niveau en vba est très bas

    Voici mon code revue et corrigé :

    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
     
    Option Compare Database
     
    ConvertFile "E:\select.txt", "E:\selectUpdate.txt"
     
    Dim fic1 As Integer, fic2 As Integer
    Dim Expr As String, Exp() As String
    Dim i As Long
     
    ' fermons les fichiers
    Reset
     
    fic1 = 1
    fic2 = 2
     
    ' les ouvertures
    Open "E:\select.txt" For Input As #fic1
    Open "E:\selectUpdate.txt" For Output As #fic2
     
    ' la dite boucle
    Do While Not (EOF(fic1))
        ' la récupération de ligne
        Line Input #fic1, Expr
        ' le découpage avec Split()
        Exp = Split(Expr, "")
        For i = 0 To UBoud(Exp)
            ' écriture dans le fichier de sortie, mot par mot
            Print #fic2, Exp(i)
        Next i
    Loop
     
    ' on ferme les ptits fichiers
    Reset
    Je fais ensuite un bouton pour appeler la fonction avec le code ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Command0_Click()
    Call ConvertFile
    End Sub

    Au final cela ne fonctionne pas quand je clique sur le bouton. Message d'erreur "Invalid outside procedure". Qu'en penses tu ?

  16. #16
    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
    pardon, mais je commence à me lasser

    merci de reprendre EXACTEMENT mon (premier) code.

    Pour lancer le traitement ajoute un bouton qui s'appellerait par exemple "MonBouton" dans l'événement Click
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub MonBouton_Click()
    ConvertFile "E:\select.txt", "E:\selectUpdate.txt"
    End Sub
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  17. #17
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Désolé Caféine, je fais vraiment de mon mieux mais je reste débutant...

    J'ai repris ton code à l'identique en commençant par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sub ConvertFile "E:\select.txt", "E:\selectUpdate.txt"

    J'obtiens une erreur d'entrée de jeu : "Compile Error, Expected End of statement" avec "E:\select.txt" qui se met en surligné...

    Ou est l'erreur ?

  18. #18
    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
    Hm ...

    il n'y a rien à remplacer dans le premier code que je t'ai donné

    il y a une sub (procédure) que je t'ai donnée ... rien à toucher

    il y a un code d'appel de cette sub ... que je t'ai donné aussi ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         ConvertFile "E:\select.txt", "E:\selectUpdate.txt"
    D'autre part, nous avons tous été débutants, mais là il faut que tu bûches un peu les cours/tutoriels/base exemple (comptoirs.mdb) ou un bouquin ... juste histoire de t'affranchir des fondamentaux.
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  19. #19
    Nouveau membre du Club
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Points : 25
    Points
    25
    Par défaut
    Encore désolé Caféine, merci pour tes conseils et message bien reçu...Je pense qu'il faut que je m'arme d'un peu plus de patience, je suis tellement pressé de progresser, j'espère que tu comprends

    Une dernière question :
    Jai tout remis au carré (premier et second code à l'identique). J'obtiens à présent le message derreur suivant: "Compile Error, Sub of Function not defined" avec UBoud en surligné...Qu'en penses-tu ?

  20. #20
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par denisfavre
    J'obtiens à présent le message derreur suivant: "Compile Error, Sub of Function not defined" avec UBoud en surligné...
    personnellement j'utilise la fonction UBound...

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

Discussions similaires

  1. Comment convertir fichier".dat" en un fichier ".m"
    Par megan3 dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/04/2008, 16h09
  2. Comment décoder de vieux fichier .DAT dos ?
    Par Cazaux-Moutou-Philippe dans le forum Langage
    Réponses: 10
    Dernier message: 16/10/2007, 17h25
  3. Réponses: 3
    Dernier message: 30/09/2007, 12h39
  4. Comment ouvrir un Fichier .DAT
    Par demcoul dans le forum Access
    Réponses: 2
    Dernier message: 04/03/2007, 13h05
  5. Fichier .dat MSSQL, comment le lire ?
    Par Ricot dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/09/2006, 16h26

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