mtaallah
Messages postés28Date d'inscriptionlundi 10 décembre 2001StatutMembreDernière intervention13 décembre 2006
-
8 nov. 2006 à 20:26
mtaallah
Messages postés28Date d'inscriptionlundi 10 décembre 2001StatutMembreDernière intervention13 décembre 2006
-
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
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 9 nov. 2006 à 00:03
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
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 9 nov. 2006 à 09:01
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
mtaallah
Messages postés28Date d'inscriptionlundi 10 décembre 2001StatutMembreDernière intervention13 décembre 2006 9 nov. 2006 à 00:46
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.