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 :

Code vba ne fonctionne pas pour sous formulaire


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 252
    Points : 74
    Points
    74
    Par défaut Code vba ne fonctionne pas pour sous formulaire
    Bonjour,

    J'ai mes codes VBA qui fonctionnent très bien sur un formulaire. Cependant quand ce formulaire apparait en tant que sous formulaire (dans un autre formulaire donc), les codes VBA ne fonctionnent plus.

    Pourquoi ?

    code (dans module 1) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function nouvel_enregistrement()
    Forms("Liste lot").AllowAdditions = True
    Forms("Liste lot").Refresh
    End Function
    Code (dans la form) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Libellé_lot_AfterUpdate()
    Forms("Liste lot").AllowAdditions = False
    Forms("Liste lot").Refresh
    End Sub

    Pourquoi ces codes ?
    J'ai deux formulaires (contrat et liste lot). Liste lot apparait en tant que sous formulaire (en continu) de contrat. Cela me convient très bien cependant je ne veux pas que nouvel enregistrement apparaisse quand le dernier champ est remplit. C'est pourquoi j'ai désactivé "Ajout autorisé" et j'ai crée un bouton pour ajouter un nouvel enregistrement.
    Pas d'autres solutions je crois. Oui ?

    Merci

  2. #2
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.

    Quand un formulaire est utilisé en tant que sous-formulaire, il faut être attentif au nom qui lui a été donné en tant que contrôle dans le formulaire principal. Si ce nom, en tant que contrôle du form principal, diffère de son nom dans la liste des formulaires, une procédure où il est désigné avec son nom de formulaire peut ne pas fonctionner quand il est utilisé comme sous-formulaire.
    Essaie donc de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms("Liste lot").AllowAdditions = False
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.AllowAdditions = False
    et de même pour les autres lignes.
    Ainsi cela devrait fonctionner dans les deux situations.
    Cordialement.
    N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
    Plus haut monte le singe, plus il montre son cul (Montaigne)
    Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 252
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Si je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.AllowAdditions = True
    dans le module 1 j'ai un message d'erreur "utilisation incorrecte du mot clé Me" ce que je comprends car dans le module 1 "Me" ne correspond à rien il faut bien que je fasse référence au formulaire en indiquant son nom non ?

    Le nom du sous formulaire est exactement le même que le nom du formulaire à savoir "Liste lot".

    Petite précision qui a peut-être son importance : mon sous formulaire est décomposé en entête, détail et pied de formulaire. Le bouton pour ajouter un enregistrement se trouve dans l'entête.

    Merci

  4. #4
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.
    Effectivement, le "Me" ne peut être utiliser que dans le module du formulaire auquel il se rapporte.
    Mais pourquoi ne mets-tu pas ce code sur l'événement "click" du bouton d'ajout d'enregistrement. Le fait que ça soit dans la section en-tête du sous-form n'a pas d'incidence.

    Je viens d'essayer pour ne pas te conseiller quelque chose qui ne marche pas, et ça fonctionne très bien.
    Cordialement.
    N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
    Plus haut monte le singe, plus il montre son cul (Montaigne)
    Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 555
    Points
    24 555
    Par défaut
    Bonjour,
    Il y a un tuto qui explique tout ça.

    C'est ici :
    http://loufab.developpez.com/tutorie...pelformulaire/

    Chapitre III.

    Lire le reste te rendra autonome pour ces syntaxes basiques.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Membre régulier
    Inscrit en
    Juillet 2010
    Messages
    252
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 252
    Points : 74
    Points
    74
    Par défaut
    Merci à vous deux.

    Je vais lire le tuto de ce pas !

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/05/2015, 15h43
  2. [AC-2010] Requete via code VBA ne fonctionne pas
    Par jurta dans le forum Access
    Réponses: 3
    Dernier message: 16/12/2013, 08h59
  3. code vba ne fonctionne pas
    Par lecaire dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/01/2010, 22h27
  4. Mes codes VBA ne fonctionnent pas sous access 2007
    Par ralfus dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/11/2008, 11h36
  5. Réponses: 10
    Dernier message: 30/03/2007, 17h30

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