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

IHM Discussion :

Clefs primaire en format aa/sem/numéro


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Par défaut Clefs primaire en format aa/sem/numéro
    Bonsoir,

    Est-ce que quelqu'un peut me dire si c'est possible de creer un clefs primaire dans le format annee,sem, numéro (donc 0904001 pe)?

    Et si oui, comment si prendre? Est-ce qu'il y a un tutoriel la dessus?

    Merci pour vos réponses.

    Hans

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Oui, on peut utiliser ce qu'on veut comme clé primaire, même un numéro de téléphone.
    Le principe n'est pas tant le contenu, mais le fait qu'il n'y soit qu'une seule fois.

    Pour ton numéro, tu peux toujours faire une fonction, mais ce ne ser pas un nombre mais une chaîne.

    Dans la FAQ, il y a des exemples.

    Pour te donner une idée, tu vas devoir extraire l'année, la semaine et faire une comparaison avec les données de la date courante.

    Jette un oeil sur les fonctions Date
    http://mhubiche.developpez.com/vba/f...ions/datetime/
    Ensuite, tu va devoir récupérer les derniers caractères de ta chaîne pour les transformer en nombre et l'incrémenter.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Par défaut
    Merci pour ta reponse.

    Je vais me documenter et me mettre au boulot.

    H

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Par défaut
    ok, j'ai concocter quelque chose.

    Voici mon code. Ceci fonctionne. Je ne sais pas si c'est très élegant ou si il y a des moyen de racourcir le code, mais bon, je suis auto-didact et je fais ce que peux.

    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
    Private Sub Form_Load()
      DoCmd.GoToRecord , , acNewRec
     
        Dim Sleutelnummer As String
        Dim Jaarkort As String
        Dim Volgnummer As String
        Dim Week As String
     
        Jaar = DatePart("yyyy", Date)
        Jaarkort = Right(Jaar, 2)
     
        Week = DatePart("ww", Date)
        If Week <= 10 Then
        Week = "0" & Week
        End If
     
     
    Volgnummer = DMax("[NumSeeben]", "tblMachines")
    Volgnummer = Right(Volgnummer, 3)
    Volgnummer = "00" & Volgnummer + 1
     
    Sleutelnummer = Jaarkort & Week & Volgnummer
     
    Me.NumSeeben = Sleutelnummer
     
    Me.Marque.SetFocus
     
    End Sub
    Maintenant j'aimerais encore savoir, pour que ça soit parfait, si'il y a moyen de laisser le numéro (dernière trois chiffres) recommencer à 001 à chaque fois qu'on change la semaine.

    Donc semaine 07 se termine pe avec 0907053 et semaine 08 commence avec 0908001.

    Je vous remercie pour vos remarques.

    Hans

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    On a déplacé Remouchamps vers le Nord.
    Ongelofelijk.

    Oui, Tu as fait la partie la plus simple, récupérer les morceaux de date.

    Mais cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Volgnummer = "00" & Volgnummer + 1
    va te poser des problèmes.
    Si tu as 10 ou 100, tu vas obtenir 0010 et 00100, ce qui te fait 4 ou 5 positions.
    Sachant que tu as un nombre, tu peux utiliser la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(VolgNummer , "000")
    Il faut maintenant récupérer la dernière valeur de la table.
    Une fonction DMAx devrait le faire.
    Il suffit de comparer la semaine en cours à celle du dernier enregistrement.

    Maintenant, le tout est de savoir si on change de semaine le 1 janvier, auquel cas tu auras tout.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 312
    Par défaut
    Bonsoir Heureux-oli,

    Mais oui, il y a des Hollandais partout

    Je travail déjà depuis 15 ans pour des entreprises en Wallonie, mais, mais mais.

    Merci pour l'indice sur le format, j'ai chipoté un petit peu mais ceci fonctionne maintenant très bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Volgstring = DMax("[NumSeeben]", "tblMachines")
    Volgstring = Right(Volgstring, 3)
     
    Volgstring = format(Volgstring + 1, "000")
     
    Sleutelnummer = Jaarkort & Week & Volgstring
     
    Me.NumSeeben = Sleutelnummer
    Concernant la comparaison de la semain encours avec la semaine encodé, tu peut aussi me donner un indice comment me prendre?
    Merci d'avance

    Hans

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

Discussions similaires

  1. Générer une clef primaire aleatoire?
    Par 12_darte_12 dans le forum Administration
    Réponses: 4
    Dernier message: 18/07/2005, 18h10
  2. Clef primaire en nvarchar
    Par Mouse dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/04/2005, 15h50
  3. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 21h06
  4. [VB.NET] [ADO.NET] Clef primaire auto incrémenté
    Par Guld dans le forum Accès aux données
    Réponses: 4
    Dernier message: 25/09/2004, 20h46
  5. récupérer la clef primaire d'une table
    Par orionis69 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/02/2004, 13h00

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