OVH Cloud OVH Cloud

EOF sur un formulaire ?

3 réponses
Avatar
Michel J
Bonjour
j'ai un formulaire basé sur une table.
Dans ce formulaire, un clic sur un bouton de commande déclenche une
procédure évenementielle qui demande de parcourir tous les
enregistrements de la table en faisant pour chacun un calcul et cela
jusqu'à la fin des enregistrements.
Mais bizarememnt ma procédure continue après le 3300ième enregistrement
alors que c'est le dernier!
Mon formulaire est un recordset du type Feuille rép.dyn.(MAJ globale)

Set MaBd = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBd.OpenRecordset("Lecture", DB_OPEN_TABLE)
If MaTable.EOF Then
GoTo etiquettefin
Else
MaTable.MoveNext
GoTo etiquettedebut
End If

En fait ma procedure ne detecte pas que c'est la fin des enregistrements
et je ne comprends pas pourquoi????
Merci

3 réponses

Avatar
Jacques
Bonjour,
...
MaTable.MoveFirst
If MaTabel.EOF then
...


Jacques


"Michel J" a écrit dans le message de
news:
Bonjour
j'ai un formulaire basé sur une table.
Dans ce formulaire, un clic sur un bouton de commande déclenche une
procédure évenementielle qui demande de parcourir tous les
enregistrements de la table en faisant pour chacun un calcul et cela
jusqu'à la fin des enregistrements.
Mais bizarememnt ma procédure continue après le 3300ième enregistrement
alors que c'est le dernier!
Mon formulaire est un recordset du type Feuille rép.dyn.(MAJ globale)

Set MaBd = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBd.OpenRecordset("Lecture", DB_OPEN_TABLE)
If MaTable.EOF Then
GoTo etiquettefin
Else
MaTable.MoveNext
GoTo etiquettedebut
End If

En fait ma procedure ne detecte pas que c'est la fin des enregistrements
et je ne comprends pas pourquoi????
Merci



Avatar
3stone
Salut,

"Jacques"
| ...
| MaTable.MoveFirst
| If MaTabel.EOF then
| ...


Pourquoi ?
Un recordset est positionné sur le premier record, pour autant qu'il y en ait un...




Michel :

| > j'ai un formulaire basé sur une table.
| > Dans ce formulaire, un clic sur un bouton de commande déclenche une
| > procédure évenementielle qui demande de parcourir tous les
| > enregistrements de la table en faisant pour chacun un calcul et cela
| > jusqu'à la fin des enregistrements.
| > Mais bizarememnt ma procédure continue après le 3300ième enregistrement
| > alors que c'est le dernier!
| > Mon formulaire est un recordset du type Feuille rép.dyn.(MAJ globale)
| >
| > Set MaBd = DBEngine.Workspaces(0).Databases(0)
| > Set MaTable = MaBd.OpenRecordset("Lecture", DB_OPEN_TABLE)
| > If MaTable.EOF Then
| > GoTo etiquettefin
| > Else
| > MaTable.MoveNext
| > GoTo etiquettedebut
| > End If


où est le label "etiquettedebut" ?

Mais, vire moi ces goto etiquette vite fait, quelle horreur ;-(

Tu devrais expliquer ce que tu veux faire, car, puisque ton formulaire
est basé sur la table, tu devrais parcourir le Recordset.Clone


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Olivier 27
| >
| > Set MaBd = DBEngine.Workspaces(0).Databases(0)
| > Set MaTable = MaBd.OpenRecordset("Lecture", DB_OPEN_TABLE)
| > If MaTable.EOF Then
| > GoTo etiquettefin
| > Else
| > MaTable.MoveNext
| > GoTo etiquettedebut
| > End If


je te conseil d'utiliser while .... wend pour parcourir t'ais

enregistrements, c'est plus propre à lire.
Set MaBd = DBEngine.Workspaces(0).Databases(0)
Set MaTable = MaBd.OpenRecordset("Lecture", DB_OPEN_TABLE)
while MaTable.EOFúlse
MaTable.MoveNext
'GoTo etiquettedebut ' /* Place ton code étiquettedebut ici ou fait une
fonction et appel ta fonction */

où est le label "etiquettedebut" ?

Mais, vire moi ces goto etiquette vite fait, quelle horreur ;-(

Tu devrais expliquer ce que tu veux faire, car, puisque ton formulaire
est basé sur la table, tu devrais parcourir le Recordset.Clone


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



comme dit 3stone les goto etiquette sont une horreur et complique la
lecture du code, puis à mon avis ton problème vient de la.

bon chance

Olivier