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

VBA Access Discussion :

Select Case #Erreur


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut Select Case #Erreur
    Bonjour
    j'ai mis au point une fonction basé sur select case et le critère c'est un montant pour l'utiliser dans la détermination d'un champ calculé "date" en fonction d'autres champs calculés eux aussi sous format date
    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
    Function ThDeadTechBids(PropEnvlp As Long, ThAprvdPartnersNdS As Date, ThAprvdManagmentNdS As Date)
     
     
         Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = ThAprvdPartnersNdS + 28
            Case Is < 1000000
                DayRecTecBid = ThAprvdManagmentNdS + 28
     
     
        End Select
     
    ThDeadTechBids = DayRecTecBid
     
    End Function
    Proposed_Envelope: Champ numérique.
    ThAprvdPartnersNdS: Champ calculé Date
    ThAprvdManagmentNdS: Champ calculé Date


    pour la première condition >= 1000000 ça marche bien, mais pour la deuxième le résultat est #Erreur
    est-ce qu'il y a qlq'un qui peut m'aider sur ce point?
    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Essaie case else.

    Alors, si tu n'as toujours pas le bon résultat, c'est que "Proposed_Envelope" n'est jamais < 1000000

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Essaie case else.

    Alors, si tu n'as toujours pas le bon résultat, c'est que "Proposed_Envelope" n'est jamais < 1000000
    je ne suis pas assez fort en VBA, donc si j'ai bien compris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = ThAprvdPartnersNdS + 28
            Else
                DayRecTecBid = ThAprvdManagmentNdS + 28
     
     
        End Select
    Fin de la citation

    j'ai essayé le code suivant ça ne marche pas aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
         Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = ThAprvdPartnersNdS + 28
            Case Else
                DayRecTecBid = ThAprvdManagmentNdS + 28
     
     
        End Select

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = ThAprvdPartnersNdS + 28
            case Else
                DayRecTecBid = ThAprvdManagmentNdS + 28
     
     
        End Select

    NB quand tu es dans du code, tu places ton curseur au milieu d'un mot et tu enfonces <F1> ---> l'aide Access à la bonne page.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    comme ceci
    case Else
    DayRecTecBid = ThAprvdManagmentNdS + 28


    End Select
    [/code]
    Désolé Claude, toujours #erreur

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Il est alors probable que ThAprvdPartnersNdS soit null ---> addition impossible.

    Pour le voir, exécute comme ceci et vérifie dans la fenêtre d'exécution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = ThAprvdPartnersNdS + 28
            case Else
              debug.print  "valeur de"  & ThAprvdPartnersNdS       
              DayRecTecBid = ThAprvdManagmentNdS + 28
     End Select

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    Il est alors probable que ThAprvdPartnersNdS soit null ---> addition impossible.

    Pour le voir, exécute comme ceci et vérifie dans la fenêtre d'exécution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = ThAprvdPartnersNdS + 28
            case Else
              debug.print  "valeur de"  & ThAprvdPartnersNdS       
              DayRecTecBid = ThAprvdManagmentNdS + 28
     End Select
    si je saisi une valeur de l'enveloppe >=1 000 000 $, alors la date de ThAprvdPartnersNdS apparait dans la fenêtre exécution. dans le cas contraire rien ne s'affiche.

    Pour votre information ThAprvdPartnersNdS est calculé par une autre fonction dont le critère est toujours le Proposed_Envelope
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function ThNdSApvdDayPrtnr(Proposed_Envelope As Long, Theoritical_App_Date_By_Managment_NdS As Date)
     
     
        Select Case Proposed_Envelope
            Case Is >= 1000000
                DayNdSAprvdPrtnr = Theoritical_App_Date_By_Managment_NdS + 21
     
     
     
        End Select
     
    ThNdSApvdDayPrtnr = DayNdSAprvdPrtnr
     
    End Function

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    dans le cas contraire rien ne s'affiche.
    C'est là qu'est l'os ! ThAprvdPartnersNdS ne contient pas un nombre---> pas d'addition possible. Il est sans blanc, vide.

    C'est ici que cela se passe :
    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
    Function ThNdSApvdDayPrtnr(Proposed_Envelope As Long, Theoritical_App_Date_By_Managment_NdS As Date)
     
     
        Select Case Proposed_Envelope
            Case Is >= 1000000
                DayNdSAprvdPrtnr = Theoritical_App_Date_By_Managment_NdS + 21
     
            case else ---->' dire ce qu'il faut faire, 
                                  'actuellement DayNdSAprvdPrtnr reste vide
                                 ' et par voie de conséquence ThNdSApvdDayPrtnr
                                  'reste vide
     
            End Select
     
    ThNdSApvdDayPrtnr = DayNdSAprvdPrtnr
     
    End Function
    Voilà justement ce qui fait que votre fille est muette ... (Molière)

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par ClaudeLELOUP Voir le message
    C'est là qu'est l'os ! ThAprvdPartnersNdS ne contient pas un nombre---> pas d'addition possible. Il est sans blanc, vide.

    case else ---->' dire ce qu'il faut faire,
    'actuellement DayNdSAprvdPrtnr reste vide
    ' et par voie de conséquence ThNdSApvdDayPrtnr
    'reste vide
    [/code]
    ce champ là, lorsque le montant de l'enveloppe est < 1 000 000$ ne sera pas remplit et je procèdera par la suite à le désactivé on utilisant le montant de l'enveloppe comme critère.

    Pour contourner ce problème de champ vide, j'ai changé ma fonction pour éviter l'employer de ce champ et éviter l'emploi des champs calculés pour trouver le résultat escompté:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function ThDeadTechBids(PropEnvlp As Long, RqstDayAC As Date)
     
     Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = RqstDayAC + 64
            Case Else
                DayRecTecBid = RqstDayAC + 43
     End Select
     
     
    ThDeadTechBids = DayRecTecBid
     
    End Function
    cette fois, il n'y a pas de message d'erreur, mais le résultat est le même pour les montants >= et < à 1000 000$, c'est à dire il prend la date de la requested_Day_From_A&C + 43
    je suis vraiment coincé est j'arrive pas à sortir du tunel!!

  10. #10
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function ThDeadTechBids(PropEnvlp As Long, RqstDayAC As Date)
     debug.print "Proposed_Envelope : " & Proposed_Envelope
     Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = RqstDayAC + 64
            Case Else
                DayRecTecBid = RqstDayAC + 43
     End Select    
    ThDeadTechBids = DayRecTecBid
    End Function
    Qu'y a-t-il dans la fenêtre de débogage ?

  11. #11
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Ouf, du renfort. Bonjour Kloun.

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Proposed_Envelope :
    Rien!!

  13. #13
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    D'où le passage dans le Else.
    Et ça vient d'où normalement le Proposed_Envelope ?

  14. #14
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Kloun Voir le message
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function ThDeadTechBids(PropEnvlp As Long, RqstDayAC As Date)
     debug.print "Proposed_Envelope : " & Proposed_Envelope
     Select Case Proposed_Envelope
            Case Is >= 1000000
                DayRecTecBid = RqstDayAC + 64
            Case Else
                DayRecTecBid = RqstDayAC + 43
     End Select    
    ThDeadTechBids = DayRecTecBid
    End Function
    Qu'y a-t-il dans la fenêtre de débogage ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print "PropEnvlp: " & PropEnvlp
    dans ce cas si je saisi dans ce champ 1000000$ j'ai :
    PropEnvlp : 1000000
    et lorsque je saisi 2$ j'aurai:
    PropEnvlp : 2

  15. #15
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    Quel est le rapport entre "Proposed_Envelope" et "PropEnvlp" ?

  16. #16
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par Kloun Voir le message
    Quel est le rapport entre "Proposed_Envelope" et "PropEnvlp" ?
    le rapport c'est que
    Proposed_Envelope est un champ d'une table
    PropEnvlp est une variable que j'ai utilisé pour ma fonction

    ooooooh Merci vous avez attiré mon attention sur l'erreur que j'ai commis Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Case Proposed_Envelope
    merci beaucoup Kloun sans oublier Claude qui était très patient avec moi

  17. #17
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    l'étau se resserre !

  18. #18
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 184
    Points : 1 363
    Points
    1 363
    Par défaut
    1/ ajouter le Option Explicit (qui n'y est sans doute pas) en début de module.
    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function ThDeadTechBids(PropEnvlp As Long, RqstDayAC As Date)
     Select Case PropEnvlp 
            Case Is >= 1000000
                DayRecTecBid = RqstDayAC + 64
            Case Else
                DayRecTecBid = RqstDayAC + 43
     End Select    
    ThDeadTechBids = DayRecTecBid
    End Function
    A noter qu'on peut se passer d'une fonction en utilisant un iif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    iif(PropEnvlp >= 1000000, RqstDayAC + 64, RqstDayAC + 43)

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

Discussions similaires

  1. [AC-2007] Regroupement de 2 Select Case MsgBox = erreur Type 13
    Par Bernard67 dans le forum VBA Access
    Réponses: 18
    Dernier message: 13/02/2012, 14h12
  2. VBA : Select case et inputbox gestion des erreurs
    Par 1ma91nat10n dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/05/2011, 13h07
  3. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 4
    Dernier message: 15/05/2006, 14h40
  4. Select Case provoque une erreur
    Par defluc dans le forum SQL
    Réponses: 6
    Dernier message: 14/08/2005, 23h59
  5. erreur select case
    Par maximedrouet dans le forum ASP
    Réponses: 12
    Dernier message: 06/01/2005, 15h33

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