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

Modélisation Discussion :

Comment relier ces 2 tables pour que l'une complète l'autre suivant une info (date) saisie ?


Sujet :

Modélisation

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 8
    Points
    8
    Par défaut Comment relier ces 2 tables pour que l'une complète l'autre suivant une info (date) saisie ?
    Bonjour, toujours aussi débutant...

    soient les deux tables suivantes :

    t_calendrier
    -----------
    ID_jour : NuméroAuto
    Periode : Numérique
    Semaine :Numérique
    Date : Date/Heure

    Cette table a été remplie ainsi : de 0 à 141 des jours travaillés d'une année, chaque jour appartenant à 1 période (allant de 1 à 5) et à 1 semaine (allant de 1 à 8)...

    t_saisiedate
    ------------
    ID_jour : NuméroAuto
    Saisir_date : Date/Heure / délimité aux bornes de de ma tables t_calendrier...
    Periode : Numérique <= je voudrais que ces champs soient complétés directement
    Semaine : Numérique <= .... en fonction de la date entrée plus haut


    Est-ce que c'est possible de remplir automatiquement ma table t_saisie avec les informations retrouvées dans t_calendrier ?

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    bperrobar bonsoir,

    A partir de l'exemple fourni j'ai crée dans la base exemple un formulaire baptisé F_Saisie_Date qui va te permettre de comprendre les explications suivantes :

    Donc ce formulaire contient un champ de saisie (ta date) ainsi que l'affichage de la période et de la semaine (j'ai créé une entrée au 23/02/2014 dans t_Calendrier). Sur la propriété événement <Après Mise à jour j'ai inséré le code suivant>
    '
    Afin de contrôler l'existence d'une date dans la table t_calendrier, j'ai donc constitué une requête R_Saisie_Date qui va nous permettre de contrôler cette date dans la table T_Calendrier

    Afin de contrôler l'existence d'une date dans la table t_saisie, j'ai donc constitué une requête R_Saisie_Date_Controle qui va nous permettre de contrôler cette date dans la table T_Saisie et éviter l'insertion de doublons

    et deux requêtes une insertion et une de mise à jour, dépendante de la valeur renvoyée par la requête R_Saisie_Date_Controle (que tu trouveras dans l'exemple) : Insert_t_saisie et update_t_saisie

    Sur événement après mise à jour de la date le code suivant :
    Ce code valide l'entrée dans calendrier, et affiche semaine et période. Il est à noter que le bouton est activé à ce moment

    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
    Private Sub Date_Ref_AfterUpdate()
    '
    ' PArt 1 - Controle existence d'une date dans T-Saisie et mise à jour du N° de semaine et periode
    '
    If DCount("[Date_T]", "R_SaisieDate", "") Then ' Véridie si une entrée existe pour cette date dans t_Saisie
        Me.Per_Ref = DLookup("[Periode]", "R_SaisieDate", "")
        Me.Sem_Ref = DLookup("[Semaine]", "R_SaisieDate", "")
    Else
        MsgBox "Pas de date renseignée dans t_Saisie"
        Exit Sub
    End If
    '
    If DCount("[Saisir_date]", "R_SaisieDate_Controle", "") Then
        Me.Btn_Calculer.Caption = "Mettre à Jour"
        Me.Btn_Calculer.Enabled = True
    Else
        Me.Btn_Calculer.Caption = "Ajouter"
        Me.Btn_Calculer.Enabled = True
    End If
    '
    End Sub

    Sur événement sur clic du bouton :
    Ce code détermine si il s'agit dune mise à jour ou d'une insertion et réinitialise les valeurs à l'issue du traitement

    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
    Private Sub Btn_Calculer_Click()
    If DCount("[Saisir_date]", "R_SaisieDate_Controle", "") Then
        CurrentDb.Execute Update_T_Saisie, dbFailOnError
    Else
        CurrentDb.Execute Insert_t_saisie, dbFailOnError
    End If
    '
    ' Reinitialisation des champs
    '
    Me.Date_Ref = Null
    Me.Per_Ref = Null
    Me.Sem_Ref = Null
    Me.Btn_Calculer.Enabled = False
    '
    End Sub
    la base ici : avec capture : bperrobar.zip

    Bonne continuation

    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 16
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup de ton aide.
    J'ai copié-collé les dates de mon calendrier qui venaient d'Excel et ta solution fonctionne au top!
    Un grand merci.

    Un temps je me demandais si ma question n'était pas un cas de redondance ?

    Je continue mes autres recherches de ce pas.

  4. #4
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    bperrobar,

    Tu penseras à mettre <Résolu> sur le sujet si la solution est conforme à tes attentes.

    Dans les recherches, les membres peuvent filtrer leurs recherches sur ce tag et ainsi maximiser leurs chances de trouver réponse à leurs problèmes.

    Merci d'avance

    Bon courage pour la suite de ton projet... Nous sommes là pour t'aider si nécessaire

    JimBoLion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

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

Discussions similaires

  1. [XL-2007] Comment adapter ces 2 codes pour obtenir le même résultat
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/12/2013, 13h40
  2. Réponses: 3
    Dernier message: 02/06/2010, 07h48
  3. [XL-2007] Comment faire pour que 2010-01-01 ne soit pas converti en date
    Par pierrot10 dans le forum Excel
    Réponses: 4
    Dernier message: 09/04/2010, 14h46
  4. Comment se passer des <table> pour la mise en forme d'une page
    Par gael dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 12/11/2008, 20h06
  5. Comment utiliser la meme table pour plusieurs formulaires
    Par pacodelareunion dans le forum Access
    Réponses: 5
    Dernier message: 26/10/2005, 15h17

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