ADOTable... Disable Append [Résolu]

mtaallah 30 Messages postés lundi 10 décembre 2001Date d'inscription 13 décembre 2006 Dernière intervention - 8 nov. 2006 à 20:26 - Dernière réponse : mtaallah 30 Messages postés lundi 10 décembre 2001Date d'inscription 13 décembre 2006 Dernière intervention
- 9 nov. 2006 à 11:08
Salut à tous,
   Lors de la saisie des valeus dans un DBGrid, je voudrai effectuer un certain genre de vérification, en modifiant n'importe quelle valeur, il faut vérifier un champ s'il est vide ou non...
   J'ai essayé la procédure suivante:
procedure TFormNote.TntDBGrid1CellClick(Column: TColumn);
   begin
     If ADOTable1.FieldByName('Ref').Value='' then    // Ref est la clé primaire du table...
        Begin
           ShowMessage ('YOU CAN NO ADD NEW RECORDS!');
           ADOTable1.delete;
           ADOTable1.Prior;                                                  
       end;
  end;

   mais il m'affiche le message suivant:
          Can not convert variant of type (String) into type (Double)

 Mon but c'est de ne pas permettre l'ajout de nouveaux enregistrements automatiquement... je cheche une procedure de type disable append, append.disable... etc.
Merci
Afficher la suite 

Votre réponse

4 réponses

cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 9 nov. 2006 à 00:03
+3
Utile
Salut,

Tu peux aussi bien mettre la propriété ReadOnly du contrôle TDbGrid à True ou encore modifier la propriété Options de ce même contrôle (dgEditing à false par exemple).

En ce qui concerne le message d'erreur "Can not convert...", c'est normal.
Tu as deux possibilités :
1- Utiliser la fonction VarIsNull :
If VarIsNull(ADOTable1.FieldByName('Ref').Value) then...

Mais ce n'est pas la méthode la plus efficace (le traitement des variants est lent et gourmand en mémoire).

2- Pour tester si un champ est nul
if AdoTable1.FieldByName('Ref').IsNull then...

Rien qu'en appliquant la méthode indiquée au début de cette réponse, tu ne dois plus avoir besoin de coder une quelconque vérification.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.afipa.net
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Delphiprog
cs_Delphiprog 4580 Messages postés samedi 19 janvier 2002Date d'inscription 9 janvier 2013 Dernière intervention - 9 nov. 2006 à 09:01
+3
Utile
Utiliser tout simplement l'évènement OnKeyUp :

procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key =  VK_UP  then  ...//Flèche Haut

  if Key  = VK_DOWN then ...//Flèche bas
end;

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.afipa.net
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Delphiprog
mtaallah 30 Messages postés lundi 10 décembre 2001Date d'inscription 13 décembre 2006 Dernière intervention - 9 nov. 2006 à 00:46
0
Utile
Merci pour votre réponse DelphiProg
je vais essayer d'appliquer tous les consignes (un par un, ça prend du temps) pour savoir si ça règle le problème (je crois qu'il y est en fait, mais il ne faut pas valider une réponse comme acceptée sans l'être sûr... pour ne pas tromper les autres)...
Juste une petite autre question:
   Dans un DBGrid, quelle est la procédure qu'on utilise pour effectuer une vérification dès qu'on sélectionne la cellule (en utilisant les flèches haut et bas du clavier et non pas pointer avec le souris) car procédure OnCellClick ne joue pas ce rôle...
   J'éspèqre que vous m'avez bien compris!
Merci.
Commenter la réponse de mtaallah
mtaallah 30 Messages postés lundi 10 décembre 2001Date d'inscription 13 décembre 2006 Dernière intervention - 9 nov. 2006 à 11:08
0
Utile
Salut,
  Merci pour tes réponses DELPHIPROG
  C'est ça ce que je cherche.
Commenter la réponse de mtaallah

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.