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 :

Gestion de doublon dans un champ


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 65
    Points
    65
    Par défaut Gestion de doublon dans un champ

    Bonjour à tous,
    Problème : j'ai champ numérique indexé sans doublon et Nul interdit
    1. Suite à la mise à jour de celui-ci, je veux vérifier le sans doublon et afficher un message d'erreur pouvant permettre de sortir de mon formulaire.
    2. je veux pouvoir sortir de mon formulaire alors que mon champ nul et sans enregister.

    J'espère avoir été clair si quelqu'un peu me donner un coup de main vous seriez hyper sympa.
    Je fais des bases Access depuis 4 ans mais étant autodidacte et n'ayant que trés peu de connaissance en VBA je suis toujours à la recherche d'une bonne âme voulant partager son savoir.
    En revanche je peux aider les débutants sur Access tant que ça reste du développement par le logiciel.

    Merci d'avance

    Erick

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Août 2006
    Messages : 38
    Points : 36
    Points
    36
    Par défaut
    Au lieu de saisir directement dans ton formulaire les champs (provenance table ou requete) tu peux les saisir dans des champs independants et a l aide d une requete sur un sous formulaire verifier l existence ou pas de tes données et par l'intermediaire d un bouton de commande annuler ta saisie (si existe) ou tranferer tes champs independants dans la table par l intermediaire d une requete ajout

    Thierry

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    Citation Envoyé par Erick Argouet

    Bonjour à tous,
    Problème : j'ai champ numérique indexé sans doublon et Nul interdit
    1. Suite à la mise à jour de celui-ci, je veux vérifier le sans doublon et afficher un message d'erreur pouvant permettre de sortir de mon formulaire.
    2. je veux pouvoir sortir de mon formulaire alors que mon champ nul et sans enregister.
    Si tu as mis les protections que tu dis, Access fait cela pour toi sans une seule ligne de prog ... avec un message assez laid. Une fois le message confirmer, il suffit de faire Escape et Access revient à la valeur d'origine et te permet de sortir en appuyant sur Esc.

    Si tu veux faire cela de façon plus civilisée, il faut mettre du code dans l'événement Sur Erreur (On Error) du formulaire.

    Ex de code faisant cela pour les doublons.

    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
     
    Public Sub AfficherMessErrStandardForm(prmDataErr As Integer, prmResponse As Integer, Optional prmMessErr As String = "")
        Dim Mess As String
        If prmMessErr <> "" Then
            Mess = prmMessErr
        End If
     
        Select Case prmDataErr
            Case ERR_DOUBLON
                If prmMessErr <> "" Then
                        Mess = prmMessErr
                    Else
                        Mess = "Vous avez essayer d'entrer deux fois le même élément et le programme ne vous y autorise pas."
                        Mess = Mess & vbNewLine & vbNewLine & "Merci de corriger."
                End If
                Call MsgBox(Mess, vbInformation, "Erreur")
     
            Case Else
                Mess = "L'erreur " & prmDataErr & ", " & AccessError(prmDataErr) & " s'est produite."
                Mess = Mess & vbNewLine & vbNewLine & "Merci de faire une copie d'écran et de prévenir le support technique."
                Call MsgBox(Mess, vbExclamation, "Erreur")
     
        End Select
     
        prmResponse = acDataErrContinue
     
    End Sub

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 65
    Points
    65
    Par défaut J'avance grace à toi
    Bien super ton code fonction de manière plus civilisé(j'aime bien le terme) mais car il y a en mais :
    1. Il m'informe bien de l'anomalie mais ne reste pas sur le champ à modifier.
    2. Il détecte cette anomalie sur les entrées (bonne ou mauvaise)


    Si tu peux poffiner tu serais hyper top.
    Merci d'avance

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    Citation Envoyé par Erick Argouet
    1. Il m'informe bien de l'anomalie mais ne reste pas sur le champ à modifier.
    Hum, Access ne détecte les doublons que quand il va enregistrer les données donc il n'y a probablement plus de controle actif et même si il y en avait un ce serait le dernier.

    Par contre toi tu dois savoir quel champs provoque l'erreur tu pourrais surement rajouter un me.monChampIndexe.setFocus.

    2. Il détecte cette anomalie sur les entrées (bonne ou mauvaise)
    Je ne comprends pas ce que tu entends par les entrées bonnes ou mauvaises.

    A+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 65
    Points
    65
    Par défaut Entrée Bonne ou Mauvaise
    Bonjour,
    Donc je vais être plus précis(désolé)
    Si j'entre une donnée qui est un doublon = Ok le message fonctionne.
    Si j'entre nouvelle donnée qui n'est pas un doublon = Le message fonction aussi ?????

    Ai-je été plus clair ?

    Merci je test ce que tu m'as donné et je tiens au courant.

    Encore merci pour ton aide.

    @+

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Avec un test sur After Update de ton champ tu peut gérer le contrôle

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub LeChamp_AfterUpdate()
    Dim mbd As Database, DRech As Recordset
     
    Set mbd = CurrentDb()
    Set DRechDecharge = mbd.OpenRecordset("Select LeChamp From TaTable Where (LeChamp= " & Me.LeChamp & ")")
     
        If Not DRech.EOF Then         
            MsgBox "Valeur déjà présente. Saisie annulée."
            Me.LeChamp = 0
            Me.LeChamp.SetFocus
        End If
    End Sub

Discussions similaires

  1. [Toutes versions] Gestion des doublons dans une liste technique.
    Par Lorenzogazier dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/04/2009, 22h45
  2. Interdire la saisie de doublons dans un champ
    Par alain063 dans le forum IHM
    Réponses: 3
    Dernier message: 01/12/2008, 18h29
  3. [VBA-A] Doublons dans un champs
    Par dev81 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/05/2007, 09h42
  4. notification de doublon dans un champ texte
    Par Guizbizet dans le forum Access
    Réponses: 16
    Dernier message: 11/01/2007, 16h01

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