Gestion des Erreurs ACCESS [Résolu]

Messages postés
5
Date d'inscription
vendredi 9 octobre 2009
Dernière intervention
27 novembre 2010
- - Dernière réponse : guitare77210
Messages postés
5
Date d'inscription
vendredi 9 octobre 2009
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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
5
Date d'inscription
vendredi 9 octobre 2009
Dernière intervention
27 novembre 2010
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de guitare77210
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Dernière intervention
9 janvier 2017
0
Merci
Bonjour,

La connexion à la table est-elle faite ?

Un affichage dans un DBGRID est-il possible ?

BON COURAGE


yvessimon
Commenter la réponse de yvessimon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.