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 :

Creation d'un message lors de l'ouverture d'un formulaire


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut Creation d'un message lors de l'ouverture d'un formulaire
    Bonjour,

    J'ai sur un Formulaire, un bouton qui ouvre un autre formulaire sur les données concernant le périmètre que lequel j'etais positionné dans le 1er formulaire.

    Il arrive que ces données ne soient pas saisi sur le second formulaire, actuellement il ouvre toujours sur le 1er enregistrement effectué sur le second formulaire, du coup je me suis inspiré du code que j'ai ailleurs pour l'adapter a ce cas, or quand je click sur le bouton j'ai le message d'erreur suivant :

    Erreur d’exécution '438':
    Proprieté ou methode non gerée 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
    Private Sub Commande25_Click()
     
     DoCmd.OpenForm "frm_signalitique_superficiaire", , , , , , Me.Nom_Perimetres
      Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[Nom Perimetres] = '" & Me.Commande25 & "'"
        If rs.NoMatch Then
            MsgBox "Perimetre inexistant! voulez vous le saisir"
        Else
            Me.Bookmark = rs.Bookmark
        End If
     
    End Sub
    Si l'utilisateur click sur Ok le formulaire s'ouvre sur un nouvel enregistrement.
    Merci.

    Cordialement.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 037
    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 037
    Points : 24 614
    Points
    24 614
    Par défaut
    Bonjour,

    Quand tu utilises "Me" tu t'attends à avoir quel objet formulaire ?

    Cordialement,

  3. #3
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Oui un formulaire, j'ai apporté une modification

    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 Commande25_Click()
     
     DoCmd.OpenForm "frm_signalitique_superficiaire", , , , , , Me.Nom_Perimetres
      Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[Nom Perimetres] = '" & Me.[Nom Perimetres] & "'"
        If rs.NoMatch Then
            MsgBox "Perimetre inexistant! voulez vous le saisir"
        Else
            Me.Bookmark = rs.Bookmark
        End If
     
    End Sub
    Il ouvre le formulaire, mais sur le premier enregistrement et sans avoir de message.

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 037
    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 037
    Points : 24 614
    Points
    24 614
    Par défaut
    la question c'était lequel ?
    Celui que tu ouvres juste avant ?

  5. #5
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Ouvrir un formulaire partir d'un autre formulaire et affiché certaines données qui sont sur le 1er formulaire, notamment le nom du perimetre, dans le cas ou sur le second formulaire il y a absence de ces données, un message nous l'indique et nous propose de saisir les données.

    Si l'utilisateur accepte le formulaire s'ouvre sur un nouvel enregistrement.

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 037
    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 037
    Points : 24 614
    Points
    24 614
    Par défaut
    Désolé ! Si tu ne réponds pas aux questions que je te pose on ne va pas s'en sortir.

  7. #7
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Ah, desolé, je n'avais pas compris, j’étais pourtant sur que j'avais compris.

    S'il vous plait, vous pouvez me reformuler la question.

    Je comprend vite quand on m'explique beaucoup.

    Cordialement.

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 037
    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 037
    Points : 24 614
    Points
    24 614
    Par défaut
    Est-ce que dans ton code tu souhaites que "Me" désigne "frm_signalitique_superficiaire" ?

  9. #9
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Oui c'est le nom du formulaire que je souhaite ouvrir avec dedans un champ qui s'appel [Nom Perimetres]

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 037
    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 037
    Points : 24 614
    Points
    24 614
    Par défaut
    Tu ne peux pas utiliser Me en dehors de son périmètre.

    Me ne fonctionne QUE dans le code du formulaire qu'il désigne.

    N'utilise pas Me mais Forms(...) ou change de méthode. Mon tuto sur les appels formulaires t'aidera surement.

    Par exemple :
    Interroge la source du formulaire puis quand tu sais si la valeur existe tu ouvres le formulaire en conséquence.

  11. #11
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    j'ai fait ca, toujours rien, j'ai tout plein de messages d'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 Commande25_Click()
     
     DoCmd.OpenForm "frm_signalitique_superficiaire", , , , , , Me.Nom_Perimetres
      Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[Nom Perimetres] = Forms(frm_signalitique_superficiaire)"
        If rs.NoMatch Then
            MsgBox "Perimetre inexistant! voulez vous le saisir"
        Else
            Me.Bookmark = rs.Bookmark
        End If
     
    End Sub

  12. #12
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 114
    Points : 148
    Points
    148
    Par défaut
    Si tu essayes ça comme ça?

    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 Commande25_Click()
     
     DoCmd.OpenForm "frm_signalitique_superficiaire", , , , , , Me.Nom_Perimetres
      Dim rs As Object
     
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[Nom Perimetres] = " & Forms("frm_signalitique_superficiaire")!Commande25
        If rs.NoMatch Then
            MsgBox "Perimetre inexistant! voulez vous le saisir"
        Else
            Me.Bookmark = rs.Bookmark
        End If
     
    End Sub

  13. #13
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Bonjour syrald,

    Merci pour la reponse, je n'ai pas actuellement la base sous les yeux, demain matin je ferais le test, en attendant, je ferais un tour sur le tuto de Loufab, histoire de comprendre comme que ca marche.

    Merci.

    Cordialement.

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 037
    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 037
    Points : 24 614
    Points
    24 614
    Par défaut
    Bonjour,
    @syrald : non plus.

    Le problème vient de l'utilisation du Me pour désigner un formulaire extérieur.
    Me désigne TOUJOURS l'objet (formulaire/état/classe) propriétaire du module dans lequel il est utilisé.

    Ici ce n'est pas le cas. adelion7015 veut que Me désigne "frm_signalitique_superficiaire".

    Soit on passe pas une syntaxe forms("frm_signalitique_superficiaire"). soit on instancie ce formulaire dans une variable Form.

    A noter que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '" & Me.[Nom Perimetres] & "'"
    est la seule partie valide dans ce code puisque c'est bien la valeur de ce contrôle qui doit être recherchée.

    Cordialement,

  15. #15
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    J'ai fait des essais en rentrant ce matin et ça ne marche toujours pas avec ce 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
    Private Sub Commande25_Click()
     
     DoCmd.OpenForm "frm_signalitique_superficiaire", , , , , , Me.Nom_Perimetres
      Dim rs As Object
     
        Set rs = Me.Recordset.Clone
         rs.FindFirst "[Nom Perimetres] = " & Forms("frm_signalitique_superficiaire")![Nom Perimetres]
        If rs.NoMatch Then
            MsgBox "Perimetre inexistant! voulez vous le saisir"
        Else
            Me.Bookmark = rs.Bookmark
        End If
     
    End Sub
    j'ai le message suivant :

    Erreur d'execution 3077:
    Erreur de syntaxe (operateur absent) dans l'expression.

    Cordialement.

  16. #16
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 037
    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 037
    Points : 24 614
    Points
    24 614
    Par défaut
    Si tu postes une erreur il faut indiquer la ligne sur laquelle elle se produit.

    Une piste :

    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
    Private Sub Commande25_Click()
     
     DoCmd.OpenForm "frm_signalitique_superficiaire", , , , , , Me.Nom_Perimetres
      Dim rs As dao.recordset
     
        Set rs = forms("frm_signalitique_superficiaire").RecordsetClone
     
        rs.FindFirst "[Nom Perimetres] = '" & Me.[Nom Perimetres] & "'"
        If rs.NoMatch Then
            MsgBox "Périmètre inexistant ! Voulez-vous le saisir ?"
        Else
            forms("frm_signalitique_superficiaire").Recordset.Bookmark = rs.Bookmark
        End If
     
    End Sub
    Il y a d'autres méthodes pour arriver au résultat.
    Rechercher l'existence avant d'ouvrir et ouvrir en conséquence. Ce qui serait plus logique et plus sécurisé.

    Cordialement,

  17. #17
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 037
    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 037
    Points : 24 614
    Points
    24 614
    Par défaut
    Adelion : Désolé d'insister mais je pense que tu devrais vraiment prendre connaissance de ce tuto :

    http://loufab.developpez.com/tutorie...pelformulaire/

  18. #18
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 382
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Ca marche.

    Loufab, je le ferais avec grand plaisir et intérêt, sachez que je m'inspire beaucoup de vos travaux, qui a mon sens, leurs utilités est presque infinie, c'est juste qu'a present, j'ai une petite urgence.

    Merci et encore merci.

    Cordialement.

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

Discussions similaires

  1. VBA: Affichage d'un message lors de l'ouverture d'un fichier word
    Par LANGAZOU dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 02/03/2015, 19h32
  2. Réponses: 12
    Dernier message: 27/12/2013, 11h41
  3. Réponses: 6
    Dernier message: 16/08/2006, 13h20
  4. [VBA-E]message lors de l'ouverture d'un autre classeur
    Par repié dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2006, 15h30
  5. Réponses: 9
    Dernier message: 27/10/2004, 17h00

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