Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2011, 17h15   #1
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 156
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 156
Points : 34
Points : 34
Par défaut INSERT INTO sur plusieurs table

Bonjour à vous

Pour le SELECT, j'arrive à me débrouiller, par contre pour le INSERT INTO, j'ia du mal.

J'ai une première table TABLE1, avec trois colonne ID_Code, Code_Article et Type, remplis comme suit :
Code :
1
2
3
4
5
6
7
 
            ID_Code                  Code_Article               Type
              1                        AAAPPP000                  1
              2                        AAAPPP111                  3
              3                        AAAPPP222                  3
              4                        AAAPPP333                  1
              5                        AAAPPP444                  1
Puis une seconde table TABLE2, avec deux colonne ID_Type et Nom_Type :
Code :
1
2
3
4
5
 
            ID_Type                   Nom_Type
              1                        Bureau
              2                        Perso
              3                        Famille
Je cherche à ajouter une nouvelle référence pour avoir :
6 AAAPPP555 2
mais je ne voudrais pas passer par INSERT INTO table1 VALUE (6,AAAPPP555,2), plutot comme ceci : INSERT INTO table1 VALUE (6,AAAPPP555,Perso)

Merci de votre aide
Fr33dom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 17h28   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour Fr33dom,

En règle général, il vaut mieux passer par l'assistant "Création de requête", type de requête "Ajout" et, si besoin, de récupérer le code SQL après la mise au point.

Bon, c'est vrai, ta requête est relativement simple, mais c'est une bonne habitude à prendre.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 17h39   #3
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 156
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 156
Points : 34
Points : 34
Erf, mais j'ai essayé de la trouver cette fonction sans réussite
Fr33dom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 17h43   #4
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 156
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 156
Points : 34
Points : 34
trouvé la fonction je vous tiens au courant pour le résultat
Fr33dom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 18h36   #5
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 156
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 156
Points : 34
Points : 34
Je ne dois pas etre doué
lorsque j'essai par l'assistant soit il me complète tous mon tableau par les nouvelles valeurs que je voudrais, soit je n'ai rien.
Help plz
Fr33dom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 18h45   #6
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Peux-tu poster l'image de ta requête (via l'assistant) ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 19h12   #7
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Je dois partir.

Sinon, en deux mots :
- aller en création de requête ;
- click droit à l'endroit des tables ;
- sélectionner "requête ajout" ;
- sélectionner la table "TABLE1" ;
- 1ère colonne :
-- champ : "AAAPPP555"
-- ajouter à "Code_Article"
- 2ère colonne :
-- champ : 2
-- ajouter à "Type"

==> j'ai supposé que ID_Code est en numérotation automatique : tu n'as donc pas besoin de l'indiquer ;
==> lancer la requête : tu devrais avoir ajouté un enregistrement à Table1 ;
==> récupérer le SQL (en mode SQL) ;
==> étudier le SQL généré.

Il vaut mieux maîtriser l'assistant (il est fait pour ça) et étudier le code SQL que l'inverse. En particulier pour les requêtes plus compliquées.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 09h45   #8
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 156
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 156
Points : 34
Points : 34


Et la requête est la suivante :
Code :
1
2
3
INSERT INTO Table1 ( Code_Article, Type )
SELECT 'EEEEEE' AS Expr1, 1 AS Expr2
FROM Table1;
Voici le résultat :
Fr33dom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 11h21   #9
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Bonjour,

Tu ne dois pas avoir de table dans la partie du haut : cela supprimera le FROM et, donc, ne partira pas de Table1 pour remplir Table1...
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 14h37   #10
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 156
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 156
Points : 34
Points : 34
En effet sa marche mieux.
Mais sais tu comment faire pour créer une ligne de ce genre INSERT INTO table1 VALUE (6,AAAPPP555,Perso), sans connaitre ID_Type
Fr33dom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 14h45   #11
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
En post #7 :
Citation:
==> j'ai supposé que ID_Code est en numérotation automatique : tu n'as donc pas besoin de l'indiquer ;
Le post #7 complet :
Citation:
Sinon, en deux mots :
- aller en création de requête ;
- click droit à l'endroit des tables ;
- sélectionner "requête ajout" ;
- sélectionner la table "TABLE1" ;
- 1ère colonne :
-- champ : "AAAPPP555"
-- ajouter à "Code_Article"
- 2ère colonne :
-- champ : 2
-- ajouter à "Type"

==> j'ai supposé que ID_Code est en numérotation automatique : tu n'as donc pas besoin de l'indiquer ;
==> lancer la requête : tu devrais avoir ajouté un enregistrement à Table1 ;
==> récupérer le SQL (en mode SQL) ;
==> étudier le SQL généré.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 18h44   #12
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 156
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 156
Points : 34
Points : 34
Merci j'ai bien lu mais ça ne marche pas
Fr33dom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 19h27   #13
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 176
Points : 2 805
Points : 2 805
Il faudrait que tu détailles un peu plus :
- qu'est-ce qui ne "marche pas" ?
- quel est le message d'erreur ?
- quel est le résultat dans TABLE1 ?
...
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 10h14   #14
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 156
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : janvier 2008
Messages : 156
Points : 34
Points : 34
Je reprend ce que j'ai fait.

Citation:
Sinon, en deux mots :
- aller en création de requête ;
- click droit à l'endroit des tables ;
- sélectionner "requête ajout" ;
- sélectionner la table "TABLE1" ;
- 1ère colonne :
-- champ : "AAAPPP555"
-- ajouter à "Code_Article"
- 2ère colonne :
-- champ : 2
-- ajouter à "Type"

==> j'ai supposé que ID_Code est en numérotation automatique : tu n'as donc pas besoin de l'indiquer ;
==> lancer la requête : tu devrais avoir ajouté un enregistrement à Table1 ;
==> récupérer le SQL (en mode SQL) ;
==> étudier le SQL généré.
Tout cela fonctionne bien, j'ai bien la ligne AAAPPP555 qui s'ajoute bien dans ma table 1 avec le type à 2.
pour cela, OK.

Mais ma demande de départ était de ne pas tenir compte du 2.

Après plusieurs tests et bidouille, j'ai finalement trouvé :
Code :
1
2
3
4
INSERT INTO Table1 ( Code_Article, Type )
SELECT 'AAAPPP555' AS Expr1, Table2.ID_Type AS Expr2
FROM Table2
WHERE (Table2.Nom_Type='Perso');
Merci pour ton aide
Fr33dom est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h16.


 
 
 
 
Partenaires

Hébergement Web