Gestion des Erreurs ACCESS

Résolu
guitare77210 Messages postés 5 Date d'inscription vendredi 9 octobre 2009 Statut Membre Dernière intervention 27 novembre 2010 - 26 nov. 2010 à 20:47
guitare77210 Messages postés 5 Date d'inscription vendredi 9 octobre 2009 Statut Membre Dernière intervention 27 novembre 2010 - 27 nov. 2010 à 15:51
Chers Delphinautes,Bonsoir

J'utilise une base ACCESS avec un composant ADOTABLE nommé COMPTES

Dans cette table j'ai plusieurs champs dont

la clé primaire COMPTE sans doublon
Le champ LIBELLE qui doit être renseigné.

j'ai créé un fenêtre contenant un DDNavigator et les
deux champs COMPTE et LIBELLE.

Quand je teste la gestion des erreurs ai problemo
J'effectue mes tests avec DBNavigator

J'utilise BeforePost et OnPostErreur sans grand résultat.
- Je n'arrive pas à gérer le le champs libellé quand il est vide, même en utilisant OnBeforePost, puisqu'il va en suite faire son OnPostError

- Dans OnPostErreur je ne vois pas comment gérer finement les erreurs, de doublon, d'intégrité, Champs vide, ..
Bien sur Avant de poster ce message j'ai cherché sans résultats probant.

Existe il un exemple de gestion des erreur ADO/ACCESS ? si oui ou ?

Merci d'avance pour vos réponses

2 réponses

guitare77210 Messages postés 5 Date d'inscription vendredi 9 octobre 2009 Statut Membre Dernière intervention 27 novembre 2010
27 nov. 2010 à 15:51
Bonjour YvesSimon
Bonjour les dephinautes

Merci pour ta patience

La connexion avec la table est faite et l'affichage dans un DBGRID est possible.

Je pense avoir trouvé une soluce

pour le test des doublons j'ai créé un deuxième ADOTABLE nommé COMPTES2
en ReadOnly.
Ensuite sur la gestion de l’évènement BeforePost du composant COMPTES j'ai écris le code suivant :

var
Clé, Libellé : string;
begin
COMPTES2.Refresh; // actualiser, les enregistrement sauf celui de Table1
// qui n'est pas posté
clé := COMPTESCompte.Value;
if COMPTES2.Seek(Clé) then
raise Exception.Create('Doublon sur le compte : ' + clé);

if COMPTES.FieldByName('Compte').IsNull then
raise Exception.Create('Compte non renseigné......');

Libellé := COMPTESLibellé.Value;
if Length(Trim(Libellé)) < 1 then
raise Exception.Create('Le libellé du compte : ' + clé + ' est vide');


Je déclenche une exception à chaque erreur de saisie sur la fiche.
cela semble fonctionner.
A moins que je m'égare ??
Est ce que j'utilise la procédure correct ?

Guitare77
3
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
27 nov. 2010 à 10:29
Bonjour,

La connexion à la table est-elle faite ?

Un affichage dans un DBGRID est-il possible ?

BON COURAGE


yvessimon
0
Rejoignez-nous