Probleme sur VB
Résolu/Fermé
haddadmarc
Messages postés
59
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2012
-
27 avril 2008 à 18:12
haddadmarc Messages postés 59 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 1 octobre 2012 - 27 avril 2008 à 22:13
haddadmarc Messages postés 59 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 1 octobre 2012 - 27 avril 2008 à 22:13
A voir également:
- Probleme sur VB
- Vb cable - Télécharger - Audio & Musique
- Vb - Télécharger - Langages
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Les fonctionnalités suivantes ne peuvent pas être enregistrées projet vb ✓ - Forum Excel
4 réponses
bonjour,
Qu'est ce que tu n'arrive pas à faire?
J'ai regardé ton code.
A la place de ImputBox, j'aurais utilisé MsgBox en tant que fonction
ret = MsgBox("voulez vous vraiment supprimer", vbInformation + vbYesNo, "Suppression")
If ret = vbNo Then Exit Sub
A chaque suppression, tu réécrit complètement le fichier, c'est assez lourd.
A ta place, j'aurais réservé une variable Status as Boolean dans le Record vt. A chaque suppression, il suffit de mettre Status = False et mettre à jour l'enregistrement.
A chaque nouvelle création, on récupère une place libre s'il y en a. Un seul fichier suffit, plus de Kill ni de Name.
Mais à part ces différence de méthodes, ton code à l'air de tenir. Alors qu'est ce qui ne marche pas?
A+.
Qu'est ce que tu n'arrive pas à faire?
J'ai regardé ton code.
A la place de ImputBox, j'aurais utilisé MsgBox en tant que fonction
ret = MsgBox("voulez vous vraiment supprimer", vbInformation + vbYesNo, "Suppression")
If ret = vbNo Then Exit Sub
A chaque suppression, tu réécrit complètement le fichier, c'est assez lourd.
A ta place, j'aurais réservé une variable Status as Boolean dans le Record vt. A chaque suppression, il suffit de mettre Status = False et mettre à jour l'enregistrement.
A chaque nouvelle création, on récupère une place libre s'il y en a. Un seul fichier suffit, plus de Kill ni de Name.
Mais à part ces différence de méthodes, ton code à l'air de tenir. Alors qu'est ce qui ne marche pas?
A+.
OK,
La première erreur est là:
If UCase(rep) = "n" Then Exit Sub
Else ' <----Supprime cette ligne
i = 1
j = 1
'
'
'
vt.nbre = nbre
End If ' <----Supprime cette ligne
Ou alors il faut mettre
If UCase(rep) = "n" Then
Exit Sub
Else
'
'
'
vt.nbre = nbre
End If
Pour la seconde erreur i = Loc(165) tedonne la position corante dans le fichier
pour te positionner dans le fichier, il faut donner une valeur à i
pour le suivant:
i=i+1
Get #165, i + 1, vt
Il faut juste verifier que i >0 et i <=LOF(165)/Len(vt)
Pour le suivant:
if i = LOF(165)/Len(vt) then exit sub
i=i+1
End If ' <----Supprime cette ligne
Ou alors il faut mettre
If UCase(rep) = "n" Then
Exit Sub
Else
'
'
'
vt.nbre = nbre
End If
Pour la seconde erreur i = Loc(165) te donne la position courante dans le fichier
pour te positionner dans le fichier, il faut donner une valeur à i
pour le suivant:
i=Loc(165)
if i = LOF(165)/Len(vt) then exit sub
i=i+1
Get #165, i + 1, vt
pour le prédedent
i=Loc(165)
if i=1 then exit sub
i=i-1
Get #165, i + 1, vt
A+.
La première erreur est là:
If UCase(rep) = "n" Then Exit Sub
Else ' <----Supprime cette ligne
i = 1
j = 1
'
'
'
vt.nbre = nbre
End If ' <----Supprime cette ligne
Ou alors il faut mettre
If UCase(rep) = "n" Then
Exit Sub
Else
'
'
'
vt.nbre = nbre
End If
Pour la seconde erreur i = Loc(165) tedonne la position corante dans le fichier
pour te positionner dans le fichier, il faut donner une valeur à i
pour le suivant:
i=i+1
Get #165, i + 1, vt
Il faut juste verifier que i >0 et i <=LOF(165)/Len(vt)
Pour le suivant:
if i = LOF(165)/Len(vt) then exit sub
i=i+1
End If ' <----Supprime cette ligne
Ou alors il faut mettre
If UCase(rep) = "n" Then
Exit Sub
Else
'
'
'
vt.nbre = nbre
End If
Pour la seconde erreur i = Loc(165) te donne la position courante dans le fichier
pour te positionner dans le fichier, il faut donner une valeur à i
pour le suivant:
i=Loc(165)
if i = LOF(165)/Len(vt) then exit sub
i=i+1
Get #165, i + 1, vt
pour le prédedent
i=Loc(165)
if i=1 then exit sub
i=i-1
Get #165, i + 1, vt
A+.
haddadmarc
Messages postés
59
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2012
1
27 avril 2008 à 21:56
27 avril 2008 à 21:56
merci pour ton aide ca passe
Je crois qu'il y a eu un cafouillage dans les copie/colle du précédent post , j'espère que t'a réussi à décoder.
A+.
A+.
J'espère que tu avais vu que je m'étais trompé là:
i=Loc(165)
if i = LOF(165)/Len(vt) then exit sub
i=i+1
Get #165, i + 1, vt
il faut mettre juste
Get #165, i, vt
pareil pour là
pour le prédedent
i=Loc(165)
if i=1 then exit sub
i=i-1
Get #165, i, vt
bonne continuation
i=Loc(165)
if i = LOF(165)/Len(vt) then exit sub
i=i+1
Get #165, i + 1, vt
il faut mettre juste
Get #165, i, vt
pareil pour là
pour le prédedent
i=Loc(165)
if i=1 then exit sub
i=i-1
Get #165, i, vt
bonne continuation
haddadmarc
Messages postés
59
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
1 octobre 2012
1
27 avril 2008 à 22:13
27 avril 2008 à 22:13
oui je l'ai corrigé merci encore
27 avril 2008 à 19:35
le probleme c'est que quand je lance l'application tout marche mais quand je veux supprimer un enregidtrement je click sur supprimer on me met: Erreur de Compilation; Else sans If
je ne comprend pas
et pou le bouton suivant quand je suis sur le premier enregistrement que je click sur suivant on me met le message que contient mon msgbox pourtant ya plusieurs enregistrement.
excusez si je vous fatigue
merci d'avance