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

Access Discussion :

[Article] Classe MELA pour formulaire (Nouvelle version)


Sujet :

Access

  1. #21
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Pour ceux qui souhaite participer au projet MELA c'est par ici :

    https://crud4msaccess.codeplex.com/
    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

  2. #22
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    Merci beaucoup pour partager ce magnifique travail. Même plusieurs années après, ça fonctionne toujours très bien.

    J'en ai profité pour y ajouter du code afin de masquer le bouton btnPrecedent lorsque l'on est sur le premier enregistrement, et le bouton btnSuivant lorsque l'on est sur le dernier enregistrement.
    Ca peut être pratique.
    Pour qui en a besoin, à ajouter à ActiverControleDetail() :
    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
        ' Désactivation du bouton "Précédent" lorsque l'on est sur le premier enregistrement
        If oForm.CurrentRecord > 1 Then
            oForm.btnPrecedent.Visible = True
        Else
            oForm.btnPrecedent.Visible = False
        End If
     
        ' Désactivation du bouton "Suivant" lorsque l'on est sur le dernier enregistrement
        ' Source : http://www.fontstuff.com/mailbag/qaccess04.htm
        Dim rst As Object
        Set rst = oForm.RecordsetClone  ' Fournit une copie de l'enregistrement, qui peut être manipulée sans modification de l'enregistrement d'origine. Evite de naviguer jusqu'au dernier enregistrement.
        On Error Resume Next
        rst.MoveLast    ' La propriété RecordCount affiche une valeur pour les enregistrements lus. Aller sur le dernier enregistrement permet d'afficher le nombre exact d'enregistrements
        On Error GoTo 0
        If oForm.CurrentRecord < rst.RecordCount Then
            oForm.btnSuivant.Visible = True
        Else
            oForm.btnSuivant.Visible = False
        End If
    A la fin du point VI-A du tuto, il est indiqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.OpenForm "fAdherent",,,,acAdd
    On continue le verrouillage/déverrouillage tout au long des actions qui le nécessitent.
    De quoi s'agit-il, et où peut-on le mettre ?

    Et pourquoi placer les boutons de commande forcément dans l'en-tête ?

  3. #23
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    A la fin du point VI-A du tuto, il est indiqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.OpenForm "fAdherent",,,,acAdd
    On continue le verrouillage/déverrouillage tout au long des actions qui le nécessitent. De quoi s'agit-il, et où peut-on le mettre ?
    Et pourquoi placer les boutons de commande forcément dans l'en-tête ?
    C'est pour donner un exemple d'une commande qui va déclencher le mode Ajout et de mettre ceci en pratique :

    Ici le choix de l'activation ou non des contrôles est conditionné par la valeur renvoyée par la propriété NewRecord du formulaire. Ceci permet d'être immédiatement en situation de saisie si l'ouverture du formulaire est réglée sur Ajout de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ' verrouille l'enregistrement dés son affichage sauf si c'est un nouvel enregistrement.
        ActiverControleDetail oForm.NewRecord
     
        ' Capte l'id de l'enregistrement
        If Not oForm.NewRecord Then
           Me.IdCurrentRecord = vIdCurrentRecord
        End If
    Donc il n'y a rien à faire ! Du moment que tu ouvres un formulaire en mode acAdd (nouvel enregistrement).

    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

  4. #24
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Concernant ton code :
    Pense à libérer les objets que tu ouvres surtout dans des classes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        Dim rst As Object
        Set rst = oForm.RecordsetClone  
    ...
        set rst = Nothing
    Il vaut mieux créer une fonction private qui renvoi le recordcount.
    Que se passe-t-il si le recordset est vide ?

    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

  5. #25
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par loufab Voir le message
    Pense à libérer les objets que tu ouvres surtout dans des classes.
    Exact, merci de me l'avoir rappelé

    Citation Envoyé par loufab Voir le message
    Il vaut mieux créer une fonction private qui renvoi le recordcount.
    Pour quelle raison ?

    Citation Envoyé par loufab Voir le message
    Que se passe-t-il si le recordset est vide ?
    S'il n'y a pas d'enregistrement dans ma table, les boutons ne sont pas visibles. C'est l'intérêt de la gestion des erreurs que j'ai inclus justement : sans enregistrement, RecordCount retourne la valeur 0.

  6. #26
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Il vaut mieux créer une fonction private qui renvoi le recordcount.
    Pour quelle raison ?
    Juste pour bien séparer les traitements et pour éviter d'avoir des On Error qui se ballade dans le code.

    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

  7. #27
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    OK, ça donne ça dans ce cas :
    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
     
    Private Sub ActiverControleDetail(Optional Activer As Variant = True)   ' Activation/désactivation des contrôles
        (...)
        ' Désactivation du bouton "Précédent" lorsque l'on est sur le premier enregistrement
        If oForm.CurrentRecord > 1 Then
            oForm.btnPrecedent.Visible = True
        Else
            oForm.btnPrecedent.Visible = False
        End If
     
        ' Désactivation du bouton "Suivant" lorsque l'on est sur le dernier enregistrement
        If oForm.CurrentRecord < NbRecord(oForm) Then
            oForm.btnSuivant.Visible = True
        Else
            oForm.btnSuivant.Visible = False
        End If
     
    End Sub
     
    Private Function NbRecord(objForm As Form)     ' Nombre d'enregistrements d'un formulaire (Source : http://www.fontstuff.com/mailbag/qaccess04.htm)
        Dim rst As Object
        Set rst = objForm.RecordsetClone  ' Fournit une copie de l'enregistrement, qui peut être manipulée sans modification de l'enregistrement d'origine. Evite de naviguer jusqu'au dernier enregistrement.
        On Error Resume Next
        rst.MoveLast    ' La propriété RecordCount affiche une valeur pour les enregistrements lus. Aller sur le dernier enregistrement permet d'afficher le nombre exact d'enregistrements
        On Error GoTo 0
        NbRecord = rst.RecordCount
        Set rst = Nothing
    End Function
    Bien entendu, des variantes sont possibles, comme changer Visible par Enabled par exemple, ou encore pour n'afficher les boutons suivant et précédant que s'il y a plus d'1 enregistrement.

  8. #28
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    J'ai dû commettre une erreur dans mon code ci-dessus. En écrivant la fonction NbRecord() comme je l'ai fait, le bouton Copier copie uniquement le dernier enregistrement, et non pas l'enregistrement actif. Les autres boutons semblent tous fonctionner correctement.
    J'ai remarqué que mettre le code de la fonction dans ActiverControleDetail() rétablit le bon fonctionnement du bouton.

    D'où peut venir l'erreur ?

  9. #29
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Vous utilisez tout 2 le recordsetclone.

    Il faut que tu remettes le clone sur l'enregistrement de départ.
    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

  10. #30
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    Zut, je ne vois pas du tout quoi modifier.
    J'ai essayé de créer une procédure clone, qui produirait à la fois un clone et fournirai le nombre d'enregistrements, mais sans succès jusque là

  11. #31
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    J'essayerai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        Dim rst As recordset
        Set rst = oForm.RecordsetClone  ' Fournit une copie de l'enregistrement, qui peut être manipulée sans modification de l'enregistrement d'origine. Evite de naviguer jusqu'au dernier enregistrement.
        On Error Resume Next
        rst.MoveLast    ' La propriété RecordCount affiche une valeur pour les enregistrements lus. Aller sur le dernier enregistrement permet d'afficher le nombre exact d'enregistrements
        On Error GoTo 0
        NbRecord = rst.RecordCount
        rst.bookmark = oform.recordset.bookmark
        Set rst = Nothing
    Inutile d'instancier le formulaire il l'est déjà dans oForm.

    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

  12. #32
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    En remplaçant également ma fonction NbRecord(objForm As Form) par une procédure CalculNbRecords() qui calcule NbRecord, ça fonctionne mieux à présent.
    Merci

    J'essaie également d'ajouter un dernier effet : n'activer le bouton Annuler que lorsque l'utilisateur fait une modification sur le formulaire.
    Il faudrait donc ajouter un code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If oForm.Dirty Then
        oForm.btnAnnuler.Enabled = True
    Else
        oForm.btnAnnuler.Enabled = False
    End If
    Où peut-on insérer ce code ?

  13. #33
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Ce cas ne peut être fait via un simple test. En effet les mécanismes des formulaires (expliqué dans mon tuto sur les évènements de formulaires) nécessitent d'utiliser les événements adéquats pour le mettre en oeuvre. Les 2 évènements sont Si modification et Après_Maj.

    Il faut surcharger l'évènement Form_Dirty() du formulaire, comme je l'ai fais pour Form_Current() pour y placer l'activation.
    La désactivation doit être faite sur la sauvegarde, donc Form_AfterUpdate().

    Le bouton doit être désactivé par défaut.
    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

  14. #34
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    Si j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub oForm_Dirty()   ' En cas de modification du formulaire, activation du bouton Annuler.
        oForm.btnAnnuler.Enabled = True
    End Sub
    je reçois l'erreur L'expression Sur ouverture entrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. La déclaration de la procédure ne correspond pas à la description de l'événement ou de la procédure de même nom.

  15. #35
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    Bonjour,
    J'ai changé Private Sub oForm_Dirty() en Private Sub oForm_Dirty(Cancel As Integer), ce qui me permet d'enlever le message d'erreur.
    Par contre, le bouton Annuler ne veut pas s'activer lorsque je modifie une donnée.
    Vous avez une idée pour faire en sorte que ça fonctionne ?

  16. #36
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Tu as oublié d'activer les événements avec "[Event Procedure]" dans la méthode/propriété Form.

    Tu n'as pas lu le tuto... tout ça y est expliqué.
    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

  17. #37
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    C'est bien ça, merci . Et si, j'avais bien lu tout le tuto, mais j'aurai dû le relire après avoir fait mes modif.

    Ca fonctionne bien. J'en ai profité pour modifier le comportement du bouton Supprimer. En effet, j'ai remarqué que le bouton Supprimer se dirige sur l'enregistrement suivant après la suppression, y compris pour le dernier enregistrement. Dans ce cas, le formulaire cible un enregistrement vide (celui pour créer un nouvel enregistrement) et bascule en mode édition. Il faut donc tout d'abord enregistrer cet enregistrement en le laissant vierge, et revenir sur l'enregistrement précédent. Rien de grave, mais ça peut être automatisé.

    J'ai continué l'analyse du code, pour le mettre à ma sauce.

    Dans la procédure ActiverControleDetail(Optional Activer As Variant = True), comme Activer est mis à True par défaut, à quoi sert la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsMissing(Activer) Then Activer = oForm.Controls(Me.DefaultControlName).Locked
    N'y a-t-il pas double emploi avec l'option par défaut ?

    Concernant la partie gestion des boutons Enregistrer et Modifier dans cette procédure, je pense qu'il est important de signaler que l'ordre d'affichage est important. J'ai notamment souhaité masquer les boutons Enregistrer et Annuler en mode sélection, et les boutons Créer, Modifier, Copier, Supprimer, Précédent et Suivant en mode édition, et si on ne place pas les Visible = True au début, puis le SetFocus, et enfin les Visible = False, l'affichage des boutons nous joue des tours.

    Autre question : pourquoi conserver la définition de la propriété Get Form, puisque il est précisé "Nous pourrions nous passer de cette propriété et y accéder en utilisant l'objet oForm", ce qui semble être le cas dans le reste du programme ?

  18. #38
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Cette classe de démonstration, bien que fonctionnelle, est perfectible.

    Concernant le isMissing il est effectivement obsolète.

    En effet la propriété Visible ne peut être manipulée sur un contrôle qui a le focus. Ce n'est pas lié à la classe mais un comportement logique d' ACCESS.

    Le getteur permet de faire appel au formulaire depuis l'extérieur et ainsi de respecter les éventuelles contraintes (non présente dans cette version de démo) qui pourrait y être.

    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

  19. #39
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 113
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    L'intégration de cette classe dans un sous-formulaire est-elle possible ?
    Je viens d'essayer. Dans le sous-formulaire directement, nommé SsFrmStructure_Adresse, pas de problème. Mais dans le formulaire père, Access me retourne "2489 -- L'objet "SsFrmStructure_Adresse" n'est pas ouvert."

  20. #40
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    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 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Normalement oui.
    Par contre pas si le formulaire lui même à déjà cette classe en action.
    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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/04/2014, 11h56
  2. 2017 : un quinquennat pour une nouvelle version du C++ ?
    Par 3DArchi dans le forum Normalisation
    Réponses: 45
    Dernier message: 02/04/2013, 08h04
  3. Firefox pour Android : première beta pour la nouvelle version
    Par Gordon Fowler dans le forum Android
    Réponses: 12
    Dernier message: 27/06/2012, 16h22

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