OVH Cloud OVH Cloud

ERREUR D'EXECUTION 2108

2 réponses
Avatar
FEUZ TOFF
Bonjour,
a la suite de cette question :
J'ai dans 1 formulaire de saisie 1 table dont la clé est constituée de 2
champs : N°ACTE et ANNEE.
Je voudrais que si pour 1 année donnée le N° ne dépasse pas 1 valeur.
Exple: pour année 1998 le Champ N°ACTE ne doit pas être supérieur à 7845 et
je voudrais qu'en cas de mise à jour de ces champs le curseur reste dans le
champ tant qu'1 bonne valeur n'est pas saisie.
Merçi de votre aide

suivie de cette réponse:

Sur l'évenement beforeUpdate
If Me!N°acte>7845 and Me!Année=1998 then
msgbox ....
Cancel =true
Me!N°acte.undo
Me!N°acte.setfocus
end if

J'ai mis dans le champ N°ACTE ceci :

Befort Update
If(IsNull(Me.N°ACTE)=False) and (IsNull(Me.ANNEE)=False) then
If Me.N°ACTE >2620 and Me.ANNEE = 2003 then
MsgBox "................................"
end if
cancel = True
Me.N°ACTE.undo
Me.N°ACTE.SetFocus
end if

Mais à l'execution si je saisie une valeur supérieure à 2620 ce message
d'erreur s'affiche :
Erreur d'exécution 2108
Vous devez enregistré le champ avant d'executer l'action AtteindreControle,
la methode Goto Controle ou la Méthode Set focus

Pouvez vous m'aider SVP
Merçi

2 réponses

Avatar
le meruvien
bonjour,
essaie de mettre la propriété "valide si" du champ N° à <x45




"FEUZ TOFF" a écrit dans le message de
news:
Bonjour,
a la suite de cette question :
J'ai dans 1 formulaire de saisie 1 table dont la clé est constituée de 2
champs : N°ACTE et ANNEE.
Je voudrais que si pour 1 année donnée le N° ne dépasse pas 1 valeur.
Exple: pour année 1998 le Champ N°ACTE ne doit pas être supérieur à 7845
et
je voudrais qu'en cas de mise à jour de ces champs le curseur reste dans
le
champ tant qu'1 bonne valeur n'est pas saisie.
Merçi de votre aide

suivie de cette réponse:

Sur l'évenement beforeUpdate
If Me!N°acte>7845 and Me!Année98 then
msgbox ....
Cancel =true
Me!N°acte.undo
Me!N°acte.setfocus
end if

J'ai mis dans le champ N°ACTE ceci :

Befort Update
If(IsNull(Me.N°ACTE)úlse) and (IsNull(Me.ANNEE)úlse) then
If Me.N°ACTE >2620 and Me.ANNEE = 2003 then
MsgBox "................................"
end if
cancel = True
Me.N°ACTE.undo
Me.N°ACTE.SetFocus
end if

Mais à l'execution si je saisie une valeur supérieure à 2620 ce message
d'erreur s'affiche :
Erreur d'exécution 2108
Vous devez enregistré le champ avant d'executer l'action
AtteindreControle,
la methode Goto Controle ou la Méthode Set focus

Pouvez vous m'aider SVP
Merçi


Avatar
Gilles
"FEUZ TOFF" a écrit:

Bonjour,
...
J'ai mis dans le champ N°ACTE ceci :

Befort Update
If(IsNull(Me.N°ACTE)úlse) and (IsNull(Me.ANNEE)úlse) then
If Me.N°ACTE >2620 and Me.ANNEE = 2003 then
MsgBox "................................"
end if
cancel = True
Me.N°ACTE.undo
Me.N°ACTE.SetFocus
end if
...


Bonjour,

le SetFocus (qui provoque l'erreur) est inutile, de même que le Undo, car le
fait de mettre Cancel = True dans le BeforeUpdate bloque toute la suite des
événements. Tu peux à la limite annuler la saisie en mettant Me.N°ACTE = Null.

Bonne continuation