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

IHM Discussion :

erreur quand j'utilise TextBox.Text [AC-2007]


Sujet :

IHM

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut erreur quand j'utilise TextBox.Text
    Bonjour,

    j'ai crée un formulaire avec la méthode CreateForm puis j'ai ajouté un controle (Textbox ....) mais lorsque je veux utiliser Textbox.Text ou .Value sa passe pas, je reçoi l'erreur suivante:
    erreur '2467': l'expression entrée fait référence à un objet fermé ou supprimé
    ou
    erreur '91': variable objet ou variable de bloc With non définie


    voici mon code:

    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
    Private Sub Bascule0_Click()
    On Error Resume Next
     
    Set frm = CreateForm()
     
    Dim entDonnéeX As Integer, entDonnéeY As Integer
    entDonnéeX = 400
    entDonnéeY = 400
     
    Set txt = CreateControl(frm.Name, acTextBox, acDetail, "", "", _
    entDonnéeX, entDonnéeY, 1000, 300)
     
    DoCmd.Save acForm, frm.Name
    DoCmd.OpenForm frm.Name, acNormal
     
    DoCmd.Restore
    End Sub
    SVP je voudrais savoir comment avoir la valeur txt.Text de façon correcte j'ai essayé tous les moyens que je connais mais j'ai pas réussi

    merci

  2. #2
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    j'ai oublié j'ai aussi les déclarations:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim frm As Form
    Dim txt As TextBox

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    dans le code ci-dessus, il n'y a aucune ligne contenant .Text

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    justement si j'ajoute une ligne dans le code comme par exemple:
    txt.Text="rien" il ne l'accepte pas :s !!

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 85
    Points : 114
    Points
    114
    Par défaut
    Bonjour

    Tu es en mode création de formulaire, donc je ne vois pas comment tu peux rentrer une valeur dans les paramètres d'une zone de texte.

    PeyePo

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    oui je sais que ça n'a pas de sens de le mettre en mode formulaire
    Ce que je veux faire plutot c'est de récupérer le texte entré dans ce textbox.
    Normalement, ça doit se faire avec l'évenement OnChange : j'ai essayé le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    txt.OnChange="=app()"
    et j'ai défini la fonction app dans un module. Pour utiliser l'objet txt j'ai du enlever sa déclaration de la procédure précédente et la faire dans le module. ça a donné ça sur le module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public txt As TextBox
    Function app()
        MsgBox txt.Text
    End Function
    C'est la ligne en gras qui marche pas

  7. #7
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour

    1/ Ce qui n'a pas de sens c'est de déclarer une variable Publique dans un module de formulaire qui plus est de la nommer comme telle...
    2/ Pour récupérer la valeur dans un Textbox qui possède une source de contrôle, tu écris simplement et après avoir vérifié sa non nullité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strMaValeur =  Me!MaTextBoxe
    ou encore, mais j'aime moins :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strMaValeur =  Me.MaTextBoxe.Value
    Argy

  8. #8
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Je ne peux pas utiliser le Me pour avoir le textbox parce que le textbox est sur le formulaire que je crée ...
    j'ai réussi à définir l'évenement OnChange sur le txt avec txt.OnChange et l'éditeur d'aide reconnait txt.Text mais ça ne se compile pas

  9. #9
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Il y a truc que je capte pas...
    Tu veux affecter une valeur au textbox que tu créés ?
    Pourquoi ?
    C'est pas super logique... Que tu affectes la propriété ColumnName, j'aurais pu comprendre...
    Tu pourrais être un peu plus clair ?

    Si tu veux mettre une valeur dans le contrôle, tu procéder ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Txt.ControlSource = "=" & Chr(34) & "Une valeur" & Chr(34)
    Mais sache que la propriété ControlSource est réservée à cibler un champ et pas une valeur en dur...

    Argy

  10. #10
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Non je ne veux affecter une valeur au textbox , je veux juste lire sa valeur lorsqu'il changement..
    Enfin que ça soit dans la procédure ou bien dans le module quand j'écris
    txt.Text ou txt.Value il me sort le message d'erreur suivant:
    erreur d'exécution '2467'
    l'expression entrée fait référence à un objet fermé ou supprimé

    je veux savoir si ce problème n'existe que chez moi (je commence à le croire) car en cherchant la raison de ce probleme je trouve rien

    sinon y aurait il pas un autre moyen plus sur que CreateControl pour créer dynamiquement des textbox et récupérer leurs valeurs !

  11. #11
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    personne pour aider?

  12. #12
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Attends....
    Humm tu créés un contrôle dans un formulaire et tu veux récupérer sa valeur !!!

    J'ai l'impression que tu ne piges pas quelque chose...
    Comment veux-tu récupérer une valeur d'un contrôle TextBox, qui vient d'être créé et qui donc vide ?

    Ou alors je deviens sénile...

    Soit plus explicite...
    Lis ma signature 2x et réitère ta demande...

    Argy

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 85
    Points : 114
    Points
    114
    Par défaut
    Bonjour

    Citation Envoyé par PeyePo Voir le message
    Tu es en mode création de formulaire, donc je ne vois pas comment tu peux rentrer une valeur dans les paramètres d'une zone de texte.
    C'est ce que je disais dés le début, il faut distinguer le mode création du mode utilisation.

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour à tous,

    d'après ce que je comprends, nabilous utilise une seule variable TextBox pour instancier le nouveau contrôle créé et le contrôle actif une fois le formulaire ouvert en mode normal.
    Or, une fois créé, enregistré la variable Txt qui se réfère au nouveau contrôle n'existe plus, d'où le message d'erreur "l'objet est fermé ou supprimé".

    Concernant la fonction associée à l'événement Onchange , tu n'auras je pense aucun problème si tu utilises le Screen.ActiveControl, ce qui correspond au contrôle actif à l'appel de la fonction.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function app()
     msgbox Screen.ActiveControl.Text
    End function

  15. #15
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 3
    Points
    3
    Par défaut
    Bonjour les amis,
    Oui ilank tu as bien compris ce que je veux faire, et merci pour ton explication à propos des controles créés ça je savais pas !
    je viens de tester ton code et ça marche bien j'ai aussi tester le Screen.ActiveControl.Name pour avoir le nom du controle actif.
    Maintenant, j'ai encore du traitement à faire pr mon application espérant que je vais pas bloquer encore
    Je reviendrai si y a besoin
    Merci pr tous ceux qui ont voulu m'aider, ce forum est super bonne continuation!

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

Discussions similaires

  1. Erreur quand j'utilise cout
    Par LowanNeekis dans le forum Débuter
    Réponses: 2
    Dernier message: 06/01/2015, 19h38
  2. VBA me met une erreur quand j’utilise Worksheets ou Feuil
    Par Henri-gp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/03/2013, 14h18
  3. Erreur 1004 quand macro utilisée depuis un autre classeur
    Par Patdeniraud dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/09/2010, 14h57
  4. [SBI BIRT] Erreur de transformation quand Birt utilise Allow Multiples values
    Par atee dans le forum SpagoBI
    Réponses: 1
    Dernier message: 23/04/2009, 17h09
  5. Réponses: 12
    Dernier message: 22/03/2009, 15h07

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