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 :

Code : problème avec Null


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 177
    Points : 55
    Points
    55
    Par défaut Code : problème avec Null
    Bonjour,

    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
     
    Private Sub idemp_BeforeUpdate(Cancel As Integer)
    Dim Nbr As Long, Titre As String, Message As String, Réponse
    Nbr = DCount("idemp", "f_emprunteur", "idemp=" & Me.idemp)
    If Nbr >= 1 Then
        Titre = "Le code emprunteur " & Me.idemp & " est déjà dans la base"
        Message = "Cliquez sur Oui pour modifier votre erreur de saisie " & _
            vbCrLf & vbCrLf & _
            "Cliquez sur Non afin d'être redirigé(e) vers la fiche correspondante à l'emprunteur saisie "
        Réponse = MsgBox(Message, vbYesNo, Titre)
        If Réponse = vbYes Then
            Cancel = True
        Else
            Debug.Print "-" & Me.idemp.Value & "-"
            DoCmd.OpenForm "modif_dr_assos_err_idemp", , , "[idemp]=" & Me![idemp]
             DoCmd.close acForm, Me.Name
        End If
    Else: Me.libemp.Enabled = True
    ' le code emprunteur est nouveau
    End If
    Dim Nb As Long
    Dim lg As Long
    Nb = Me.idemp
    If Nb <> 0 Then
    lg = Fix(log(Nb + 0.11) / log(10)) + 1
        If lg > 6 Or lg < 4 Then
            MsgBox "La valeur saisie pour le numéros de tiers de l'emprunteur n'est pas valide" & Chr(10) & "Veuillez saisir une valeur d'un format de 4 à 6 chiffres"
            Cancel = True
        End If
    End If
    End Sub
    J'utilise ce code qui contrôle la saisie de la clé primaire dans un controle d'un formulaire de saisie (pas de doublons, ou pas valeur longeur entre 4 et 6 caracteres). Le code marche bien, la valeur par default est 0, le seul probleme de ce code est lorsque l'utilisateur efface le 0 et passe au contrôle suivant, j'ai des messages d'erreurs liée à DCount ou Nb = me.idemp)
    Je voudrez savoir comment sortir de la procedure si la valeur de idemp est Null. J'ai essayé avec
    [CODE]
    if me.idemp.value = Null then exit sub (ou cancel = true)[
    /CODE]
    Mais ce code n'est pas pris en compte...
    J'ai essayé aussi avec "valide si" est different de Null dans les propriétés du contrôle, ca marche pas non plus...

    Merci d'avance de votre aide !

  2. #2
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 177
    Points : 55
    Points
    55
    Par défaut
    Ca n'inspire personne ? Désolé c'est un peu long comme message, mais please aidez moi ! Je suis bloqué la !

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 177
    Points : 55
    Points
    55
    Par défaut
    Vraiment personne ?


  4. #4
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 177
    Points : 55
    Points
    55
    Par défaut
    Je me suis débrouillé tout seul, merci les gens !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 419
    Points : 508
    Points
    508
    Par défaut
    Salut


    Tu peux faire une gestion d'erreur pour intercepter le pb, et forcer l'utilisateur à saisir la clé.

    Y a un tuto je crois pour ça

    Sinon tu peux d'abord tester si la clé est nulle avant de continuer...
    du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if isnull(idemp) or idemp="" then
    msbox "Grompf"
    me.idemp.setfocus
    end if

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec null & Vector
    Par MiXinG dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 23/03/2008, 14h19
  2. Problème avec NULL dans HAVING
    Par Jean-Marc68 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 06/11/2007, 14h01
  3. problème avec null
    Par HighSchool2005 dans le forum Langage
    Réponses: 6
    Dernier message: 26/04/2007, 11h13
  4. [CODE] Problème avec OracleDbType
    Par paradeofphp dans le forum C#
    Réponses: 1
    Dernier message: 01/02/2007, 12h14
  5. Problème avec NULL
    Par Fiquet dans le forum Débuter
    Réponses: 5
    Dernier message: 26/10/2005, 13h40

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