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 :

[VBA-A] méthode Value pour un control


Sujet :

VBA Access

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut [VBA-A] méthode Value pour un control
    Bonjour j'ai une erreur, dans mon code, qui me dit "propriété ou méthode non géré par cet objet."

    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
    Private Sub Form_Load()
    Dim ctl As Control
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "chk"
                ctl.Value = -1  erreur à ce niveau
            Case "txt"
                ctl.vivible = False
                ctl.Value = ""
            Case "cmb"
                ctl.Visible = False
        End Select
    Next ctl
    Me.lstCollaborateurs.RowSource = "SELECT Secteur, Fonction, Fiche_de_poste, Nom FROM Collaborateurs;"
    Me.lstCollaborateurs.Requery
    End Sub
    Pourtant ce bout de code vient d'un tutoriel du site, celui sur la recherche multicritere.

    Merci de m'aider si possible.

    Walden.

  2. #2
    Membre éclairé Avatar de malhivertman1
    Inscrit en
    Avril 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 337
    Par défaut
    En mettant un point d'arrét, ou est ton erreur?

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    j'ai écris "erreur a ce niveau" à la ligne où se produit mon erreur.

  4. #4
    Membre éclairé Avatar de malhivertman1
    Inscrit en
    Avril 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 337
    Par défaut
    ah oui dsl

    et ben c'est parce que l'objet ctl ne gere pas la propriété .value comme l'indique le message d'erreur

    met plutot .text

  5. #5
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Bonjour,

    Tout d'abord un Checkbox ne peut pas avoir une valeur de -1 c'est
    • 0 : non cochée
    • 1 : cochée
    • 2 : non disponible


    Ensuite contrôle que tu n'as pas un autre contrôle qui aurait malheureusement récolté les lettre "chk" en début de nom ...

    Bonne continuation

    Théo

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Je ne vois pas de Tag VBA .... tu es donc pour moi sous VB et :

    Si comme je le pense les contrôles commençant par chk sont des checkboxes, ils ont une propriété value = 0 (non coché) ou 1 (coché) ou 2 (grisé) et donc pas -1

    pour les contrôles commençant pat txt : je suppose qu'il s'agit de texboxes et dans ce cas, ils n'ont pas de propriété value mais une propriété text !

    La propriété vivible n'existe pas (je suppose que tu veux dire visible)

    Je ne saurais trop de déconseiller d'utiliser l'événement Load pour faire celà !
    Au chargement, on ne sait pas encore quels contrôles ont été chargés complètement !
    Utilise plutôt Form_Activate

  7. #7
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    Merci pour vos nombreuses réponses, je vais tester tout cela, merci à vous tous, je vous tiens au courant.

  8. #8
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    Bonjour, doncvoila les avancées.

    Pour le "vivible" en effet, c'est un erreur, c'est " visible".

    J'avoue jmfmarques que je ne sais meme pas la différence exacte entre VB et VBA , perso je bosse avec l'éditeur visual Basic de Access 2000.

    J'ai changé le form_load en activate, ca marche mieux en effet.

    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
    Private Sub Form_Activate()
    Dim ctl As Control
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "chk"
                ctl.Value = 0
            Case "txt"
                ctl.Visible = False
                ctl.Value = ""
            Case "cmb"
                ctl.Visible = False
        End Select
    Next ctl
    Me.lstCollaborateurs.RowSource = "SELECT Secteur, Fonction, Fichedeposte, Nom FROM Collaborateurs;"
    Me.lstCollaborateurs.Requery
    End Sub
    Ca n'a pas fondamentalement changé mais ca marche.

    Sinon j'ai fais des requetes SQL sur mes combos box mais je comprends pas, rien ne s'affiche dans la combo... je vous en donne une :
    SELECT [Collaborateurs].[Secteur] FROM Collaborateurs GROUP BY [Collaborateurs].[Secteur] ORDER BY [Collaborateurs].[Secteur];

    Y a t il une option à cocher un tit bidule que j'ai pas vu c pas impossible.

    Merci si vous pouvez m'aider.

    Walden.

  9. #9
    Membre éclairé Avatar de malhivertman1
    Inscrit en
    Avril 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 337
    Par défaut
    Si tu boss sous access, c'est du VBA

  10. #10
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Salut,

    Je te rappelle ce qu'a dit jmfmarques il y a une erreur au niveau du contrôle Textbox qui n'a pas de propriété Value mais Text. J'ai d'ailleurs du mal à comprendre comment ça marche sachant cette erreur ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Form_Activate()
    Dim ctl As Control
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "chk"
                ctl.Value = 0
            Case "txt"
                ctl.Visible = False
                ctl.Text = ""
            Case "cmb"
                ctl.Visible = False
        End Select
    Next ctl
    ...
    Bonne continuation

    Théo

  11. #11
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    OK merci, théocourant et malhivertman, mais j'ai toujours rien qui s'affiche dans mes combo box je continue ma recherche

  12. #12
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Théo, la propriété value existe bel et bien en VBA, ce qui n'est pas le cas en VB6; c'est même la propriété par défaut pour une zone de texte
    Attention donc à tous de ne pas dire de bétises, sans savoir ou avoir vérifié

  13. #13
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    de même, en relisant ce sujet depuis le début, en VBA Access, une case à cocher à la valeur True ou False, soit -1 ou 0

  14. #14
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    OK merci thierry AIM, où puis je moi meme vérifier ce genre d'information, comem ca je ferais gagner du temps à tout le monde

  15. #15
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Dans l'aide de VBA Access, pardi

  16. #16
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Citation Envoyé par ThierryAIM
    de même, en relisant ce sujet depuis le début, en VBA Access, une case à cocher à la valeur True ou False, soit -1 ou 0
    D'après le tag du sujet, on se trouvait en VB et non en VBA.

    Citation Envoyé par ThierryAIM
    Théo, la propriété value existe bel et bien en VBA, ce qui n'est pas le cas en VB6; c'est même la propriété par défaut pour une zone de texte
    Attention donc à tous de ne pas dire de bétises, sans savoir ou avoir vérifié
    J'étais resté sur l'idée du travail avec VB (et non VBA) donc je pensais qu'il s'agissait d'une erreur car j'ai "survolé" le message où il disait qu'il travaillait avec VBA



    Théo

  17. #17
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    je sais que le tuto de recherche multi-critère dont parle notre ami dans son premier post est du VBA Access, je n'ai donc pas fait gaffe au tag

    Mais suite à confirmation ici
    Tag modifié

    tu n'es qu'à moitié pardonné, Théo, car tu aurais du vérifier

  18. #18
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    Oui en effet Thierry, l'aide VB de Access, mais j'avoue que je m'y perds un peu, je ne sais pas toujours où chercher.

    Mes combobox restent désespéremment vide mais je ne renonce pas.

  19. #19
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 42
    Par défaut
    Bon et bien je continue de caler, je vais afficher le code de mon formulaire, si vous voyez ma boulette et bien je serais ravi de la modifier. La boulette étant des combox vides malgré une requete sur le contenu à afficher.

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Private Sub Form_Activate()
    Dim ctl As Control
    For Each ctl In Me.Controls
        Select Case Left(ctl.Name, 3)
            Case "chk"
                ctl.Value = -1
            Case "txt"
                ctl.Visible = False
                ctl.Value = ""
            Case "cmb"
                ctl.Visible = False
        End Select
    Next ctl
    Me.lstCollaborateurs.RowSource = "SELECT Secteur, Fonction, Fichedeposte, Nom FROM Collaborateurs;"
    Me.lstCollaborateurs.Requery
    End Sub
    Private Sub refreshQuery()
    Dim SQL As String
    SQL = "SELECT Secteur, Fonction, Fichedeposte, Nom FROM Collaborateurs"
    If Me.chkFdP = -1 Then
    SQL = SQL & "And Collaborateurs!Fichedeposte like '" & Me.cmbRechFdP & "' "
    End If
    If Me.chkSecteur = -1 Then
    SQL = SQL & "And Collaborateurs!Secteur like '" & Me.cmbRechSecteur & "' "
    End If
    If Me.chkFonction = -1 Then
    SQL = SQL & "And Collaborateurs!Fonction like '" & Me.cmbRechFonction & "' "
    End If
    If Me.chkNom = -1 Then
    SQL = SQL & "And Collaborateurs!Nom like '*" & Me.txtRechNom & "*' "
    End If
    Me.lstCollaborateurs.RowSource = SQL
    Me.lstCollaborateurs.Requery
    End Sub
     
    Private Sub chkFdP_Click()
    Me.cmbRechFdP.Visible = Not Me.cmbRechFdP.Visible
    refreshQuery
    End Sub
     
    Private Sub chkFonction_Click()
    Me.cmbRechFonction.Visible = Not Me.cmbRechFonction.Visible
    refreshQuery
    End Sub
     
    Private Sub chkNom_Click()
    Me.txtRechNom.Visible = Not Me.txtRechNom.Visible
    refreshQuery
    End Sub
     
    Private Sub chkSecteur_Click()
        Me.cmbRechSecteur.Visible = Not Me.cmbRechSecteur.Visible
        refreshQuery
    End Sub
     
    Private Sub cmbRechFdP_BeforeUpdate(Cancel As Integer)
    refreshQuery
    End Sub
     
    Private Sub cmbRechFonction_BeforeUpdate(Cancel As Integer)
    refreshQuery
    End Sub
     
    Private Sub cmbRechSecteur_BeforeUpdate(Cancel As Integer)
    refreshQuery
    End Sub
     
    Private Sub txtRechNom_BeforeUpdate(Cancel As Integer)
    refreshQuery
    End Sub
    Voila merci.

Discussions similaires

  1. [VBA-E]SOS besoin d'aide pour un macro
    Par lecossais dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 18/06/2006, 19h57
  2. Réponses: 4
    Dernier message: 09/06/2006, 11h08
  3. [VBA-E] Afficher une feuille excel pour la modifier
    Par z980x dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/05/2006, 23h21
  4. [VBA-E] répéter un tri décroissant pour plusieurs lignes
    Par rajmoule dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/03/2006, 18h12
  5. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2002, 14h22

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