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 :

Comment désactiver une subform intégrée?


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut Comment désactiver une subform intégrée?
    Bonjour à tous,

    Lors du passage à Access 2010, j'ai souffert, comme beaucoup, de la perte de l'objet SpreadSheet.
    Pour contourner le problème, je me suis dit que j'allais simplement intégrer une subform de type datasheet (qui donc se remplit à partir d'une table déjà existante).
    Jusque là, tout va bien: les données apparaissent et on peut les modifier.

    Cependant, dans la form qui contient cette subform, je charge le fichier qui alimente la table sur laquelle est basée la subform.
    Et là, forcément, j'ai un message d'erreur qui me dit que je ne peux pas acceder à la table, celle-ci étant déjà ouverte ailleurs (dans la subform, quoi).

    Comment puis-je palier à celà?

    En cherchant une solution, je me suis dit qu'avant le code de l'importation, j'allais "désactiver" la subform avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![Form]![Subform].Close
    Je ne sais pas si c'est une bonne solution; toujours est-il que je me suis rendu compte que dans l'éditeur de code d'Access (qui est séparé de la partie design de l'application, sous 2010), ma nouvelle form n'apparaît pas dans la liste à gauche "Microsoft Access Class Objetcs". Impossible d'importer la nouvelle form... Est-ce normal? Ai-je oublié de configurer quelque chose?

    Le cas échéant, quelle est la meilleure méthode pour me sortir de l'erreur originale, svp?

    Merci beaucoup!

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    Essaie plutôt de neutraliser la source de ton sous-formulaire au moment adéquat et de la rétablir ensuite si nécessaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me!Subform.SourceObject = ""

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut
    Bonjour Claude,

    Merci beaucoup: c'est exactement ce que je cherchais (j'ai un peu de mal avec les sources - voir un autre post de ma part plus bas - alors que c'est tout simple...)

    Alors par contre, PROBLÈME: ce que je mets en deuxième partie de mon premier post:
    toujours est-il que je me suis rendu compte que dans l'éditeur de code d'Access (qui est séparé de la partie design de l'application, sous 2010), ma nouvelle form n'apparaît pas dans la liste à gauche "Microsoft Access Class Objects". Impossible d'importer la nouvelle form... Est-ce normal? Ai-je oublié de configurer quelque chose?
    En effet, quand j'exécute le code que tu m'as donné (comme celui que j'avais posté plus haut), j'ai la typique erreur
    Run-time error '2465': [Application] can't find the field '[Subform]' referred to in your expression.
    --> La subform n'est pas reconnue, et je suppose que c'est dû au fait qu'elle n'apparaît pas dans les Class Objects.

    Une idée?

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Désolé, j'en suis encore à Access2000.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut
    En bidouillant un peu partout, en fermant et rouvrant, etc., j'ai finalement ma form parmi les "Microsoft Access Class Objects". Me demandez pas comment j'ai fait...

    Bref. La form étant reconnue, je n'ai plus l'erreur de départ.
    Je teste donc le code que tu m'as donné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me!Subform.SourceObject = ""
    Qui marche bien.
    Quand ensuite, je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me!Subform.SourceObject = "[NOM_QUERY]"
    ça ne marche pas et apparaît alors le message d'erreur:
    Run-time error '2101': The setting you entered isn't valid for this property.
    Je ne comprends pas pourquoi. Avez-vous une idée?

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut
    Bonjour,

    En fait, j'avais mal compris: je croyais que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me!Subform.SourceObject = ""
    correspondait à la source du subform, et non au subform lui-même.

    J'ai donc ré-essayé en mettant le nom du subform:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![Form]![Subform].SourceObject = "[Nom_Subform]"
    Mais j'ai la même erreur que celle de mon message précédent.

    Je comprends pas la logique de cette erreur.
    Si j'ai pu modifier la propriété avant, pourquoi pas maintenant?

    ...

    Par ailleurs, j'ai essayé une autre méthode: mettre un bouton, et lorsqu'on clique dessus, on ouvre un form, qui, au moment de charger, rouvre le form sur lequel on était, puis se ferme (on ne voit donc pas ce form).
    Code du bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.OpenForm "Form_Temporaire"
    DoCmd.Close acForm, Me.Name
    Code dans le Load du form appellé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.OpenForm "Form_Original"
    DoCmd.Close acForm, Me.Name
    Mais ça ne marche pas: le form original n'est pas fermé puis ré-ouvert (le subform aurait été rechargé).
    Quelle serait la bonne méthode, s'il vous plaît?

Discussions similaires

  1. UI Accordion. Comment désactiver une section ?
    Par charade dans le forum jQuery
    Réponses: 3
    Dernier message: 12/02/2010, 15h18
  2. [2.0] Comment désactiver une view ?
    Par quanou dans le forum ASP.NET
    Réponses: 0
    Dernier message: 19/09/2007, 19h24
  3. Comment désactiver une touche ?
    Par touff5 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 06/02/2007, 21h31
  4. Comment désactiver une warning?
    Par Onarap dans le forum Ruby
    Réponses: 2
    Dernier message: 05/11/2006, 18h56
  5. Réponses: 12
    Dernier message: 06/10/2006, 09h26

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