Prob DAO et ses méthodes BOF et EOF ( j'en ai trop marre :cry: ) [VB] - Programmation
Marsh Posté le 19-12-2001 à 20:27:11
Tu n'utilises pas bien .BOF 
En fait la propriété BOF "est l'enregistrement" qui précède le premier de la table. 
En gros quand tu fais : 
if not enr.bof then 
enr.moveprevious 
call Affectation_champ_texte  
... 
 
tu vérifies que tu es sur un enreg, puis tu vas au précédent, c'est à dire: si tu es sur le premier enreg de la table, .BOF renvoie False, puis tu vas au précédent (BOF=True) et tu enchaines sur Affectation_champ_texte alors que enr n'est plus synchro sur un enreg !! 
 
Il faut faire d'abord le enr.moveprevious, puis ton test enr.bof 
 
J'espère que c'est clair ? 
 
A+ 
Marsh Posté le 19-12-2001 à 21:30:11
ahhhhhhhhhhhhhhhhhhhhh, z'ai compris oui  
 
 
le prob c'est que si je met "Enr.MovePrevious" avant "if not Enr.BOF", cela crée une erreur puisque lorsque BOF = True il ne peut pas faire Enr.MovePrevious puisque pas d'enregistrement 
donc c'est moin clair  
  
 
Marsh Posté le 19-12-2001 à 22:02:28
Bon je vient de trouver un truc 
j'utilise la méthode .RecordCount pour connaitre le nombre d'enregistrement dans mon objet recordset ou je pourrai mettre sa valeur dans une variable que je décremente 
ce qui donne dans la structure de décision 
 
Private Sub cmdSuivant_Click() 
    If Enr.EOF = False And nombre_de_record <= 0 Then 
        Enr.MoveNext 
        Call Affectation_champ_texte 
    End If 
End Sub 
 
à moin qu'il y ai une méthode pour retourner la valeur de l'enregistrement sur lequel on est comme ca je la mets direct dans la structure de décision 
Voila 
Help me please  
  
 
Marsh Posté le 19-12-2001 à 22:51:53
Monologueeeeeeeeeeeeeeeeeeeeee  
 
 
bon j'ai trouve, chui vraiment une pov tâche moi c'est grave  
 
en fait j'ai fait une structure double décisions imbriquées ... 50 Hit Combo  
 
ca donen ca tout simplement: 
 
Private Sub cmdPrecedent_Click() 
    If Enr.BOF = False Then        Enr.MovePrevious 
        If Enr.BOF = False Then 
            Call Affectation_champ_texte 
        End If 
    End If 
End Sub 
 
enfin ze v pouvoir avance   
   
   
   
   
 
 
Monologueeeeeeeeeeeeeeeeeeeeee  
 
Marsh Posté le 20-12-2001 à 09:11:27
Désolé pour le monologue  
 
Pour ton premier test if enr.bof = false, c'est vrai qu'en général je n'en ai pas besoin parce que je me suis assuré avant que des enregs existent et que je suis synchro avec. 
Là ça dépend plus de la structure de ton prog. 
 
A+ 
Marsh Posté le 20-12-2001 à 10:20:28
| sylderon a écrit a écrit  : Désolé pour le monologue   Pour ton premier test if enr.bof = false, c'est vrai qu'en général je n'en ai pas besoin parce que je me suis assuré avant que des enregs existent et que je suis synchro avec. Là ça dépend plus de la structure de ton prog. A+ | 
 
Tu peut detaille pour "les enregistrement existe et s'ils sont synchro" ? 
Autre question qui n'as rien à voir, ecque tu as une méthode pour gèrer les valeurs NULL quand tu les affectes à des zones de texte ? 
Marsh Posté le 19-12-2001 à 19:49:33
bouhouhou 
 
 
   
   
 
Voila je vous montre mon code qui marche pas
Private Sub Form_Load()
Call main
Set Enr = BDD.OpenRecordset("Acteurs" )
Enr.MoveFirst
Call Affectation_champ_texte
End Sub
Private Sub cmdPrecedent_Click()
If Enr.BOF = False Then
Enr.MovePrevious
Call Affectation_champ_texte
End If
End Sub
Ca fait trop chier, la procédure Affectation_champ_texte permet la gestion des valeurs NULL quand j'affecte des champs aux zones de texte
Le prob c'est que lorsque je lance l'exécution la méthode BOF fait tout plante cela parcque qu'il à la valeur False (donc exécute la procedure Affectation_champ_texte), comprend pas normallement il devrait savoir qu'il est au BOF
moi j'en peux plus help please je commence a
[edtdd]--Message édité par Liquid--[/edtdd]