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

VB 6 et antérieur Discussion :

[VB6]Les fichiers en VB???


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut [VB6]Les fichiers en VB???
    Bonjour et bon 1 er Mai!!!
    Voila j'ai un gros soucis...
    J'ai un projet à rendre en VB6 avec les fichiers.
    Le problème c'est que je ne sais pas comment on fait pour réécrire un enregistrement...
    Merci beaucoup d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 72
    Par défaut
    avec access ou juste dans un fichier texte?

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Dans ce cas sa serait pour réécrire une enregistrement dans un fichier texte.

  4. #4
    Membre confirmé Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Par défaut
    T'as essayé de regarder dans la FAQ ou le tutoriel VB!Je pense que tu trouveras certaines réponses à ton problème!
    Vu que tu veux faire un fichier qui permet de rajouter des enregistrements , je te conseille de regarder les fichiers à accès direct!
    Bonne continuation.

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    J'ai essayé de regarder dans la FAQ VB mais je ne trouve rien qui répond à ma question... désolé
    Ce que je souhaite c'est savoir comment on réécrit dans un fichier que l'on déjà créé. Voici le cours que l'on à fait mais visiblement cela ne marche pas
    6_ Réecrire un Enregistrement:

    Seek filenumber, Loc(filenumber)
    Put filenumber,,Varnam

    Par Exemple :
    Algorithimique :

    Lire (fClient, unClient)

    Réecrire (fClient, unClient)
    Visual Basic

    Get fClient,,unClient

    Seek fClient, LOC (fClient)
    Put fClient,,unClient

    1) Descriptions

    Filename : Cf Ouvrir un Fichier
    Varname : Nom de la variable source des informations à écrire
    Seek : Définit la position de la prochaine opération de la lecture/écriture dans un fichier ouvert à l’aide de l’instruction Open
    LOC : Renvoie une valeur de type Long indiquant la position de lecture courante dans un fichier ouvert ;
    Len : Donne la longueur d’une chaîne de caractère.


    2) Exemple :

    SUB cmdModifier_un_client()
    DIM idC AS String *6
    DIM fclient AS Long
    DIM unClient AS TyClient

    Fclient = filenum ()
    Open App.Path & « \ » & fClient For Random Access Write As fClient len = len (unClient)

    WHILE NOT EOF (fClient) AND unClient, idC<>idC
    Get fClient,,unClient
    WEND
    IF NOT EOF (fClient) THEN
    unClient.nom=Text2
    unClient.prénom=Text3
    unClient.mtFac=Text4
    Seek fClient, LOC (fClient)
    Put fClient,,unClient
    END IF
    Close (fClient)
    END SUB
    Je voudrais donc savoir votre avis sur ce morceaux de code, et si par la même occasion vous trouvez une erreur prévenez moi.
    Merci.

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bon je trouve pas grand chose à dire sur ce code... il doit fonctionner ... quel est ton probléme ...? tu ve l'adapter à un autre format d'enregistrement??
    .. Ce Code ne permet que la modification d'enregistrement existant ( même id Client...) s'il ne trouve pas d'enregistrement correspondant ..il ne fait ... rien ...? peu-être faut-il le modifier pour qu'il rajoute l'enregistrement en fin ?

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Bonsoir,
    Bin en fait le problème c'est que quand j'adapte ce code à mon projet :
    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
     
    Private Sub Command1_Click()
    Dim fpiece As Long
    Dim unP As Piece
    Dim Text1 As String * 6
    'ouvrir le fichier fProduit.fp
     
    fpiece = FreeFile()
     
    Open App.Path & "\" & Fpiecestr For Random Access Write _
    As fpiece Len = Len(unP)
     
    While Not EOF(fpiece) And unP.IdPiece <> Text1
        Get fpiece, , unP
    Wend
    If Not EOF(fpiece) Then
        unP.IdPiece = Text
        unP.NomPiece = Text2
        unP.PrixPiece = Text3
        unP.QteStockPiece = Val(Text8)
        unP.Entrepot = Text5
        unP.Cote = Text6
        Seek fpiece, Loc(fpiece)
        Put fpiece, , unP
    End If
    Close (fpiece)
    End Sub
    Sa ne marche pas

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par kriss_87
    Sa ne marche pas
    C'est curieux, je ne connais pas ce message d'erreur...

    Il est peut-être dans la dernière version de VB.
    Peut-être ne suis-je pas à jour
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  9. #9
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    quand tu dis ça marche pas cela nous aide pas beaucoup à comprendre ton probléme... que ce passe-t'il ??

    peu tu nous transmettre le code de définition de ton type Piece.. ainsi que ta procédure d'écriture d'enregistrement

  10. #10
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Ce qui se passe c'est que quand je lance mon projet et que je veux modifier la Quantité QtéStockPiece, VB me répond :
    erreur '63' : Numéro d'enregistrement Incorrect
    Voici mon code du type piece :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Public Type Piece
        IdPiece As String * 6
        NomPiece As String * 30
        PrixPiece As Single
        QteStockPiece As Single
        Entrepot As String * 30
        Cote As String * 10
    End Type
    Et mon code d'enregistrement :
    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
     
    Private Sub Command1_Click()
    Dim fpiece As Integer
    Dim unP As Piece
     
    'ouvrir le fichier fProduit.fp
     
    fpiece = FreeFile() 'freefile() retourne un numéro d'alias libre
     
    Open App.Path & "\" & Fpiecestr For Random Access Write _
    As fpiece Len = Len(unP)
     
    unP.IdPiece = Text1
    unP.NomPiece = Text2
    unP.PrixPiece = Text3
    unP.QteStockPiece = Text4
    unP.Entrepot = Combo1
    unP.Cote = Text5
     
    Seek fpiece, LOF(fpiece) \ Len(unP) + 1
     
    Put fpiece, , unP
     
    Close (fpiece)
    End Sub

  11. #11
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    c'est quoi cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Text1 As String * 6
    si text1 est une variable chaine ... pourquoi n'y affecte tu pas de valeur avant de l'utiliser ? text1 ne serai pas plutôt un text box ! essai de supprimer cette ligne !

  12. #12
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    j'ai supprimé la ligne DIM text1 as String
    et maintenant j'ai le droit à l'erreur :
    Erreur '75' Erreur dans le chemin d'accès
    En faisant débogage sa m'indique la ligne :
    Get Fpiece,,unP
    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
     
    Private Sub Command1_Click()
    Dim fpiece As Long
    Dim unP As Piece
     
    fpiece = FreeFile()
     
    Open App.Path & "\" & Fpiecestr For Random Access Write _
    As fpiece Len = Len(unP)
     
    While Not EOF(fpiece) And unP.IdPiece <> Text1
        Get fpiece, , unP
    Wend
    If Not EOF(fpiece) Then
        unP.IdPiece = Text
        unP.NomPiece = Text2
        unP.PrixPiece = Text3
        unP.QteStockPiece = Val(Text8)
        unP.Entrepot = Text5
        unP.Cote = Text6
        Seek fpiece, Loc(fpiece)
        Put fpiece, , unP
    End If
    Close (fpiece)
    End Sub

  13. #13
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tiens essai de modifier le début du code ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Command2_Click()
    Dim fpiece As Long
    Dim unP As Piece
    'ouvrir le fichier fProduit.fp
    Dim IdPiece As String * 6
    fpiece = FreeFile()
    IdPiece = Text1
    Open App.Path & "\" & Fpiecestr For Random As fpiece Len = Len(unP)
     
    While Not EOF(fpiece) And unP.IdPiece <> IdPiece
    ....

  14. #14
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 31
    Par défaut
    Cool merci beaucoup sa fonctionne parfaitement
    Encore merci Pour cet aide précieuse

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/08/2003, 13h21
  2. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  3. [VB6] ouvrir fichier sur glisser déplacer
    Par bhaal76 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/04/2003, 17h04
  4. [TP]Lister les fichiers d'un répertoire
    Par nvtitan dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 21/06/2002, 11h22
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

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