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 :

Code pour pour ne pas afficher la valeur 0


Sujet :

VBA Access

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Points : 58
    Points
    58
    Par défaut Code pour pour ne pas afficher la valeur 0
    Bonjour

    Besoin d'aide,

    Ma base contirnt un menu général avec un bouton qui ouvre le formulaire "AT" et un qui ouvre un formulaire de recherche.

    Les contrôle du formulaire de recherche ouvre les formulaire associés avec la fonction stLinkCriteria;

    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
    Private Sub Modifiable6_Click()
    On Error GoTo Err_Modifiable6_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "#At"
     
        stLinkCriteria = "[REFSITE]=" & Me![Modifiable6]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    End If
     
    DoCmd.Close acForm, "Recherche"
    Exit_Modifiable6_Click:
        Exit Sub
     
    Err_Modifiable6_Click:
        MsgBox Err.Description
        Resume Exit_Modifiable6_Click
    End Sub
    Comment faire pour que la valeur "0" ne soit pas retourné. J'ai utilisé la fonction Me.RecordsetClone.Recordset que j'ai inscrit dans le code du formulaire "AT", cela fonctionne bien avec le formulaire recherche mais je ne peux plus ouvrir le formulaire "AT" à partir du menu général car sa valeur =0

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello et bienvenue sur le Forum
    voilà le code que j'utilise pour faire la même chose:
    en imaginant que ta liste contienne des noms de sites et s'appelle liste_sites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub  c_Click()
        DoCmd.OpenForm "AT", , ,  "REFSITE=" & liste_sites  
    End Sub
    - à moins que le nom réel de ton formulaire soit #AT, le # est superflu
    - la gestion d'erreur qui ne traite pas l'erreur est inutile
    - nommer correctement les objets est indispensable pour la maintenance

    Bonne continuation

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Points : 58
    Points
    58
    Par défaut
    Merci simplifi de l'intérêt que tu y portes...

    Je m'explique plus clairement...

    La base contient un formulaire "#AT". J'ai fait un formulaire "Recherche"qui avec l'aide de contrôles (zone liste déroulante & zone de texte relatifs à plusieurs champs du formulaire "#AT") retourne les formulaires "#AT" associés donc en cliquant sur une un item de la zone de liste déroulante ou en inscrivant un texte dans une zone de texte(+ bouton de commande) Seulement les formulaires "#AT" = à la commande sont retourné.

    Cela fonctionne bien avec stLinkcriteria (comme le code ci-dessous) sauf qu'un formulaire vide est toujours retourné en plus du résultat.

    J'ai trouvé un code sur la faq du site pour empêcher que cette valeur soit retourné que j'ai ajouté au module du formulaire "#AT" soit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Open(Cancel As Integer)
        If Me.RecordsetClone.RecordCount = 0 Then
            MsgBox "Le formulaire ne s'ouvre pas car il est vide.", vbInformation
            Cancel = True 'Annule l'ouverture
        End If
    End Sub
    Cela fonctionne très bien pour mon formulaire recherche, le formulaire vide n'est plus retourné, le problème est que dans mon menu général, j'ai un bouton pour ouvrir "#AT" et un pour ouvrir "Recherche". Lorsque je clique pour ouvrir "#AT" C'est Msgbox qui ouvre car le formulaire est vide...


    Salutations

  4. #4
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    j'ai du mal à comprendre ton problème, c'est un peu embrouillé
    pour info: stlinkcriteria n'est pas une fonction mais une simple variable (string) qui est chargée avec un texte qui fait office de filtre.
    dans ma simplification, j'ai juste mis le texte du filtre directement dans la commande open!!!

    j'ai l'impression de comprendre (tu emploies alternativement le mot formulaire "#AT" au singulier et au pluriel) que tu voudrais que le formulaire te présente uniquement la ligne souhaitée sans ajouter la ligne (ou la fiche) correspondant au 'nouvel enregistrement'
    Pour Cela, il suffit de spécifier: ajout autorisé = non (onglet données de l'objet formulaire)

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 139
    Points : 58
    Points
    58
    Par défaut
    Merci Simplifi,

    Désolé, je ne suis pas vraiment expert en Access, merci de garder patience...

    Lorsque je met autoriser ajout = non , une page en blanc est tout de même retourné. ce que je veux c'est un msgBox.

    La base contient un formulaire nommé "#AT" dont la source est une requête. je peux ouvrir le formulaire en mode ajout à l'aide d'un bouton sur le menu général. Cela fonctionne bien.

    J'ai fait un formulaire nommé "Recherche", que je peux également ouvrir à partir du menu générale. Le formulaire "Recherche" contient des zones de liste déroulante et des zonnes de texte (avec bouton commande) qui permettent d'ouvrir tous les formulaires "#AT"= au choix de la zone de liste. Voici un code pour un évènement sur clic de la zone de liste déroulante que j'utilise.

    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
    Private Sub Modifiable6_Click()
    On Error GoTo Err_Modifiable6_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "#At"
     
        stLinkCriteria = "[REFSITE]=" & Me![Modifiable6]
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
     
     
     
    DoCmd.Close acForm, "Recherche"
    Exit_Modifiable6_Click:
        Exit Sub
     
    Err_Modifiable6_Click:
        MsgBox Err.Description
        Resume Exit_Modifiable6_Click
    End Sub
    Cela fonctionne bien sauf qu'un formulaire vide (valeur 0) est toujours retourné avec le résultat. Comment empêcher qu'il soit retourné avec le résultat.

    Comme expliqué dans un post précédent j'ai mis un code dans le module du formulaire "#AT"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Open(Cancel As Integer)
        If Me.RecordsetClone.RecordCount = 0 Then
            MsgBox "Le formulaire ne s'ouvre pas car il est vide.", vbInformation
            Cancel = True 'Annule l'ouverture
        End If
    End Sub
    Le résultat est exactement ce que je recherche mais le problème est que je ne peux plus ouvrir le formulaire"#AT" à partir du menu général car la valeur du formulaire "#AT" demandé est= 0

    Merci encore, j'essaie d'être le plus clair possible selon mes connaissances dans Acess...

  6. #6
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    Hello
    je n'arrive toujours pas à comprendre ton problème
    essaie de joindre un zip de ta base

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/03/2009, 22h52
  2. je n'arrive pas à afficher les valeurs de $_FILES[]
    Par totoAussi dans le forum Langage
    Réponses: 5
    Dernier message: 13/03/2009, 18h07
  3. Ne pas afficher la valeur d'un bouton radio
    Par slopera dans le forum Struts 2
    Réponses: 0
    Dernier message: 10/12/2008, 10h53
  4. Réponses: 18
    Dernier message: 09/12/2008, 10h40
  5. ne pas afficher les valeurs négatives
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/04/2008, 17h23

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