Erreur a la commande HNbEnr apres execution d'une requete

Bonjour,

Je travaille avec WINDEV 16
Apres execution de la requete suivante:
REQ_Antecedents =
SELECT
DOSSIER_FICHPA.Compteur AS Compteur,
DOSSIER_FICHPA.Atcd AS Atcd,
T_patient_HF.nIdPatient AS nIdPatient
FROM
T_patient_HF,
DOSSIER_FICHPA
WHERE
T_patient_HF.nIdPatient = DOSSIER_FICHPA.Compteur
AND
(
DOSSIER_FICHPA.Atcd IS NOT NULL
)
par la commande suivante:
HExécuteRequête(REQ_Antecedents)
et appel de la commande HNbEnr(REQ_Antecedents)
je recois le message d’erreur suivant:
Erreur à la ligne 32 du traitement Procédure globale COCCI_RecupAntecedent_HF.
Vous avez appelé la fonction HNbEnr.
Erreur de l’accès OLE DB.
Numéro d’erreur = 170138
Echec de la récupération de la valeur de la rubrique du fichier <>.
Vérifiez que votre provider supporte les rubriques de type .
Détail de l’erreur système :
Description = Record is deleted.
Source = Microsoft JET Database Engine
Help Context = 5003167 (0x4c579f)
SQL State = 3167
Error Number = -2147217885 (0x80040e23)
Native Error Number = -66585593 (0xfc07fc07)
----- Informations techniques -----
Est que quelqu’un aurait une idee quel pourrait la source du probleme
Merci
Cordialement
Motti

Tu arrives à lire et récupérer la rubrique qui gène avec ?

hlitpremier(DOSSIER_FICHPA) 
trace(DOSSIER_FICHPA.atcd)

Car pour moi, c’est un problème d’accès au fichier
Edité le 22/05/2012 à 12:23

Bonjour Merlon,

J’ai ajoute ces 2 lignes de code avant le code qui plante
et le trace n’ecrit rien car le programme plante a la ligne suivante:
HLitPremier(DOSSIER_FICHPA)
Trace(DOSSIER_FICHPA.Atcd)
IF HExécuteRequête(REQ_Antecedents2) THEN
HLitPremier(REQ_Antecedents2)
IF HTrouve(REQ_Antecedents2) THEN
//gnNbAtcdTt = REQ_Antecedents3.NbEnreg
NbAtcdTt = HNbRec(REQ_Antecedents2)
ELSE
Error("HyperFileSQL error: " + HError())
END
END

le programme a la ligne HLitPremier(REQ_Antecedents2)
et affiche le message que j’ai indique dans le message precedent

Ah…Windev…:paf:

As tu verifier la connection à la base (verifie TOUTES tes variables) ?, ta base est-elle bien synchro avec ton projet (mise à niveau) ?

Bah euh…
Le fichier vient de quel base? (Acces, mysql,…)
La rubrique “atcd” elle de quel format sur la base? sur windev?

Essaye de le supprimer de l’analyse et de le réimporter.

Autrement sans passer par une requête, tu peux faire:

Pour tout T_Patient_HF
si hlitrecherchepremier(DOSSIER_FICHPA,Compteur,T_Patient_HF.nIdPatient) alors
 trace("ID:"+DOSSIER_FICHPA.Compteur)+" - "+DOSSIER_FICHPA.Atcd)
fin
fin

Edité le 23/05/2012 à 17:25

Very nice! :slight_smile:

Pour tout T_Patient_HF
si hlitrecherchepremier(DOSSIER_FICHPA,Compteur,T_Patient_HF.nIdPatient) alors
 trace("ID:"+DOSSIER_FICHPA.Compteur)+" - "+DOSSIER_FICHPA.Atcd)
fin
fin

autoclicker
Edité le 25/05/2012 à 14:25