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 modifier un contrôle d'une form passé en paramètre?


Sujet :

Access

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut Comment modifier un contrôle d'une form passé en paramètre?
    Salu!

    Voilà, j'utilise plusieurs fois le même code de filtrage pour deux formulaire différents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Not ModClient.AccesTotal(ModClient.GetPrepEnCours) Then
        Me.Filter = "[Préparateur]= '" & ModClient.GetNomPrepEnCours & "' "
        Me.FilterOn = True
    Else
        Me.FilterOn = False
    End If
    Je lance ce code à l'évenement load des formulaires.

    De plus, je dois (après un évènement sur bouton) relancer ce code sinon les formulaires ne sont plus filtrés

    Donc j'ai voulu faire une procédure dans un module InitFiltre (NomForm As String) ou l'on passe le nom du formulaire concerné en paramètre.
    Le problème est que je ne sais pas comment changer la propriété Filter et FilterOn avec ce paramètre

    Voici le code de la procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub InitFiltre(NomForm As String)
     
     
    If Not ModClient.AccesTotal(ModClient.GetPrepEnCours) Then
     
        Forms(NomForm).Filter = "[Préparateur]= '" & ModClient.GetNomPrepEnCours & "' "
        Forms(NomForm).FilterOn = True
    Else
        Forms(NomForm).FilterOn = False
    End If
    Est-ce que le code est bon? Il me semble que je devrai mettre autre chose que le nom de la form en paramètre mais quoi?
    Merci !

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut Rectification
    En fait , il est évident que le code n'est pas bon puisque vb me renvoie l'erreur "impossible de trouver le formulaire "NomDuFormulaire-ke-g-passé-en-param-et-ké-juste-syntaxiquement" "

    Donc la question c plutôt: où est l'erreur? le paramètre est-il bon ou vaut mieux que je le change?

  3. #3
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Hum... Vérifie bien que ton formulaire n'est pas fermé !

    Sinon, juste pour info, sache que tu peux aussi passer directement ton formulaire en argument ByRef : ça te simplifiera ton code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Public Sub InitFiltre(MonForm As form)
    ...
    MonForm.Filter = ...
     
    ...
    End Sub
    (\ _ /)
    (='.'=)
    (")-(")

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Effectivement les deux formulaires ne sont pas ouverts !

    Etant donné que j'appelle la procédure au moment du chargement des formulaires, je peux à la limite comprendre qu'ils ne soient pas encore 'ouverts'.

    Ce que je comprends moins, c'est qu'après leur chargement, si je clique sur le boutons qui lance à nouveau la procédure, mon msgbox m'indique encore que les formulaires ne sont pas ouverts!

    Pour info, j'ai un formulaire principal qui contient les deux sous-formulaires dont je parle + le bouton qui relance la procédure

    Merci pour la simplification, c ce que javé fait au début et j'ai cru ke l'erreur venait de là...mais non..

  5. #5
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Euh... qu'on soit bien d'accord... tu cherches à filtrer des formulaires ouverts ou bien des sous-formulaires ?

    s'il s'agit de sous formulaire, n'oublie pas que la bonne syntaxe t'impose de passer par le formulaire principal pour atteindre les instances de tes sous-form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Forms(NomFormPrincipal).Controls("nomSousForm").Form 'Pointe sur une instance d'un sous formulaire.
    (\ _ /)
    (='.'=)
    (")-(")

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Points : 60
    Points
    60
    Par défaut
    Yes! tu as raison Fred.G , j'ai effectivement pris mes sous-formulaires pour des formulaires (c mon sens de l'égalité lol!)
    ok donc j'ai changé mon code et je n'entre plus une String en paramètre mais directement un type Form, c mieux!

    merci !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/03/2014, 21h54
  2. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  3. Comment modifier un contrôle depuis une classe ?
    Par pot2yaourt dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/07/2009, 15h01
  4. Comment modifier la position d'une Form avec des RadioButton ?
    Par bionicleman dans le forum Composants VCL
    Réponses: 1
    Dernier message: 18/12/2007, 17h19
  5. Réponses: 1
    Dernier message: 06/05/2007, 10h43

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