Problème au niveau des enregistrements

Signaler
Messages postés
304
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
10 mai 2017
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Coucou tous le monde

Voila, j’ai un petit pb. Je sais ça doit rien être en fait mais la je vois pas.
Alors, j’explique la chose : sur un premier formulaire, on choisi un mode de recherche. Et quand on valide, c’est ce même formulaire qui charge le premier enregistrement dans un formulaire resultat. Puis, s’il y a encore des enregistrements, on appuie sur le bouton suivant, puis on passe à l’enregistrement suivant.
Or ici, même s’il y a plusieurs enregistrements, dès qu’on appuie sur suivant, cela donne la même chose que s’il n’y en avait qu’un, c'est-à-dire une msgbox qui dit qu’il n’y a plus d’enregistrements.
J’ai beau déboger et je trouve tout le temps la même erreur, vb ne traduit ni le vrai, ni le true, ni le faux, ni le false, qui sont dans la condition si, il passe tout le temps dans le else, quelque soit la condition.
Voila mon code :

If rch_nouvo = True Then
If menu_princ.rq_nouvo.EOF <> False Or menu_princ.rq_nouvo.EOF = vrai Then
MsgBox ("il n'y a plus de nouveautés")
Else
menu_princ.rq_nouvo.MoveNext
Set rq_compte = base.OpenRecordset("select count (numobjet) as compte from exemplaire where surplace='oui' and numobjet= " & var_num & "")
numero = menu_princ.rq_nouvo!numobjet
resultats.titre_objet = menu_princ.rq_nouvo!titreobjet
resultats.auteur_objet = menu_princ.rq_nouvo!nomautact
resultats.annee_objet = menu_princ.rq_nouvo!anneesortieobjet
resultats.resum_objet = menu_princ.rq_nouvo!designobjet
resultats.dispo_objet = rq_compte!compte
End If
End If

Voila, si vous voyez ou ça va pas je vous remercie beaucoup.
Merci merci.
Bisous.

1 réponse

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut ndsaerith
Je n'ai pas tout compris parce que je ne connais pas ton appli et tes composants.
A mon avis, tu te compliques pour rien :
Pas la peine de rechercher le nombre d'enregistrements correspondants à ta recherche.
- Lance ta requète qui envoie les résultats dans le RecordSet nommé "Resultats".
- Dans Resultats.RecordCount tu auras le nombre de réponses.
- Fais un Resultats.MoveFirst puis ta routine qui transfère tes champs dans tes Labels
- Ensuite, à chaque fois que tu as besoin de voir l'enregistrement suivant :
If Not Resultats.EOF Then
Resultats.MoveNext
+ ta routine qui transfère tes champs dans tes Labels
Else
MsgBox "fini"
End If

De plus, la condition suivante est redondante :
If menu_princ.rq_nouvo.EOF <> False Or menu_princ.rq_nouvo.EOF = vrai Then
Ces deux termes veulent dire la même chose : Supprimes-en un (exemple : If Not menu_princ.rq_nouvo.EOF Then)

Vala
Jack