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 :

Enregistrement d'une selection multiple d'une liste dans la BDD


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Janvier 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Passionné
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2024
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Enregistrement d'une selection multiple d'une liste dans la BDD
    Bonjour, tout d'abord je vous remercie de votre aide, voici ma demande:

    Dans l'ajout d'une nouvelle session, je souhaiterais l'enregistrement en BDD de chaque individu sélectionné (dans la propriété de la zone de liste id_individu, la sélection multiple est activée).

    Merci

    Nom : CaptureFormulaire.PNG
Affichages : 99
Taille : 21,7 Ko
    Nom : CaptureBDD.PNG
Affichages : 92
Taille : 33,1 Ko

  2. #2
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Vince143,

    Votre modèle de données n'est pas optimum. Si comme je comprend la situation il y a une formation qui peut être donnée dans une ou plusieurs sessions selon la date et l'emplacement et que chaque session (toujours selon la date et l'emplacement) peut avoir un ou plusieurs individus qui participent à cette session, il faudrait ajouter une table "Session/Individu" dans votre application. Vous auriez alors la table FORMATION idem à la votre, la table SESSION n'aurait plus de "id_individu" et une nouvelle table qui elle aurait le "id_session" et le "id_individu" en relation avec la table SESSION et la table INDIVIDU. Cela dit pour répondre à votre question, pour parcourir les éléments sélectionnés dans une zone de liste il faut procéder de la façon suivante:
    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
    Private Sub Insérer()
    On Error GoTo gestion_err:
     
    Dim vaIndividu                      As Variant
     
        If Not IsNull(id_individu.ItemsSelected) Then
            For Each vaIndividu In id_individu.ItemsSelected
                Debug.Print id_individu.ItemData(vaIndividu)
            Next
        End If
     
    Sortie:
    Exit Sub
    gestion_err:
        MsgBox Err.Description & Chr(13) & "Erreur numéro: " & Err.Number & Chr(13) & "Dans la Sub Insérer"
        Resume Sortie
    End Sub
    Vous n'avez qu'a remplacé le "Debug.Print" par le code que vous désirez.

    Bonne journée

  3. #3
    Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Janvier 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Passionné
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2024
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour Robert1957, veuillez m'excuser pour le temps de réponse, mais je peux y consacrer du temps qu'en fin de semaine.

    J'ai rectifié la BDD comme vous l'avez suggérée.

    D'autre part, j'ai du mal à compléter le code proposé.

    Encore une fois merci de votre aide et de vos explications.

    Ici le projet : OSP.rar

    Nom : CaptureBDD rectifiée.PNG
Affichages : 49
Taille : 23,7 Ko

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour Vince143,

    Voici la Bd, j'ai modifié votre formulaire d'inscription/session.

    Le code suivant parcours les lignes sélectionnées du "individu_id" pour les inscrire dans la table "Session_Individu" et ensuite mettre à jour le sous-formulaire "Ajout_Session_Individu_SF".
    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
    29
    30
    31
    32
    Option Compare Database
    Option Explicit
     
    Private Sub Ajout_Session_Individu_Click()
    On Error GoTo gestion_err:
     
    Dim db                          As DAO.Database
    Dim rst                         As DAO.Recordset
    Dim vaIndividu                  As Variant
     
        If Not IsNull(individu_id.ItemsSelected) Then
            Set db = CurrentDb
            Set rst = db.OpenRecordset("SELECT Session_Individu.* FROM Session_Individu;", 2, 512)
            For Each vaIndividu In individu_id.ItemsSelected
                rst.AddNew
                    rst("session_id") = Me.id_session
                    rst("individu_id") = individu_id.ItemData(vaIndividu)
                rst.Update
            Next
        End If
        Me.Ajout_Session_Individu_SF.Requery
     
    Sortie:
    On Error Resume Next
    rst.Close
    Set rst = Nothing
    Set db = Nothing
    Exit Sub
    gestion_err:
        MsgBox Err.Description & Chr(13) & "Erreur numéro: " & Err.Number & Chr(13) & "Dans la Sub Insérer"
        Resume Sortie
    End Sub
    Vous remarquerez que j'ai ajouté en début de module les instructions
    "Option Compare Database"
    "Option Explicit"
    Vous devriez les inscrire par défaut dans tous les modules.
    Une autre suggestion est de garder une façon uniforme pour les noms des objets de votre base. Exemple on retrouve: "individu_id" et "id_individu".

    Bonne journée
    Fichiers attachés Fichiers attachés
    • Type de fichier : zip OSP.zip (121,8 Ko, 34 affichages)

  5. #5
    Candidat au Club
    Homme Profil pro
    Passionné
    Inscrit en
    Janvier 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Passionné
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2024
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonsoir, Robert1957;
    Je vous remercie sincèrement de votre soutien. Je vais appliquer vos conseils.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/12/2015, 18h31
  2. Enregistrement d'une dataTable dans ma BDD
    Par pools dans le forum Windows Forms
    Réponses: 0
    Dernier message: 28/05/2009, 21h15
  3. Comptage d'enregistrements d'une liste
    Par Virgile59 dans le forum IHM
    Réponses: 6
    Dernier message: 23/01/2006, 10h42
  4. Réponses: 29
    Dernier message: 03/11/2005, 10h37
  5. Réponses: 2
    Dernier message: 16/10/2004, 14h33

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