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

VBA Access Discussion :

Comment faire pour éviter les doublons et le chevauchement de numéro durant une saisie [AC-2000]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 308
    Billets dans le blog
    15
    Par défaut Comment faire pour éviter les doublons et le chevauchement de numéro durant une saisie


    Je dispose d'une table tApproCartets servant à enregistrer mes entrées en stocks de carnets contenant chacun des tickets de carburant :

    Nom : Sans titre.png
Affichages : 357
Taille : 9,8 Ko

    Au fil du temps, les tickets contenus dans les carnets sont livrés en fonction des besoins, ce qui implique la création de la table tLivraisonTickets.

    Nom : Sans titre1.png
Affichages : 342
Taille : 6,9 Ko

    Sur la deuxième table, nous remarquons un chevauchement entre les numéros des tickets livrés sur le Bloc 2 notamment les tickets 13 et 14 . Cela veut dire qu'il y aura des doublons sur les numéros de tickets enregistrés comme des livraisons dans la base de données (ce qui est impossible dans la réalité).

    Ma question

    Pensez-vous qu'il y a un moyen de contrôler les numéros des tickets saisis au moment de la livraison pour un même bloc ; cela afin d'éviter les doublons et le chevauchement des numéros de tickets ?

    Les saisies sont effectuées via des formulaires.

    Merci d'avance pour vos avis et conseils avisés

    Cordialement,
    Malick
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour Malick,

    J'avais un peu de temps donc, je pense que ce code devrait faire l'affaire :
    Un module dans le formulaire pour la vérification :
    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 VerifierPresenceIntervalle(prticket As Variant)
    Dim db As DAO.Database
    Dim rstdetail As DAO.Recordset
    Dim strsql As String
    Set db = CurrentDb
    strsql = "SELECT tLivraisonTickets.[idCarnet_FK], Min(tLivraisonTickets.NumDebut) AS MinDebut," _
            & " Max(tLivraisonTickets.NumFin) AS MaxFin" _
            & " FROM tLivraisonTickets" _
            & " WHERE [idCarnet_FK]=" & Me.idCarnet_FK _
            & " GROUP BY tLivraisonTickets.[idCarnet_FK]"
    Set rstdetail = db.OpenRecordset(strsql, dbOpenSnapshot)
    With rstdetail
        If (prticket > ![MinDebut] And prticket < ![MaxFin]) Or prticket < ![MinDebut] Then
            MsgBox "Ticket déjà émis !"
            Me.Undo
        End If
    End With
    rstdetail.Close: Set rstdetail = Nothing
    db.Close: Set db = Nothing
    End Sub
    Appelé dans les évènements Avant mise à jour des 2 contrôles, avec une vérification pour le dernier numéro.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub NumDebut_BeforeUpdate(Cancel As Integer)
    VerifierPresenceIntervalle (Me.NumDebut)
    End Sub
    Private Sub NumFin_BeforeUpdate(Cancel As Integer)
    If Me.NumFin < Me.NumDebut Then
        MsgBox "le dernier numéro ne peut être inférieur au premier !"
    End If
    VerifierPresenceIntervalle (Me.NumFin)
    End Sub
    Je n'ai pas mis de vérification des données envoyées, à adapter et rajouter je pense.

    Cordialement.

  3. #3
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 308
    Billets dans le blog
    15
    Par défaut
    Bonjour Madefemere,

    Merci beaucoup encore pour ta disponibilité et ton aide.

    Je vais essayer d'adapter ta proposition ; je te reviens pour t'informer de la réussite

    Cordialement
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  4. #4
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 308
    Billets dans le blog
    15
    Par défaut
    Si je comprends bien, ta proposition permet d'éviter le chevauchement des numéros saisis et les doublons ?

    Avec cela, c'est super.

    Je n'ai pas mis de vérification des données envoyées, à adapter et rajouter je pense.
    Je n'ai pas bien compris cette partie ?
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour,

    Si je comprends bien, ta proposition permet d'éviter le chevauchement des numéros saisis ?
    Oui !

    Je n'ai pas mis de vérification des données envoyées, à adapter et rajouter je pense.
    Je n'ai pas bien compris cette partie ?
    Le code ne vérifie pas la conformité des valeurs (saisies) dans la champ NumDebut et NumFin (autres que numérique) avant son exécution.
    Un simple IsNumeric ou Not IsNull au début je pense.

    Cordialement.

  6. #6
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 308
    Billets dans le blog
    15
    Par défaut
    Le code ne vérifie pas la conformité des valeurs (saisies) dans la champ NumDebut et NumFin (autres que numérique) avant son exécution.
    Un simple IsNumeric ou Not IsNull au début je pense.
    Ok je comprend maintenant ; je pense que cela ne posera pas de problème pour l'adaptation

    Sinon à quoi correspond la variable prticket? Elle n'a pas besoin d'être initialisée ?
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc..
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/07/2009, 11h20
  2. comment faire pour supprimer les doublons?
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/01/2009, 12h38
  3. comment faire pour éviter les scroller dans une page quelque soit la résolution
    Par ghou67 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 09/11/2007, 09h15
  4. [XsL/xpath]Comment faire pour éviter les doublons?
    Par BigBarbare dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/05/2007, 20h31
  5. Réponses: 2
    Dernier message: 13/11/2005, 18h03

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