IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Comment récupérer les données d'un formulaire tabulaire ?


Sujet :

Access

  1. #21
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Mais logiquement quand tu vas cliquer sur le bouton dans le pied, cela devrait déclencher le BeforeUpdate.
    Donc à priori, c'est le seul endroit où tu devrais avoir à mettre le code.

    En passant au lieu d'utiliser une valeur de texte pour transmettre le résultat d'une évaluation qui répond Oui ou Non, on préfère utiliser un booléen.

    ça donne un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    dim estCorrect as boolean:estCorrect=true 'Soyons optimiste
     
    If Left(num_compte.Value, 2) = "45" And Mid(num_compte.Value, 6, 5) >= 30000 And Mid(num_compte.Value, 6, 5) < 40000 Then
      estCorresct=false
    End If
     
    If not estCorrect Then
             MsgBox " Les n° de comptes saisis ne doivent pas être dans les plages suivantes : " & Chr(10) & _
            "        45.xxx.30000.x à 45.xxx.39999.x" & Chr(10) & _
            "        46.xxx.90000.x à 46.xxx.99999.x" & Chr(10) & _
            "        48.xxx.50000.x à 48.xxx.59999.x" & Chr(10) & _
            "        07.xxx.80000.x à 07.xxx.99999.x" & Chr(10) & _
            "        08.xxx.60000.x à 08.xxx.69999.x" & Chr(10) & _
            "        28.xxx.87000.x à 28.xxx.99999.x" & Chr(10) & _
            "        49.xxx.86000.x à 49.xxx.89999.x", , "Validation du numéro de compte"
            Exit Sub
    End If
    L'intérêt c'est qu'il y a moins de risque d'erreur. Les booléens n'acceptent que trueou false alors que les texte acceptent tout sorte de valeur (ex : "PasBon", "KO ", "Faux","Fuax").
    Le compilateur ne peut donc pas te prévenir si tu n'as pas mis une valeur valide et tu ne le découvriras qu'à l'exécution au mieux en test au pire en production.

    A+

  2. #22
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Merci bien, j'ai fait la modification.

    L'enregistrement s'effectue sur le row-leave non ? Auquel cas, il me faut coder la vérification sur le leave du champ.

    Par contre, je ne sais pas coder la vérification de la saisie du formulaire tabulaire.

  3. #23
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    L'enregistrement s'effectue sur le row-leave non ?
    Oui c'est pour cela que BeforUpdate du formulaire nous interresse.

    Auquel cas, il me faut coder la vérification sur le leave du champ.
    Tu peux dans ces cas là le contrôle se fera champ par champ et ton utilisateur ne pourra pas passer au champ suivant tant que la valeur ne sera pas valide.

    Par contre, je ne sais pas coder la vérification de la saisie du formulaire tabulaire.
    Je vais changer d'exemple, ce sera peut-être plus clair.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    dim aErreur as boolean : Erreur=false
    dim mess as string
     
    if me.champ1 is null then
       aErreur=true
     
       if mess <> "" then
          mess=mess & ", " 
       end if
     
       mess=mess & "Champ 1"
    end if
     
    if me.champ2 > 0 then
       aErreur=true
     
       if mess <> "" then
          mess=mess & ", " 
       end if
     
       mess=mess & "Champ 2"
    end if
     
    if me.champ3 <> "Toto" then
       aErreur=true
     
       if mess <> "" then
          mess=mess & ", " 
       end if
     
       mess=mess & "Champ 3"
    end if
     
    if aErreur then
       msgbox "Erreurs dans le(s) champ(s) : " & mess
    end if
    Ce code vérifie les 3 champs de l'enregistrement en cours.

    A+

  4. #24
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Le beforeupdate du formulaire se déclenche seulement quand je quitte l'enregistrement, pas quand je clique sur le bouton valider.

    Tu ne contrôlerais rien derrière le bouton valider (si ce n'est l'enregistrement sur lequel on est positionné) ?

Discussions similaires

  1. comment récupérer les données supprimés
    Par ouadie99 dans le forum Windows XP
    Réponses: 1
    Dernier message: 02/03/2007, 18h59
  2. Réponses: 6
    Dernier message: 24/01/2007, 10h29
  3. Comment récupérer les données ?
    Par carlosdz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/07/2006, 00h05
  4. Réponses: 3
    Dernier message: 06/07/2006, 18h49
  5. [VB6] MySQL Comment récupérer les données ?
    Par budylove dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 22/02/2006, 14h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo