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 :

Formulaire d'ajouts Multiples [AC-2013]


Sujet :

IHM

  1. #1
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut Formulaire d'ajouts Multiples
    Bonjour,

    Je souhaite créer un formulaire d’ajout qui me permet d’ajouter plusieurs enregistrements au même temps, je vous explique :
    J’ai 3 tables, « Clients », « Produits » et « ClientsProduits »
    Je veux une zone de liste dans laquelle en choisi une seule fois le client, choisir grâce à des cases à cocher les produits et que le tous soit enregistrer dans ma table « ClientProduits » sous forme de plusieurs lignes par exemple :
    Clients Produits
    Jean 132456
    Jean 698523
    Jean 125469
    Jean 023695

    J’espère avoir bien expliqué et Merci à tous

  2. #2
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 131
    Points : 151
    Points
    151
    Par défaut
    Bonsoir,

    Une piste c'est de creer un sous-formulaire qui est lié à table clientsproduits et dans ce sous formulaire tu creer une liste déroulante qui te permet de sélectionner ton produit

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je veux une zone de liste dans laquelle en choisi une seule fois le client, choisir grâce à des cases à cocher les produits et que le tous soit enregistrer dans ma table « ClientProduits » sous forme de plusieurs lignes
    Access n'offre pas d'outil en standard pour faire cela et si ce n'est pas absolument indispensable, je te recommande de suivre la suggestion de volsan où ton utilisateur pourra choisir un produit à la fois.

    Si tu y tiens vraiment (ou ton client), il faut :
    • Ajouter un champ "Oui/Non" dans ta table ClientsProduits
    • Faire du code VBA pour ajouter à ta commande tous les produits (non coché).
    • Une fois la saisie confirmée, faire du code VBA (qui pourrait appeler une requête de suppression) pour supprimer les produits non cochés.


    Une autre possibilité est d'utiliser un formulaire déconnecté qui te présente la liste des produits puis de faire du code pour ajouter les infos du formulaire déconnecté dans la table.
    Il y a un bon article ici qui explique comment procéder.
    Create In-Memory ADO Recordsets
    https://www.databasejournal.com/feat...Recordsets.htm

    Enfin si tu ne tiens pas absolument aux cases à cocher, tu peux regarder du côté de contrôle Liste à sélection multiple (les éléments choisis sont affichés en blanc sur noir) et faire du code pour copier la sélection dans la table.
    Ça évite d'avoir à utiliser le recordset déconnecté.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    Il y a une solution qui consiste à utiliser un sous-formulaire en mode continu qui simule un groupe d'option, une requête pour alimenter ce sous-formulaire et du code vba pour effectuer les modifications sur la table de jointure ClientsProduits.

  5. #5
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Bonjour ilank,

    serait-il possible de me présenter un exemple s'il vous plait, je comprend beaucoup mieux grâce aux exemples

    Merci d'avance

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    une autre possibilité pour les produits: on peut utiliser une zone liste avec l'option Sélection multiple à Simple qui permet de sélectionner plusieurs éléments:

    Nom : _MultiSelect.JPG
Affichages : 167
Taille : 41,7 Ko

    une base exemple en pièce jointe:
    bClientsProduits.zip
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Bonjour tee_grandbois,

    Vraiment merci pour votre réponse, votre exemple marche parfaitement comme je veux.

    mais sur ma base de données, quand je clique sur enregistrer et j'appuie sur "oui", j'ai un message d'erreur qui apparaît, voir ci-dessous
    Nom : Capture.JPG
Affichages : 140
Taille : 21,0 Ko

    Merci d'avance

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    ma base n'est qu'un exemple, il faut l'adapter à la tienne. De plus, je me suis basé sur l'information que tu as donné (3 tables et pas de table Fournisseurs).
    Il faudrait que l'on voie ton modèle complet de données
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Re-bonjour,

    C'est bon j'ai adapté votre exemple à mon fichier et ça marche, encore une fois Merci.

  10. #10
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Re-bonjour encore une fois ,

    sur ma table "ClientsProduits" j'ai mis les champs "IdClients" et "IdProduits" obligatoires,
    lorsque je choisi que les produits dans ma zone de liste de mon formulaire "SaisieCommande" j'ai un message d'erreur qui apparait voir ci dessous
    Nom : Capture.JPG
Affichages : 123
Taille : 20,2 Ko

    Je souhaite que cette fenêtre n’apparaît plus ou que les boutons "aide" et "débogage" soit supprimer.
    je met le fichier en pièce jointe

    Merci pour votre aide precieuse
    Fichiers attachés Fichiers attachés

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour
    ajoute ces instructions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        If IsNull(Me.LstClients) Then
            MsgBox "Le client n'a pas été sélectionné.", vbCritical
            Me.LstClients.SetFocus
        Exit Sub
    juste après celles-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With Me.LstProduits
        If .ItemsSelected.Count = 0 Then Exit Sub
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Re,
    J'ai mis le code mais parcontre ca me met l'erreur ci dessous :
    Nom : Capture.JPG
