BeforeUpdate sur un DataGrid

BeforeUpdate sur un DataGrid - VB/VBA/VBS - Programmation

Marsh Posté le 08-07-2002 à 10:31:21    

Salut !
 
Je programme une application en VB6 avec une bdd Access
J'utilise un DataGrid pour entrer des données dans une de mes tables.
Je suis dans la phase de verification de mes données.
Si une ligne n'est pas complete (au moins une case est vide), et que l'utilisateur clique sur une autre ligne, ca provoque une erreur pas belle du tout, parce que la methode Update se declenche.
Du coup, j'ai utilisé l'evenement BeforeUpdate, je teste si les champs sont bien remplis. Si oui, ok pour Update, sinon, je mets la variable Cancel a True.
 
Mais ce qui m'embete c'est que ca affiche un Msgbox : "L'action a été annulée". Mais ce n'est pas moi qui ai programmé ce msgBox. Et je trouves pas comment l'enlever.
 
Quelqu'un a une idée ???
Merci d'avance

Reply

Marsh Posté le 08-07-2002 à 10:31:21   

Reply

Marsh Posté le 08-07-2002 à 10:35:11    

Pourquoi mettre la variable Cancel à True ?
Si une ligne n'est pas complète, il te suffit de coder une Box demandant à l'utilisateur de saisir tous les champs avant de passer à la ligne suivante

Reply

Marsh Posté le 08-07-2002 à 10:39:40    

Harkonnen a écrit a écrit :

Pourquoi mettre la variable Cancel à True ?
Si une ligne n'est pas complète, il te suffit de coder une Box demandant à l'utilisateur de saisir tous les champs avant de passer à la ligne suivante




 
Si je ne mets pas Cancel a True, le Update va s'executer, et ca me met #ERROR dans toutes les cases de la derniere ligne.

Reply

Marsh Posté le 08-07-2002 à 10:45:50    

à quoi ressemble ton code ?
 
moi j'ai testé sur VB7 ce code, et je n'ai pas le message que tu décris :

Code :
  1. Private Sub DataGrid1_BeforeUpdate (Cancel As Integer)
  2.    If DataGrid1.Columns(1).Value = "" Then
  3.       MsgBox "Vous devez remplir la 1ere colonne"
  4.       Cancel = True
  5.    End If
  6. End Sub

Reply

Marsh Posté le 08-07-2002 à 10:47:15    

kinanveu a écrit a écrit :

Salut !
 
Je programme une application en VB6 avec une bdd Access
J'utilise un DataGrid pour entrer des données dans une de mes tables.
Je suis dans la phase de verification de mes données.
Si une ligne n'est pas complete (au moins une case est vide), et que l'utilisateur clique sur une autre ligne, ca provoque une erreur pas belle du tout, parce que la methode Update se declenche.
Du coup, j'ai utilisé l'evenement BeforeUpdate, je teste si les champs sont bien remplis. Si oui, ok pour Update, sinon, je mets la variable Cancel a True.
 
Mais ce qui m'embete c'est que ca affiche un Msgbox : "L'action a été annulée". Mais ce n'est pas moi qui ai programmé ce msgBox. Et je trouves pas comment l'enlever.
 
Quelqu'un a une idée ???
Merci d'avance
 




 
 
Essaie Tools/Options, onglet Edit/Find et decoche record changes
 
Mais ca va changer pas mal de chose pour ton programme

Reply

Marsh Posté le 08-07-2002 à 10:52:36    

Voila mon code. isAdding est un booleen qui vaut vrai des q'un AddNew est executé. Mon MsgBox s'affiche bien, mais un 2e MsgBox s'affiche : "L'action a été annulée".
 

Code :
  1. Private Sub dbgrdAnnée_BeforeUpdate(Cancel As Integer)
  2.     If isAdding Then
  3.         MsgBox "Vous devez compléter la ligne avant de continuer.", vbExclamation
  4.         Cancel = True
  5.     End If
  6. End Sub


 
Ptet que ya une difference entre VB6 et VB7 ?

Reply

Marsh Posté le 08-07-2002 à 10:54:31    

jeanphi80 a écrit a écrit :

 
Essaie Tools/Options, onglet Edit/Find et decoche record changes
Mais ca va changer pas mal de chose pour ton programme




 
Tu penses que ca changera aussi pour l'executable ?

Reply

Marsh Posté le 08-07-2002 à 10:56:36    

Harkonnen a écrit a écrit :

à quoi ressemble ton code ?
 
moi j'ai testé sur VB7 ce code, et je n'ai pas le message que tu décris :




 
il existe VB7 ? c'est pas VB.net ?


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 08-07-2002 à 10:59:07    

mareek a écrit a écrit :

 
 
il existe VB7 ? c'est pas VB.net ?




oui, VB .NET :)
c plus rapide de dire VB7 ;)

Reply

Marsh Posté le 08-07-2002 à 11:02:25    

kinanveu a écrit a écrit :

 
 
Tu penses que ca changera aussi pour l'executable ?




 
Ce que ca change, c'est que quand tu effaces un record, il ne te demandera plus "etes vous sur de vouloir supprimer cet enregistrement..." mais il le supprimera directement! Pareil si tu supprimes un formulaire ou une table

Reply

Marsh Posté le 08-07-2002 à 11:02:25   

Reply

Marsh Posté le 08-07-2002 à 11:04:11    

non, ce n'est vrai que pour les records, pardon, il te demandera toujours confirmation qd tu effaces un formulaire ou une table

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed