PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Aucun enregistrement en cours n'est défini pour le fichier
Aucun enregistrement en cours n'est défini pour le fichier
Iniciado por Willf974, 01,nov. 2019 16:59 - 4 respuestas
Miembro registrado
36 mensajes
Publicado el 01,noviembre 2019 - 16:59
Bonjour, à tous.

Je bloque depuis un moment sur une petite erreur ;(

Vous avez appelé la fonction HEnregistre.
Aucun enregistrement en cours n'est défini pour le fichier <Formations_declare>.

Je précise que le fichier est vide, et c'est pour le 1er enregistrement.
Je me suis positionné sur le dernier enregistrement, par une lecture avec un HLitDernier.
Trace m'affiche : 0
HNumEnr = -1
et si je test avec Htrouve il me renvoie: faux

Je dois passer à côté de quelque chose d'évident, mais la je BUG et tous mes autres rubriques et fichiers fonctionnent bien !

Merci de votre aide.

Voila mon bout de code :
HRAZ()
EcranVersFichier()
HLitDernier(Formations_declare)

Trace(hNumEnrEnCours)
SI FI_Session_de_formation..Modifié ALORS

//EcranVersFichier()
HEnregistre (Formations_declare)



POUR TOUTE LIGNE de TABLE_Memoire_session
// Liste_individu_inscrits_formation.IDListe_individu_inscrits_formation = TABLE_Memoire_session.COL_IdIndividus
Liste_individu_inscrits_formation.IDIndividus = TABLE_Memoire_session.COL_IdIndividus
Liste_individu_inscrits_formation.Num_session = TABLE_Memoire_session.COL_Num_session

SI HAjoute(Liste_individu_inscrits_formation) = Vrai ALORS

SINON
Erreur("Échec de la sauvegarde des données")

FIN
ToastAffiche("Les données de la table ont été enregistrées")
// OngletFerme()
FIN

SINON
Erreur ("Pas d'éléments de formation saisies")

FIN
Miembro registrado
36 mensajes
Publicado el 01,noviembre 2019 - 19:27
A force de faire des tests j'ai réussi.
Je pense bien que si le fichier est vide ou 1er enregistrement, il faut plutôt utiliser Hajoute.
Mais c'est quoi la grosse différence entre HEnregistre et HAjoute, il doit bien y en avoir une ?}:(
Vais regarder l'aide de PC Soft
Miembro registrado
1.640 mensajes
Publicado el 04,noviembre 2019 - 10:33
Hello le problème vient du fait (je pense) que Formations_declare est vide quand tu tente de faire ton Henregistre()
En effet, tu fais :

EcranVersFichier() // Va ecrire en mémoire les infos contenues dans la fenêtre vers Formations_declare
HLitDernier(Formations_declare) --> Initialise Formations_declare avec le dernier enregistrement de la table, comme elle est vide, tu va vider Formations_declare
HEnregistre(Formations_declare) // Formations_declare etant vide.. il ne sait pas quoi en faire.

Il faudrait virer ton hlitDernier en fait, qui ne sert a rien (ou alors je n'ai pas compris ce que tu cherche a faire)
Miembro registrado
1.640 mensajes
Publicado el 04,noviembre 2019 - 10:37
Pour la difference entre Hajoute et Henregistre c'est qu'il va déterminer tout seul si tu tente d'ajouter une nouvelle donnée, ou modifier une donnée existente.

Ca evite d'avoir a se poser la question : "Si existe déja alors Hmodifie() sinon Hajoute"
Miembro registrado
36 mensajes
Publicado el 04,noviembre 2019 - 12:06
Bonjour, François.
Ta réponse est très claire.
Merci pour cette aide.
À bientôt :merci: