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...:oops:
Merci beaucoup d'avance.:D
Version imprimable
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...:oops:
Merci beaucoup d'avance.:D
avec access ou juste dans un fichier texte?
Dans ce cas sa serait pour réécrire une enregistrement dans un fichier texte.
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.
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 :(
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.Citation:
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
Merci.
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 ?
Bonsoir,
Bin en fait le problème c'est que quand j'adapte ce code à mon projet :
Sa ne marche pas :aie:Code:
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
C'est curieux, je ne connais pas ce message d'erreur...Citation:
Envoyé par kriss_87
Il est peut-être dans la dernière version de VB.
Peut-être ne suis-je pas à jour :mouarf:
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
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 :Voici mon code du type piece :Citation:
erreur '63' : Numéro d'enregistrement Incorrect
Et mon code d'enregistrement :Code:
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
Code:
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
c'est quoi cette ligne :
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 !Code:Dim Text1 As String * 6
j'ai supprimé la ligne DIM text1 as String
et maintenant j'ai le droit à l'erreur :
En faisant débogage sa m'indique la ligne :Citation:
Erreur '75' Erreur dans le chemin d'accès
Citation:
Get Fpiece,,unP
Code:
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
tiens essai de modifier le début du code ...
Code:
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 ....
Cool merci beaucoup sa fonctionne parfaitement :king:
Encore merci Pour cet aide précieuse ;)