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

Requêtes et SQL. Discussion :

Besoin d'idée pour une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut Besoin d'idée pour une requête
    Bonjours à tous,

    Je cherche à créer une requête qui me permettra d'intégrer des numéro d'ID dans une table associative.

    [Voir image en pièce jointe]

    Donc.. à l'aide d'un formulaire de recherche (frmRechercherParticipant), je devrais pouvoir, lors du double clique sur l'enregistrement désiré dans la liste, intégrer dans ma table associative tblRegroupe, l'IDCamp (présent dans une zone de texte du formulaire) et l'IDPersonne (présent dans la zone de liste mais caché par une taille de colonne mis à 0cm). L'IDCamp s'enregistrerait dans num_tblCamp et l'IDPersonne dans num_tblPersonne de tblRegroupe.

    Voila ce qu'il me faudrait faire, et je n'ai aucune idée de comment créer ma requête qui devrait (si je ne me trompe) se situer ici:
    Private Sub lstListePersonne_DblClick(Cancel As Integer)
    ????
    End Sub
    Voila, un grand merci à tous ceux qui pourront me renseigner.

    Cyriusix
    Images attachées Images attachées  

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Tu peux le faire à l'aide d'une instruction SQL INSERT.
    INSERT INTO LaTable (ch1, ch2, ...) VALUES (valeur1, valeur2, ...)
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub lstListePersonne_DblClick(Cancel As Integer)
    Dim strSQL As String
     
    strSQL = "INSERT INTO tblRegroupe (num_tblCamp, num_tblPersonne) " & _
             "VALUES (" & Me.IDCamp & ", " & Me.IDPersonne & ")"
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings True
    End Sub
    J'ai supposé que IDCamp et IDPersonne étaient les noms des contrôles sur le formulaire,
    et que la première colonne de la zone de liste était la colonne liée.

    A+

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Je pense que tu peux créer un recorset et y intégrer un nouvel enregistrement. Ce qui donne vite fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub lstListePersonne_DblClick(Cancel As Integer)
    	Dim oRst as DAO.Recordset 
    	Dim oDb as DAO.Database 
    	Set oDb=CurrentDb
            Set oRst=oDb.OpenRecordset("tblRegroupe",dbOpenTable) 
    	oRst.AddNew
    	oRst.Fields("num_tblCamp").Value=me.parent.idCamp
    	oRst.Fields("num_tblPersonne").Value=me.idPersonne
    	oRst.Update
    	oRst.Close
    	oDb.Close 
    	Set oRst=Nothing 
    	Set oDb=Nothing
    End Sub
    Attention de bien déclarer la référence DAO. De plus, je ne suis pas sûr du libellé exact de tes champs... à toi d'adapter en fonction. Enfin, je ne sais pas ce que donne ton troisième champ de la table tblRegroupe.

    A tester

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Wahouu.. 2 belles réponses en même temps, merci les gars..

    Alors je pars plutôt sur la première.. (sans vouloir t'offenser Gabout ) disons que j'ai pas encore vraiment l'habitude de travailler en utilisant des Recordset.

    Donc j'ai collé tel quel le code de LedZeppII mais cela ne marche pas.. enfaite, pour l'IDPersonne, il faudrait faire en sorte que ça prenne le résultat de la première colonne qui est cachée.. a part quand il la prend en compte, on ne parle jamais de l'IDpersonne.. comment le nomer dans la requête?

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    voici ce qu'il faut écrire pour la première colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.IDPersonne.Column(0)
    Toujours en supposant que le contrôle zone de liste est IDPersonne.

    A+

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Il y a toujours un problème..

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub lstListePersonne_DblClick(Cancel As Integer)
     
       Dim SQL As String
     
       SQL = "INSERT INTO tblRegroupe (num_tblCamp, num_tblPersonne) " & _
             "VALUES (" & Me.IDCamp & ", " & Me.lstListePersonne.Column(0) & ")"
     
       DoCmd.SetWarnings False
       DoCmd.RunSQL SQL
       DoCmd.SetWarnings True
     
    End Sub
    Le code se compile sans soucis, mais je ne sais pour quelle raison, il n'y a rien qui se rajoute dans tblRegroupe.. Est-ce que j'ai oublié quelque chose?

  7. #7
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Mets temporairement en commentaire la ligne
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
       DoCmd.SetWarnings False
    Tu obtiendras peut-être la raison.

    Pour vérifier le contenu de la variable SQL tu peux utiliser Debug.Print.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       SQL = "INSERT INTO tblRegroupe (num_tblCamp, num_tblPersonne) " & _
             "VALUES (" & Me.IDCamp & ", " & Me.lstListePersonne.Column(0) & ")"
       Debug.Print SQL
    Ensuite tu vas dans l'éditeur VB (Alt+F11) puis tu affiches la fenêtre d'exécution (Ctrl+G).
    Ça permet de voir la requête qui va être exécutée.

    A+

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Ok, super.. le petit espion a fait son travail et le tour est joué..

    Merci beaucoup LedZepII

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

Discussions similaires

  1. Besoin d'aide pour une requête de MAJ (modif. de car.)
    Par ptitscrat dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 17h27
  2. besoin d'aide pour une requête
    Par lipao17 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/01/2006, 16h55
  3. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  4. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56
  5. besoin d'aide pour une requête
    Par Damien69 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 31/03/2004, 15h38

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