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 :

ouverture d'un formulaire si condition


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut ouverture d'un formulaire si condition
    Bonjour tout le monde,

    Avant tout, je tiens à préciser que je n'ai pas une très grande expérience avec access, et vous remercie par avance pour votre compréhension et votre générosité afin de me guider un peu dans mon idée.

    J'ai une base de donnée qui à l'ouverture de celle-ci fait apparaître automatiquement un formulaire de fond de base appelé "home" (aucune donnée n'est rattachée à ce formulaire).

    De manière à ouvrir automatiquement un formulaire "Impayés" (formulaire d'avertissement des impayés de + de 30jours créé sur la requête "R_Impayés"), j'ai créé une procédure événementielle sur ouverture du formulaire de fond de base appelé "home".

    La procédure événementielle est la suivante et est basée sur la condition que le formulaire "Impayés" ne doit s'ouvrir que si le champ "JoursRetard" du formulaire "Impayés" comporte au moins une donnée suppérieur à 30 (30 jours):

    Private Sub Form_Open(Cancel As Integer)
    On Error GoTo Err_Form_Open

    Dim stDocName As String


    stDocName = "Impayés"
    DoCmd.OpenForm stDocName, , , [JoursRetard] > 30

    Exit_Form_Open:
    Exit Sub

    Err_Form_Open:
    MsgBox Err.Description
    Resume Exit_Form_Open

    End Sub


    Lorsque j'ouvre mon formulaire "home" (fond de base), et que la procédure tourne, j'ai le message d'erreur suivant qui s'affiche :

    "Impossible de trouver le champ "¦" aurquel il est fait référence dans votre expression"

    Pourquoi? J'ai essayé différentes solutions, mais rien y fait. Probablement la réponse est toute simple, mais j'y arrive pas.

    Merci à tous ceux qui voudront bien m'aider et bon appetit à tout le monde.

    AM

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Par défaut
    salu,
    je pense que le problème vient juste de là:

    DoCmd.OpenForm stDocName, , , "[JoursRetard] > 30"

    tu as oublié les guillemets!

  3. #3
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut
    Merci tinwul,

    c'est un grand pas déjà, mais le problème maintenant, c'est que le formulaire s'ouvre quand même (vide car pas de données > 30). En fait, ce que j'aimerais c'est qu'il ne s'ouvre pas du tout si il n'y a pas de données >30.

    Peut-être manque-t-il quelque chose à ma procédure ?

    AM

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 86
    Par défaut
    Pourquoi ne fais-tu pas dans ta procédure un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If JoursRetard > 30 Then
    DoCmd.OpenForm stDocName
    End If
    Quitte à faire une requête avant pour récupérer JoursRetard si tu n'y as pas directement accès.

    Ce code t'ouvrirait ton formulaire si JoursRetard > 30 et n'ouvrirait rien sinon

  5. #5
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Par défaut
    Xblond,

    je crois que j'ai un sérieux problème, avec la procédure suivante, cela fonctionne une fois sur 3, c'est vraiment étrange :

    Private Sub Form_Open(Cancel As Integer)
    On Error GoTo Err_Form_Open

    Dim stDocName As String


    stDocName = "007 - AVERTISSEMENT FACTURE IMPAYEE"

    If "[JoursRetard]" > "[30]" Then
    DoCmd.OpenForm stDocName
    End If

    Exit_Form_Open:
    Exit Sub

    Err_Form_Open:
    MsgBox Err.Description
    Resume Exit_Form_Open

    End Sub


    Merci pour votre aide encore une petite fois.

    AM

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Par défaut
    euh cette ligne m'a l'air bizarre :
    If "[JoursRetard]" > "[30]" Then

    A quoi correspond [Jour retard]? C'est un champs de ta table? Tu es sur que ainsi tu y a accès? et le > "[30]" , je vois pas trop ce que c'est... tu vérifie qu'un champs est inférieur à la chaine [30] ?

    euh...tu peux m'expliker juste cette ligne, paske ce qui m'a l'air bizarre , c ke ça fonctionne au moins une fois sur trois lol!

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Par défaut
    Ton formulaire s'ouvre forcément puisque tu lui demande de s'ouvrir avec DoCmd.OpenForm .

    Ce qu'il faut c'est mettre une condition qui,si elle est vérifiée, permet l'ouverture du formulaire.

    Genre un petit If juste avant le DoCmd.OpenForm...?

    Et pour vérifier si une donnée est présente dans une table, je te conseille la fonction DLookUp mais j'en dis pas plus, la FAQ est là pour ça!

    à+

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

Discussions similaires

  1. ouverture d'un formulaire sur une double condition
    Par mat75019 dans le forum Access
    Réponses: 6
    Dernier message: 27/10/2006, 16h13
  2. Réponses: 3
    Dernier message: 16/02/2006, 16h58
  3. Réponses: 4
    Dernier message: 13/02/2006, 11h13
  4. Erreur sur l'ouverture d'un formulaire avec condition
    Par Virgile59 dans le forum Access
    Réponses: 4
    Dernier message: 08/11/2005, 14h16
  5. Pb Ouverture de formulaire sous condition.
    Par Phl98 dans le forum Access
    Réponses: 8
    Dernier message: 03/11/2005, 22h28

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