Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 14 September 2010 10:32

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

[MB] Controle sur un champ en entier

Bonjour,


Dans le cadre d'un projet j'ai réalisé un programme qui permet a l'utilisateur de mettre a jour un identifiant dans une table qu'il sélectionne. Cependant ce programme étant destiné  a des utilisateurs peu confirmés, je souhaiterais ajouter un contrôle qui retourne en arrière lorsque le champ renseigné n'est pas une valeur numérique (une faute de frappe est vite arrivée smile )

J'ai essayé en testant si la valeur est inférieure à zéro mais cela ne fonctionne pas. Existe t-il une astuce pour s'assurer que ce champ est bien un entier?

Cordialement

Fab

Hors ligne

 

#2 Tue 14 September 2010 14:17

jean94
Participant assidu
Date d'inscription: 13 Aug 2009
Messages: 436

Re: [MB] Controle sur un champ en entier

Bonjour,

Je ne connais pas trop ton programme mais voici comment moi je le voit

Je demenderais a l'utilisateur d'entrer un valeur via une fonction avec un dialog et un edit text. La valeur entré par l'utilisateur doit être ajouter à une variable "Integer" dans ce cas si l'utilisateur entre des lettre ou caractère, une erreur ce crérra...et donc j'ajouterais quelque chose comme

Code:

Onerror goto jump
...
jump : Note "Il faut entrer une valeur numérique seulement"
goto debut_de_la_fonction

Mais j'ai jamais mes code du premier coup, a toi de voir
JF

Dernière modification par jean94 (Tue 14 September 2010 14:18)

Hors ligne

 

#3 Tue 14 September 2010 14:24

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Re: [MB] Controle sur un champ en entier

Bonjour et merci de ta réponse

Je ne connais pas le code onerror. es ce que si je le rajoute en dessous de mon code a la place du morceau en commentaire cela va bien tester si ily'a une erreur ou non ?

Code:

SUB DLG1

If selectioninfo(SEL_INFO_NROWS)=0 then
        Note "Aucun Ilot n'est selectionné"
Else
        Dialog Title "Mise a jour de l'identifiant quartier de l'ilot selectionné" WIDTH 150 HEIGHT 50
           CONTROL STATICTEXT POSITION 15,12 TITLE "Identifiant du quartier"
           CONTROL EDITTEXT POSITION 110,10 WIDTH 20 id 1 INTO maj 
        CONTROL OKBUTTON POSITION 30, 30 WIDTH 40 TITLE "OK" ID 10    
           CONTROL CANCELBUTTON POSITION 85, 30 WIDTH 40 TITLE "Annuler" ID 11
end if
'If maj < 0 then
    'note "La valeur saisie n'est pas numérique"
    'call dlg1
'end if
If COMMANDINFO(cmd_info_dlg_ok) THEN
        CALL dlg2
End If

END SUB

Merci

Hors ligne

 

#4 Tue 14 September 2010 14:37

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: [MB] Controle sur un champ en entier

Bonjour
Essayez avec la fonction Val(str) qui retourne zéro quand str est du texte pur...

Hors ligne

 

#5 Tue 14 September 2010 14:54

Fabius
Participant actif
Date d'inscription: 19 Mar 2008
Messages: 130

Re: [MB] Controle sur un champ en entier

Merci Maurice ca fonctionne, par contre ma valeur devant être stocké dans une variable de type float ou integer pour la suite de mon programme je passe par une variable en caractère puis en flottant pour arriver a ce résultat.


Fab

Hors ligne

 

Pied de page des forums

Powered by FluxBB