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. #1
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut [Article] Classe MELA pour formulaire (Nouvelle version)
    Bonjour,

    Découvrez la classe MELA (CRUD en anglais), de l'acronyme Modification, Effacement, Lecture, Ajout.

    Disponible en version 2007 ou Texte pour ceux qui ont des versions antérieures.

    C'est ici
    http://loufab.developpez.com/tutorie...s/classe-mela/

    [Edit] L'interet d'une telle classe réside dans la facilité de mise en place d'un système de gestion de fiche pour l'ensemble d'une application, simplement par la déclaration d'une classe dans l'événement d'ouverture des formulaires.

    J'attend vos commentaires.

    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

  2. #2
    Membre averti
    Profil pro
    TDG
    Inscrit en
    Mars 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : TDG

    Informations forums :
    Inscription : Mars 2007
    Messages : 152
    Points : 367
    Points
    367
    Par défaut
    Bonjour Fabrice,

    Un grand merci. J'adore cette classe MELA.

    Une suggestion d'ajout (en rouge) dans Public Property Set Form (objForm As Form) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
           
    '...
     If Not (TypeOf ctrl Is Label Or TypeOf ctrl Is Line Or TypeOf ctrl Is Image Or _
                    TypeOf ctrl Is CustomControl Or TypeOf ctrl Is TabControl Or _
                    TypeOf ctrl Is Page Or _
                    TypeOf ctrl Is PageBreak Or TypeOf ctrl Is Rectangle) Then
    '...
    En effet, tous les contrôles de mon Form sont inclus dans un contrôle TabControl. Or comme le TabIndex de celui-ci est égal à zéro, le TabControl s'impose comme contrôle par défaut pour définir DefaultControlName.

    En pratique, cela se traduit par un bouton btnEnregistrer toujours visible et un bouton btnModifier toujours invisible.

    C'est un détail, mais ça peut éviter à d'autres de sécher comme je l'ai fait.

    Cordialement
    Ph.

  3. #3
    Membre averti
    Profil pro
    TDG
    Inscrit en
    Mars 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : TDG

    Informations forums :
    Inscription : Mars 2007
    Messages : 152
    Points : 367
    Points
    367
    Par défaut
    Encore moi.

    Une variante utile d'utilisation ou d'adaptation de la classe MELA :

    J'ai créé un sous-formulaire ne contenant que les boutons. C'est ce sous-formulaire qui appelle la classe MELA. Il suffit d'insérer le sous-formulaire dans l'entête ou le pied de n'importe quel formulaire, et ça marche très bien. Cela évite de coder dans chaque formulaire le code d'appel de la classe Mela dans les événements Open et Close.

    Il y a essentiellement deux modifications à apporter au code :

    1. Partout ou le code fait référence à des contrôles de la section Détail du formulaire, il suffit de remplacer Form par Form.Parent. Par exemple :

    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
        
    '...
    For Each ctrl In Form.Parent.Section(acDetail).Controls
            ' c'est un controle avec une propriété TabIndex        
            If Not (TypeOf ctrl Is Label Or TypeOf ctrl Is Line Or TypeOf ctrl Is Image Or _
                    TypeOf ctrl Is CustomControl Or TypeOf ctrl Is TabControl Or TypeOf ctrl Is Page Or _
                    TypeOf ctrl Is PageBreak Or TypeOf ctrl Is Rectangle) Then
    
                If ctrl.TabIndex = 0 Then
                    DefaultControlName = ctrl.Name
                    Exit For
                End If
    
            End If
        Next
    '...
    2. Dans le code ci-dessous, remplacer acHeader par acDetail (j'ai placé les boutons dans la section Détail du sous-formulaire — J'aurais aussi pu les placer dans la section En-tête et ne pas modifier ce bout de 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
    Public Property Set Form(objForm As Form)
    ' initialisation du formulaire à gérer
        On Error GoTo errSub
    
        Dim ctrl As Control
        
        Set oForm = objForm
        ' parcours l'entête de formulaire
        
        For Each ctrl In Form.Section(acHeader).Controls    ' => For Each ctrl In Form.Section(acDetail).Controls
            If TypeOf ctrl Is CommandButton Then
                ' on active l'événement
                ctrl.OnClick = "[Event Procedure]"
    '...
    Ph.

  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 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut

    En effet beaucoup de variation possible autour de ce thème.
    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. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Suite à la demande d'un lecteur sur mon blog voici une petite évolution de la classe MELA.

    Copie d'un enregistrement

    Il est facile d’ajouter des fonctions dans la classe MELA.
    Il suffit d’ajouter un bouton en utilisant la normalisation requise.

    1) Ajouter la déclaration dans l’entête de la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private WithEvents btnCopierEnregistrement As CommandButton
    2) Ajouter la libération dans la procédure Terminate.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set btnCopierEnregistrement = Nothing
    3) Ajouter l’instanciation dans la property Form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Case "btnCopierEnregistrement "
    Set btnCopierEnregistrement = Ctrl
    4) Ajouter le code de la copie dans une nouvelle procédure respectant la normalisation du nom.
    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
    Private Sub btnCopierEnregistrement _Click()
    ' copier l'enregistrement courant
    Dim rst As DAO.Recordset
    Dim fld As DAO.Field
    If Form.NewRecord And Not Form.Dirty Then Exit Sub 'pas de copie d'un enregistrement vide
    btnEnregistrer_Click ' on enregistre
    Set rst = Form.RecordsetClone 'on utilise le clone pour la source
     
    btnCreer_Click 
     
    Form.Recordset.AddNew 'et le recordset pour la destination
    For Each fld In Form.Recordset.Fields
     
         If Not fld.Attributes And dbAutoIncrField Then 'sauf les NumeroAuto
             fld.Value = rst.Fields(fld.Name)
         End If
     
    Next
    Form.Recordset.Update
    End Sub
    5) Ajouter le bouton avec le nom btnCopierEnregistrement.

    Voilà !
    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
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Nouvelle version avec le copier et la liste déroulante de recherche.
    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. #7
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Bonjour Loufab

    J'ai jeter un petit coup d'oeil sur ta base avec les nouveaux ajouts j'ai remarqué une petite problématique ou la liste déroulante ne s'update pas après copier et supprimé.

    Donc voici un petit fix rapide soit l'ajout de ceci à la fin des 2 procédure respective :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form.LmRechercher.Requery
    Procédure Supprimé

    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
    Private Sub btnSupprimer_Click()
    ' suppression de l'enregistrement courant
        On Error GoTo errSub
     
        If MsgBox("Voulez-vous supprimer définitivement la fiche " & Form.Caption & " ?", _
                   vbYesNo + vbDefaultButton2, fVersionProduit()) = vbYes Then
            If Form.NewRecord Then  ' c'est un nouveau record on annule simplement
                Form.Undo
            Else
                Form.Recordset.Delete   ' on supprime
                Form.LmRechercher.Requery 'Ce petit Ajout 
            End If
        End If
     
        Exit Sub
    errSub:
        ' après suppression du dernier enregistrement
        If Err.Number = 3021 Then btnCreer_Click
     
    End Sub
    Procédure Copier

    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
    Private Sub btnCopierEnregistrement_Click()
    ' copier l'enregistrement courant
        Dim rst As DAO.Recordset
        Dim fld As DAO.Field
        If Form.NewRecord And Not Form.Dirty Then Exit Sub  'pas de copie d'un enregistrement vide
        btnEnregistrer_Click ' on enregistre
        Set rst = Form.RecordsetClone
     
        btnCreer_Click
     
        Form.Recordset.AddNew
        For Each fld In Form.Recordset.Fields
     
            If Not fld.Attributes And dbAutoIncrField Then 'sauf NumeroAuto
               fld.Value = rst.Fields(fld.Name)
            End If
     
        Next
        Form.Recordset.Update
        Form.LmRechercher.Requery 'Ce petit Ajout 
        btnEnregistrer_Click
     
    End Sub
    Je vient de me rendre compte d'une autre problématique ....
    lorsque l'on appuie sur copier, ca fonctionne mais ca copie le premier enregistrement du recordset et non pas celuil présentement a l'écran. j'essai de trouver une solution, mais si tu le trouve avant moi fait moi signe.
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  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 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Cool !
    Me demande si je vais pas le mettre en projet collaboratif ?!
    Je vais intégrer ça ce soir.
    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

  9. #9
    Membre averti Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Points : 423
    Points
    423
    Par défaut
    Pourquoi pas

    À tu remarqué l'autre problématique don j'ai fait mension ?

    Je vient de me rendre compte d'une autre problématique ....
    lorsque l'on appuie sur copier, ca fonctionne mais ca copie le premier enregistrement du recordset et non pas celuil présentement a l'écran. j'essai de trouver une solution, mais si tu le trouve avant moi fait moi signe.
    Parfois il faut faire le tour d'une roche 10 fois avant de s'apercevoir quelle est ronde.
    • Si vous trouvé mon post intéressant, n'oubliez pas de voter coté inférieur droit du message. Merci
    • Si votre Post est indiquez le....
    • Celuil là je devait le mettre ici ....hihi -->

  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 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    je vais tester ça ce soir. J'ai pas mal de trucs en cours en ce moment.
    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

  11. #11
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonjour à tous,
    ... copier, ca fonctionne mais ca copie le premier enregistrement du recordset ...
    J'ai ajouté l'utilisation de Bookmark pour corriger :
    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
    29
    30
    31
    32
    33
    34
    35
    Private Sub btnCopierEnregistrement_Click()
    ' copier l'enregistrement courant
    ' 2012-09-27 Ajout varBookmark
     
        Dim rst As DAO.Recordset
        Dim fld As DAO.Field
        Dim varBookmark As Variant
     
     
        If Form.NewRecord And Not Form.Dirty Then Exit Sub  'pas de copie d'un enregistrement vide
        btnEnregistrer_Click    ' on enregistre
     
        ' Store the bookmark of the current record.
        varBookmark = Form.Recordset.Bookmark
     
        Set rst = Form.RecordsetClone
     
        ' Go to the record indicated by the stored bookmark
        rst.Bookmark = varBookmark
     
        btnCreer_Click
     
        Form.Recordset.AddNew
        For Each fld In Form.Recordset.Fields
     
            If Not fld.Attributes And dbAutoIncrField Then    'sauf NumeroAuto
                fld.Value = rst.Fields(fld.Name)
            End If
     
        Next
        Form.Recordset.Update
        Form.LmRechercher.Requery    'Ce petit Ajout
        btnEnregistrer_Click
     
    End Sub
    Bravo et grand merci à Loufab (et à tous les piliers de ce forum)
    "Always look at the bright side of life." Monty Python.

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Voilà la nouvelle version est en ligne.
    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

  13. #13
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 335
    Points : 166
    Points
    166
    Par défaut
    bonjour et merci pour cette classe.
    je suis en train de la mettre en oeuvre sur un nouveau projet et ça fait ... classe ! je lui ai ajouté une gestion des droits de création/modification/suppression de l'utilisateur loggé (avec de nouvelles propriétés dans la classe). Par contre, je confirme que l'enregistrement suite à une création ne fonctionne pas s'il y a un champs pièce jointe dans la table sous-jacente (j'ai cherché le souci pdt plus de 2 heures avant de voir le petit message en fin de ton tuto parlant de ce dysfonctionnement..). Avez-vous une explication pour ce souci et un moyen de le contourner (pour une fois, j'aurai aimé utilisé ce nouveau champs dans une appli...) ? Si l'on mets un docmd.runcommand accmdsaverecord au lieu du dirty=false pour enregistrer, est-ce que cela ne va pas mieux ?
    merci et bonne journée

    guen

  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 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Bonjour,

    Intéressante évolution que celle que tu as développé.
    Si tu souhaites en faire profiter la communauté tu le peux en utilisant le forum Contribuez.

    Concernant les PJ j'ai fait pas mal de tests et... je n'ai pas trouver le moyen de corriger ce problème ni même d'en trouver la cause. Que l'on utilise un runcommand ou un dirty = false ne change rien au problème.

    Ce qui est encore plus mystérieux c'est que seule la création d'un nouvel enregistrement pose soucis. Un enregistrement déjà créé et modifié en ajoutant un Pj s'enregistre bien.

    Ce n'est pas lié au contrôle (PJ) mais bien à la table contenant ce type de champ. Si on enlève le contrôle du formulaire le problème subsiste.

    Si tu es allé plus loin dans les tests je suis preneur des informations.

    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

  15. #15
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 335
    Points : 166
    Points
    166
    Par défaut
    Je suis arrivé a la meme conclusion que toi dans mes tests sur la pj dans la table.. je crois que je vais m'en passer du coup. Je n ai pas mon ordi sous la main mais je testerai la pj dans un sous fofm et une autre table a tout hasard... Je ferai un autre post avec la gestion des droits mais il faudra peut etre le relire car je ne suis pas un programmeur expert...a suivre...

  16. #16
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 335
    Points : 166
    Points
    166
    Par défaut
    Pour continuer mon post précédent et une info intéressante aprés des tests... si on mets la pj dans une autre table et qu'on la place dans un sous-formulaire lié sur notre formulaire principal et bien... cela fonctionne ! bizarre mais cela permet de contourner le pb sans (presque) que l'utilisateur ne s'en rendre compte...
    Par contre, je viens de remarquer autre chose d'étrange, les numéros auto s'incrémentent de 2 en 2 lors de la création avec la classe... ce n'est pas réellement un pb mais c'est étrange également... on s'en rend compte lorsque l'on mets un affichage en formulaire double, il créé 2 lignes dans le formulaire en feuille de donnée avant de n'en conserver qu'une seule ensuite (d'où l'index de 2 en 2 je pense...)
    guen

  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 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    En effet c'est l'un des effets de la PJ remonté par un autre devnaute.
    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

  18. #18
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 335
    Points : 166
    Points
    166
    Par défaut
    mais il me semble que ça le fait même s'il n'y a pas de pj (j'ai fait le test sur ton fichier MELA.accdb...)

  19. #19
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    Bizarre. Je vais vérifier la version en téléchargement mais en tout cas celle que j'utilise sur plusieurs applis ne le fait pas.
    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

  20. #20
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    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 004
    Points : 24 595
    Points
    24 595
    Par défaut
    En effet le problème est corrigé, lors de la création (btncreer_click) il faut utiliser un docmd.gotorecord car le addnew provoque ce petit problème.
    J'ai remplacé les 2 versions téléchargeables.
    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