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