Affichages : 116
Taille : 18,4 Ko
    je sais pas où mettre le "With" demandé

    Merci bien

  13. #13
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Quelqu'un a la solution ?
    j'ai cru avoir réussi mais pas du tout

  14. #14
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Je Met le fichier en pièce jointe si ça peut vous aider ?

    Ci ca peut vous aider aussi je vous met le code qui permet de afficher le msgbox Le client n'est pas choisi mais les nouvelle données ne sont pas enregistrer
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Private Sub BtnEnregister_Click()
    Dim stMsg As String
    Dim Itm As Variant
    Dim oDb As Database
    Dim oRS As Recordset
     
     
    With Me.LstProduits
        If .ItemsSelected.Count = 0 Then Exit Sub
    With Me.LstClients
            If IsNull(Me.LstClients) Then
            MsgBox "Le client n'a pas été sélectionné.", vbCritical
            Me.LstClients.SetFocus
        Exit Sub
            stMsg = "Voulez-vous insérer les produits suivants:" & vbCrLf
            For Each Itm In .ItemsSelected
                stMsg = stMsg & .Column(1, Itm) & vbCrLf
            Next Itm
     
    ' Confirmer l'insertion des produits
    stMsg = stMsg & "?"
    If MsgBox(stMsg, vbQuestion + vbYesNo) = vbNo Then Exit Sub
     
    Set oDb = CurrentDb
    Set oRS = oDb.OpenRecordset("tbl_ClientsProduits", dbOpenDynaset)
     
    ' ajout des éléments sélectionnés
    For Each Itm In .ItemsSelected
            oRS.AddNew
            oRS.Fields("IdProduit") = .ItemData(Itm)
            oRS.Fields("IdClient") = Me.LstClients
            oRS.Update
            Next Itm
     
    ' enlever la sélection
    .RowSource = .RowSource
     
    ' affichage des éléments saisis
    Me.Refresh
    End If
    End With
    End With
    End Sub
    Fichiers attachés Fichiers attachés

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Code corrigé:
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Sub BtnEnregister_Click()
    Dim stMsg As String
    Dim Itm As Variant
    Dim oDb As Database
    Dim oRS As Recordset
     
    With Me.LstProduits
        ' contrôle saisie produits
        If .ItemsSelected.Count = 0 Then Exit Sub
        ' contrôle saisie client
        If IsNull(Me.LstClients) Then
            MsgBox "Le client n'a pas été sélectionné.", vbCritical
            Me.LstClients.SetFocus
            Exit Sub
        End If
     
        stMsg = "Voulez-vous insérer les produits suivants:" & vbCrLf
        For Each Itm In .ItemsSelected
            stMsg = stMsg & .Column(1, Itm) & vbCrLf
        Next Itm
     
    ' Confirmer l'insertion des produits
        stMsg = stMsg & "?"
        If MsgBox(stMsg, vbQuestion + vbYesNo) = vbNo Then Exit Sub
     
        Set oDb = CurrentDb
        Set oRS = oDb.OpenRecordset("tbl_ClientsProduits", dbOpenDynaset)
     
    ' ajout des éléments sélectionnés
        For Each Itm In .ItemsSelected
            oRS.AddNew
            oRS.Fields("IdProduit") = .ItemData(Itm)
            oRS.Fields("IdClient") = Me.LstClients
            oRS.Update
        Next Itm
     
    ' enlever la sélection
        .RowSource = .RowSource
     
    ' affichage des éléments saisis
        Me.Refresh
    End With
     
    End Sub
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Yeeep, Merciiii tee_grandbois

    J'apprend de plus en plus grâce à vous et à ce forum

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    super,
    n'oublie pas de mettre la discussion comme
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Membre du Club
    Homme Profil pro
    France
    Inscrit en
    Novembre 2018
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : France

    Informations forums :
    Inscription : Novembre 2018
    Messages : 135
    Points : 55
    Points
    55
    Par défaut
    Re,

    serait-il possible que vous penchiez sur une autre discussion que j'ai créer, lien ci dessous
    https://www.developpez.net/forums/d1...te-deroulante/

    Merci d'avance

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

Discussions similaires

  1. Formulaire d'ajout d'entité multiple
    Par trollmdr dans le forum Symfony
    Réponses: 2
    Dernier message: 07/09/2017, 12h28
  2. [2.x] [Form] Formulaire dynamique et ajout multiple
    Par KLeMiX dans le forum Symfony
    Réponses: 3
    Dernier message: 26/03/2013, 14h45
  3. ouvrerture formulaire d'ajout de données
    Par toinekikil dans le forum Access
    Réponses: 5
    Dernier message: 10/08/2006, 14h58
  4. formulaire avec selection multiple
    Par regis94 dans le forum Access
    Réponses: 2
    Dernier message: 09/08/2006, 15h48
  5. Problème d'ajout multiples dans un BDD Access
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/05/2004, 13h34

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