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 :

Clé primaire sur deux champs de types différents


Sujet :

Access

  1. #1
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Clé primaire sur deux champs de types différents
    Bonjour,

    Je souhaiterai créer une clé primaire sur deux champs de type différents.

    En effet, je suis en train de créer une base de donnée toute simple pour scanner les codes barre des couvertures qui vont être lavées.
    Je souhaite avoir un suivi des lavages par jour et heure.
    Les couvertures ne peuvent être scanné qu'une seul fois par jour (sinon doublon) mais je n'arrive pas à obtenir ce résultat car je n'arrive pas à mettre deux clés primaire à ma table T-Entrée. Enfin si j'arrive à les affecter dans la table mais c'est pour les relations entre table qu'il y a un bug !

    Description des tables :

    T-Couvertures
    COUV_CB (Clé primaire - Numérique) => Code barre
    COUV_ECO_Num (Text court) => Code établissement sous forme "1.1"

    T-Entree
    ENT_COUV_CB (Clé primaire - Numérique) => Code barre
    ENT_Date (Clé primaire - Date) => Date du Scan d'entrée
    ENT_Heure (Date) => Heure du scan entrée

    Avez-vous une idée ?
    Merci

  2. #2
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    En gros, je souhaite avoir :

    Code Barre Date scan Heure scan
    56555 16/06/2015 10.00
    56666 16/06/2015 8.00
    56666 17/06/2015 11.50
    56666 17/06/2015 11.55


    Dernier enregistrement non valide car il y a déjà eu un scan de ce code barre le 17/06/2015 !!!

  3. #3
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Normalement, tu te mets en mode création de ta table T_ENTREE.
    Tu sélectionnes les 2 champs ENT_COUV_CB et ENT_Date.
    Et tu cliques sur le bouton pour déterminer que ce sont des clés primaires.
    Et c'est bon.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  4. #4
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    C'est se que j'avais fait mais ça ne fonctionne pas !

    Quand je scan le code barre deux fois à la même date, il ne me gueule pas dessus pour me dire qu'il y a un doublon !

  5. #5
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Est-ce que le format de Date scan est bien Date, abrégé ?
    Sinon, effectivement, le doublon ne sera détecté que lors de la validation de l'enregistrement en cours, donc quand tu auras saisi toutes les informations.
    Donc, si tu veux que ça "gueule" tout de suite, il faut "forcer" la validation de l'enregistrement dès la saisie du Code-barre et de la date.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  6. #6
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    La date de scan est bien en date abrégé avec une valeur par défaut =maintenant()
    Lors du scan du code barre dans mon formulaire afin de rentrer les données, j'ai intégré un private sub sur le code barre après la MAJ qui est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ENT_COUV_CB = Left(Me.ENT_COUV_CB, Len(Me.ENT_COUV_CB) - 1)
    En gros ça retire le dernier chiffre du code barre (ean13) automatiquement.

    Comment je fait pour forcer la validation des saisie sur le code et la date en même temps afin qu'il recherche dans la base T-ENTREE les doublons.

    Merci

  7. #7
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Si tu utilises comme valeurs par défaut le résultat de Maintenant(), tu as des minutes et secondes qui trainent quelque part. Donc dans la même journée, tu pourrais scanner 2 fois la même couverture. Modifie cette valeur par défaut par Date().

    Pour forcer l'enregistrement, après ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ENT_COUV_CB = Left(Me.ENT_COUV_CB, Len(Me.ENT_COUV_CB) - 1)
    Rajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunCommand acCmdSaveRecord
    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  8. #8
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Modification des messages
    Nickel, ça fonctionne très bien !!!

    Par contre, sais-tu comment changer les messages suivant :
    - " Erreur d'éxécution 3022 - Modification non effectué : risque de doublons dans le champs .... DEBUGAGE - FIN"

    Lorsqu'on fait "fin"

    - "Modification non effectué : risque de doublon....." OK

    Remplacer ses deux messages par un message plus simple à comprendre pour les utilisateurs du type "Vous avez déjà scanné cette couverture aujourd'hui" + bouton "OK"


    Et par la même occasion, j'en profite pour demander :

    Comment faire pour que quand je scan, une information reste !!!
    Je m'explique, lorsque je scan une couverture, apparait en gros la destination de la couverture "ECO_Nom" (nom de l'école)

    Et actuellement, lorsque je scan, on a pas le temps de lire le nom de l'école car l'enregistrement se valide directement et tout s'efface!
    Donc pour que je puisse contrôler le nom de l'école, il faudrait que :
    lorsque je scan, l'enregistrement affiche le nom de l'école et reste à l'affichage !
    Mais que le scan soit quand même enregistré dans la base.


    Merci beaucoup ! ;-)

  9. #9
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Il faudrait "personnaliser" effectivement la gestion de l'erreur et annuler la saisie selon le cas avec un On error GoTo. Tu vas avoir un code du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    On Error GoTo label_error
    'tes codes
    '..........
    DoCmd.RunCommand acCmdSaveRecord
    '......
    'tes codes
    label_error:
    Select Case Err.Number
    Case 3022
        MsgBox " Vous avez saisi le même enregistrement, risque de doublon !"
        Me.Undo
    Case Else
        MsgBox "erreur : " & Err.Number & "---" & Err.Description
    End Select
    2- Pour ta deuxième question, il faut voir, comment tu arrives à afficher le nom de l'école et garder cette information dans le formulaire.
    Le plus simple serait de créer une liste déroulante à partir de la table T-Couvertures avec ses 2 champs dans ton formulaire.
    Mettre comme propriétés :
    - Source : ENT_COUV_CB
    - Nbre Colonnes : 2
    - Largeurs colonnes : 0;3 cm
    - Colonne liée : 1
    Cette liste va afficher le code de l'établissement.

    Si tu veux le nom de l'établissement, il faudrait modifier la requête source et rajouter la table qu donne les noms des établissements et à la place des codes des établissements, mettre leur nom.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  10. #10
    Membre à l'essai
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Février 2015
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    1 -

    C'est bon ça fonctionne !!!

    2 -
    Pour le nom de l'école, en faite, j'affiche le "nom de l'école" qui est associé au code barre.
    Une couverture est affecté à une seul école.
    Afin que les employés mettre la couverture dans le bon chariot de l'école, lorsque l'employé scan la couverture, le formulaire indique l'école de provenance !

    J'ai donc tout simplement ajouté dans mon formulaire le champs ECO_Nom mais le problème c'est que quand je scan, le nom de l'école apparait et disparait aussitôt le temps de l'enregistrement qui est très très rapide !!!

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

Discussions similaires

  1. [WD17] calcul sur deux champs de type date
    Par indefini dans le forum WinDev
    Réponses: 1
    Dernier message: 02/09/2014, 22h45
  2. Réponses: 7
    Dernier message: 07/12/2009, 22h08
  3. Réponses: 5
    Dernier message: 17/07/2008, 11h40
  4. Addition de deux champs de types différents
    Par marsya dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/05/2008, 17h57
  5. Clé primaire sur deux champs
    Par Tsuna78 dans le forum Access
    Réponses: 1
    Dernier message: 12/03/2007, 19h40

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