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 :

Suppression automatique des doublons par code [AC-2013]


Sujet :

Access

  1. #1
    Membre expérimenté
    Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 193
    Par défaut Suppression automatique des doublons par code
    Bonsoir membres du forum,
    J'ai écrit ce code afin d'éliminer automatiquement le doublon à partir d'un formulaire:

    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
     
     
     
    ''FONCTION POUR CONTROLER LES DOUBLONS DE L'ENREGISTREMENT DES MATIERES
    ''PAR COMPOSITION,PAR CLASSE ET ANNEE SCOLAIRE ET PAR ETBLISSEMENT SCOLAIRE
    Public Function fMatiereDejaEnregistree(ETABL As Long, AnneeScolComp As String, ClasFr As String, _
    ComposF As Long, Matier As Long) As Boolean
    On Error GoTo MOROBABOUMAR
     
    Dim nbElement As Long
    nbElement = DCount("*", "MATIERE_CLASSE_FR_Req", "Identif_EtablisFR = " & ETABL & _
    "and annee_scol ='" & AnneeScolComp & "'and NumCompoMCFr =" & ComposF & _
    "and classe_francais ='" & ClasFr & "'and matiere_francais =" & Matier & "")
    fMatiereDejaEnregistree = (nbElement <> 0)
     
    Exit Function
    MOROBABOUMAR:
        MsgBox "Erreur n° " & err.Number & vbCrLf & err.Description, vbCritical + vbOKOnly, "Une erreur est survenue"
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub matiere_francais_BeforeUpdate(Cancel As Integer)
    If fMatiereDejaEnregistree(Me.Identif_EtablisFR, Me.ANNEE_SCOL, Me.classe_francais, Me.NumCompoMCFr, Me.matiere_francais) = True Then
        MsgBox "ATTENTION !!" & vbCrLf & "Cette Matière est déjà enregistrée pour la" & Me.NumCompoMCFr.Column(1), vbCritical + vbOKOnly, "Risque de Doublons"
       'Me.matiere_francais = ""
        'Me.NumCompoMCFr = ""
        'Me.ANNEE_SCOL = ""
        'Me.classe_francais = ""
         DoCmd.RunSQL "delete * from MATIERE_CLASSE_FR_Req where NumEnregistrementMatiereFR = " & Me.NumEnregistrementMatiereFR
     
     End If
    Mon objectif est de supprimer la ligne de doublon automtiquement grâce au code.

    Capture de messages d'erreurs:

    Nom : GESTION DES DOUBLONS DES MATIERES DE COMPOS 1.jpg
Affichages : 95
Taille : 256,7 Ko
    Nom : GESTION DES DOUBLONS DES MATIERES DE COMPOS 2.jpg
Affichages : 91
Taille : 103,2 Ko

    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
    :faq:

  2. #2
    Membre expérimenté
    Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 193
    Par défaut
    Dans quel evenement place t on le code de gestion de doublon suivant ?
    https://access.developpez.com/faq/?page=SQL#MsgErrDbl
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
    :faq:

  3. #3
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 309
    Par défaut
    Bonjour
    Vous n'indiquez pas dans quel form/sform vous rencontrez le problème
    Citation Envoyé par morobaboumar Voir le message
    Bonsoir membres du forum,
    J'ai écrit ce code afin d'éliminer automatiquement le doublon à partir d'un formulaire:

    Mon objectif est de supprimer la ligne de doublon automtiquement grâce au code.

    Cordialement.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP :weird:
    Merci de cliquer sur :plusser: si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur :resolu:

  4. #4
    Membre expérimenté
    Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 193
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Vous n'indiquez pas dans quel form/sform vous rencontrez le problème
    Sous-Formulaire: MATIERE_CLASSE_FRANCAIS_SOUSFORMULAIRE

    Nom : GESTION DES DOUBLONS DES MATIERES DE COMPOS 3.jpg
Affichages : 46
Taille : 428,6 Ko

    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
    :faq:

  5. #5
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 986
    Par défaut
    bonsoir,
    pour rappel, sur l'évènement BeforeUpdate (en français: AVANT mise à jour) l'enregistrement en cours n'est pas encore créé, donc une suppression de doublon est une absurdité et est impossible puisque la table est verrouillée pendant l'évènement en question, d'où probablement le message d'erreur d'exécution.
    Le message "Cette Matière est déjà enregistrée ..." est suffisant pour empêcher le risque de doublon et en ajoutant un Undo on annule la saisie en cours.

    Ou alors, le but est de supprimer l'enregistrement déjà existant, mais dans ce cas la demande est très mal formulée

  6. #6
    Membre expérimenté
    Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 193
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    pour rappel, sur l'évènement BeforeUpdate (en français: AVANT mise à jour) l'enregistrement en cours n'est pas encore créé, donc une suppression de doublon est une absurdité et est impossible puisque la table est verrouillée pendant l'évènement en question, d'où probablement le message d'erreur d'exécution.
    Le message "Cette Matière est déjà enregistrée ..." est suffisant pour empêcher le risque de doublon et en ajoutant un Undo on annule la saisie en cours.
    Ou alors, le but est de supprimer l'enregistrement déjà existant, mais dans ce cas la demande est très mal formulée
    Bonsoir tee_grandbois,
    Message compris. Je vais exécuter votre suggestion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub matiere_arabe_BeforeUpdate(Cancel As Integer)
     
    If fMatiereDejaEnregistreeAr(Me.Identif_Etablis, Me.ANNEE_SCOL, _
    Me.classe_arabe, Me.NumCompoMCAr, Me.matiere_arabe) = True Then
        MsgBox "ATTENTION !!" & vbCrLf & _
        "Cette Matière est déjà " & vbCrLf & "enregistrée pour la " & _
        Me.NumCompoMCAr.Column(1), vbCritical + vbOKOnly, _
        "Risque de Doublons"
       Undo
       End If
     
    End Sub

    Cordialement.
    Je ne Suis Pas un Expert en Programmation
    Le savoir est la lumière de l'esprit
    Le chemin de la réussite

    Les savants sont les héritiers de la science
    Qui cherche positivement trouve
    Tout ce qui brille n'est pas l'or ou diamant
    Mais l'or et le diamant se trouvent avec sagesse, intelligence et effort
    :faq:

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

Discussions similaires

  1. Suppression des doublons par une boucle dans une macro
    Par axamen dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2009, 10h37
  2. [Formulaire]Suppression automatique des doublons
    Par lionjpl dans le forum IHM
    Réponses: 3
    Dernier message: 25/03/2007, 10h41
  3. Suppression automatique des fichiers trop vieux
    Par HwRZxLc4 dans le forum Langage
    Réponses: 5
    Dernier message: 09/05/2006, 12h22
  4. suppression automatique des enregistrements
    Par abdou.sahraoui dans le forum Langage SQL
    Réponses: 4
    Dernier message: 02/08/2005, 14h45
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 18h19

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