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 :

Sélectionner des enregistrements côté clé primaire et les ajouter côté clé étrangère [AC-2019]


Sujet :

Access

  1. #1
    Membre expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 479
    Points : 3 007
    Points
    3 007
    Par défaut Sélectionner des enregistrements côté clé primaire et les ajouter côté clé étrangère
    Bonjour

    J'ai bien fait des recherches sur DVP ou le Net, mais je n'ai pas trouvé mon bonheur. Il faut dire que j'ai un peu de mal à l'expliquer.

    Tout d'abord, voici mes relations :
    Nom : Relations.png
Affichages : 123
Taille : 20,6 Ko


    Grâce à un formulaire, je sais ajouter dans la TPlanning autant de lignes pour UNE personne dans la TPersonnes qu'il y a de dates entre des dates choisies dans mon formulaire, de jours de semaine choisis et de modèle d'heures de début et de fin.

    Mais je vais avoir des dizaines de personnes.
    Je cherche donc à ajouter plusieurs personnes en même temps (suivant les mêmes dates, même site, même modèle d'heures).

    Je voudrais pour ce faire, pouvoir sélectionner les personnes (issues de la TPersonnes) qui m'intéressent dans mon formulaire et les ajouter dans la TPlanning.

    Je ne vois pas comment arriver à les sélectionner dans un formulaire pour ensuite leur appliquer le traitement désiré.

    Je passe peut-être à côté d'une solution évidente, mais là, je ne la trouve pas.

    Pour information : les tables sont toutes liées et il s'agit d'un environnement multi-utilisateurs.

    Merci d'avance à qui pourra m'apporter la lumière.

    Bonne soirée

    Pierre Dumas

  2. #2
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Salut
    Une solution (VBA) parmi tant d'autres avec lstbox, combobox, txtbox indépendants.
    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 btnAjout_Click()
    If Me.lstPersonnes.ItemsSelected.Count > 0 _
        And Not IsNull(Me.cboSites) _
        And Not IsNull(Me.txtDatedeb) _
        And Not IsNull(Me.txtHeuredeb) _
        And Not IsNull(Me.txtHeurefin) Then
     
        For i = 0 To Me.lstPersonnes.ListCount - 1
            If Me.lstPersonnes.Selected(i) = True Then
                CurrentDb.Execute "INSERT INTO TPlanning (idPersonnes_fk, idSites_fk, datedeb, heuredeb, heurefin)" _
                    & " VALUES(" & Me.lstPersonnes.ItemData(i) & ", " & cboSites.Column(0) & ", #" & Me.txtDatedeb & "#, #" & Me.txtHeuredeb & "#, #" & Me.txtHeurefin & "#)", dbFailOnError
            End If
        Next i
    End If
    End Sub
    Images attachées Images attachées  

  3. #3
    Membre expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 479
    Points : 3 007
    Points
    3 007
    Par défaut
    Merci hyperion13

    Cette solution est intéressante et elle a le mérite de pouvoir ainsi permettre de remplir aussi la table TPlanningDetails.

    Est-ce qu'il pourrait y avoir une solution sans VBA à base de requête(s) ?

    Bonne journée

    Pierre Dumas

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 371
    Points : 19 777
    Points
    19 777
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Vous dites :

    Mais je vais avoir des dizaines de personnes.
    Je cherche donc à ajouter plusieurs personnes en même temps (suivant les mêmes dates, même site, même modèle d'heures).
    Si je comprends bien les dates/heures/sites se répètent ?

    Personnellement, pour éviter de répéter à chaque fois la date, le site, et l'heure de début et de fin pour chacune des personnes,
    j'aurais tendance à placer les données de date/heure/site dans une seule table planning :

    TPlanning(IdPlanning, IdSite, DateDeb, HeureDeb, HeureFin)

    Et les identifiants des personnes dans une autre table :

    TPlanningPersonne(IdPlanning, IdPersonne, ...)

    Ou dans la table TDetailPlanning, mais en fait j'ignore ce qu'elle contient déjà .

    C'est une idée..

    Cdlt

  5. #5
    Membre expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 479
    Points : 3 007
    Points
    3 007
    Par défaut
    Merci User de faire des propositions

    Mais il ne me semble pas que ce soit possible. En effet, même si plusieurs personnes peuvent être sur le même site le même jour aux mêmes horaires, ce n'est pas le cas pour tous.

    Il peut y en avoir une dizaine sur un même créneau, et 3 qui arrivent une demi-heure plus tôt, et 2 encore un demi-heure plus tôt. Puis 5 1 heure plus tard, puis une dizaine 1 encore plus tard.,Plus tous les "électrons libres".

    C'est pour cette raison que je suis intéressé par le fait de sélectionner plusieurs personnes en même temps pour leur appliquer le même horaire.

    La TPlanning permet de donner les dates, horaires et sites de chaque personne.
    La TplanningDetail permet d'expliciter ce que feront chacune des personnes dans ces horaires.

    En espérant avoir éclairci les relations.

    Bonne journée et merci encore des propositions

    Pierre Dumas

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 371
    Points : 19 777
    Points
    19 777
    Billets dans le blog
    65
    Par défaut
    Dans ce cas j'essaierai plutôt ce modèle:

    TPlanning(IdPlanning, IdSite, DateDeb)

    Et les identifiants des personnes et les horaires dans la table détail :

    TPlanningDetail(idPlanningdet, idPlanning, idPersonne, heuredeb, heurefin, note,...)

  7. #7
    Membre expert
    Homme Profil pro
    Formateur et développeur bureautique
    Inscrit en
    Mars 2007
    Messages
    1 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur et développeur bureautique
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 479
    Points : 3 007
    Points
    3 007
    Par défaut
    Merci beaucoup à hyperion13 et à User pour cette discussion.

    Cela m'a bien aidé. J'ai inséré dans la boucle des valeurs de la liste une macro appelant une requête paramétrée. C'est nickel.

    Belle journée à chacun

    Pierre Dumas

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

Discussions similaires

  1. [AC-2010] Sélectionner des enregistrements d'une table et les copier dans Excel
    Par Quentin76120 dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/05/2018, 15h56
  2. Réponses: 3
    Dernier message: 30/06/2010, 11h13
  3. Réponses: 5
    Dernier message: 08/08/2009, 05h20
  4. Réponses: 12
    Dernier message: 06/08/2007, 07h46
  5. methode 4D pour sélectionner des enregistrements
    Par jejelafrite dans le forum 4D
    Réponses: 2
    Dernier message: 18/06/2007, 14h22

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