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 :

comment ajouter un élément dans une table selon la première zone de liste déroulante


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut [Access 2003] comment ajouter un élément dans une table selon la première zone de liste déroulante
    Bonjour tout le monde,

    Voici mon problème du jour,

    Dans un formulaire avec deux zone de liste déroulante "zl_marque" et zl_modele"
    "zl_modele" est dépendante de "zl_marque"

    Explication de ce que j'ai fait.

    "zl_marque" affiche "nom_marque"
    "zl_modele" affiche "nom_modele"

    Dans les propriétés de "zl_modele", onglet données, contenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT tbl_modele.num_modele, tbl_modele.nom_modele FROM tbl_modele WHERE tbl_modele.num_marque=forms!frm_mobile.zl_marque;
    dans les propriétés de "zl_marque", onglet événement, sur changement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub zl_marque_Change()
     
        Me.zl_modele.Requery
     
    End Sub
    Si dans "zl_marque" la marque n'existe pas elle s'incrémente dans la table "tbl_marque" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub zl_marque_NotInList(NewData As String, Response As Integer)
     
            If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des marque ?", _
            vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
            DoCmd.RunSQL "INSERT INTO tbl_marque ( nom_marque ) SELECT """ & NewData & """;"
            Response = acDataErrAdded
        Else
            Response = acDataErrContinue
            zl_marque.Undo
        End If
     
    End Sub
    Jusque là tout fonctionne ^^

    Par contre si je fait de même avec "zl_modele"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub zl_modele_NotInList(NewData As String, Response As Integer)
     
            If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des marque ?", _
            vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
            DoCmd.RunSQL "INSERT INTO tbl_modele ( nom_modele ) SELECT """ & NewData & """;"
            Response = acDataErrAdded
        Else
            Response = acDataErrContinue
            zl_modele.Undo
        End If
     
    End Sub
    Ça ne fonctionnement pas totalement c'est à dire que cela incrémente dans la table "tbl_modele" que le nom du modèle "nom_modele" mais pas le "num_marque".

    Comment récupérer le "num_marque" de "zl_marque" pour qu'il s'incrémente dans la table "tbl_modele"?

    Je vous remercie par avance

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    Cette syntaxe prendra la marque en cours de sélection dans la liste déroulante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO tbl_modele (nom_modele, num_marque) VALUES ('" & NewData & "','" & zl_marque & "');"
    NB : je préfère utiliser ' plutot que " dans les requêtes SQL c'est plus standard et plus lisible
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut
    Ça ne fonctionne pas non plus.

    Cela m'affiche:

    Erreur d"exécution '3127':

    L'instruction INSERT INTO contient le nom de champ inconnu suivant:
    'nom_marque'. Assurez-vous que vous avez correctement saisi le nom, puis recommencez.

    Et si je remplace nom_marque par num_marque, ça ne fonctionne pas non plus.

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Y'a quoi dans ces tables ?
    Et avec num_marque ???
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 132
    Points : 61
    Points
    61
    Par défaut
    Dans la table tbl_modele, il y a :
    num_modele, nom_modele et num_marque

    dans tbl_marque, il y a:
    num_marque et nom_marque

    Je t'avoue que ne comprend pas grand chose comme je début dans ce monde.

    J'ai ressayé et la ça marche ... comprend plus rien

    En tout cas merci nico84

  6. #6
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    C'est parceque quand j'ai écrit mon 2e post j'ai modifié le 1er
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

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

Discussions similaires

  1. [Toutes versions] Comment ajouter un élément dans une ComboBox déjà alimentée automatiquement
    Par BornToBe dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/04/2012, 16h08
  2. [AC-2003] comment ajouter un élément dans une liste avec InputBox
    Par spacesheep dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/10/2009, 13h33
  3. Réponses: 3
    Dernier message: 25/01/2009, 17h32
  4. Réponses: 8
    Dernier message: 01/03/2008, 13h33
  5. Réponses: 2
    Dernier message: 08/02/2006, 21h22

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