{Access} rquette de mise a jour

Fermé
abdo78 - 19 déc. 2009 à 11:52
 abdo78 - 1 janv. 2010 à 16:11
Bonjour,
j ai deux tableaux ; agent et nouveau matricule
dans le 2eme tableau ; il y 2 champs : matricule et nvmatricule
je veux faire une requette de mise ajour pour changer les matricules dans le tableau agent par les nouveaux matricules qui sont dans le tableau nouveau matricule .merci de m'aider c urgent.
A voir également:

20 réponses

moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
19 déc. 2009 à 12:50
bonjour

alors en sql:

update agent set matricule = (select nvmatricule from nouveau matricule where "la il te faut mettre 2 champ egaux pour que la liaison se fasse")

du genre update agent set matricule = (select nvmatricule from nouveau matricule where prenom.matricule = prenom.nvmatricule)
0
merci de votre aide
j ai fais une requete qui lit les tables agent et nouveaumat et une sous requete de mise a jour puis j ai choisi mode sql pour ecrire le code. j ai ecris ce code: update agent set matricule =(select nvmatricule from nouveaumat where agent.matricule=nouveaumat.matricule) mais il m affiche le message suivant ; l operation doit utliser une requete qui doit etre mise a jour . erreur 3073
merci
0
Merci de votre aide
j ai fais une requete qui lit les tables agent et nouveaumat et une sous requete de mise a jour puis j ai choisi mode sql pour ecrire le code. j ai ecris ce code: update agent set matricule =(select nvmatricule from nouveaumat where agent.matricule=nouveaumat.matricule) mais il m affiche le message suivant ; l operation doit utliser une requete qui doit etre mise a jour . erreur 3073
merci
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
20 déc. 2009 à 10:37
Je suis d'accord avec ce qui a été dit précédemment.
Sinon via l'assistant requete mise à jour c'est possible aussi
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
22 déc. 2009 à 17:50
bonjour

le probleme est que tu met a jour un champ et que tut e sert de celui ds ta sous requete!!!

tu met a jour le matricule ok mais tu dois faire la relation entre les 2 table avec un autre champ unique
0
merci de votre aide

svp , si vous pouvez m' expliquer comment faire dés le debut de l' operation , car j ai fait la requtte avec d' autre champ mais le meme message s'affiche. merci
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
23 déc. 2009 à 21:00
dis nous quel sont exactement tout tes champs de chaque table et les champ egaux et le champ a mettre a jour par rapport au quel
0
merci encor
les champs de table agent : service;matricule;nom;adresse;pays;cnss;cin;dentree
les champs de table nouveaumat: matricule;nvmatricule;nom;cnss;cin;dentree

je veux changer le champ matricule du table agent par le champ nvmatricule du table nouveaumat

l' objectif est de changer les matricules des agents sans tout resaisir leurs fiches.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 déc. 2009 à 13:05
re

alors:
si ton champ nom des 2 table represente la meme chose et que tu na pas 2 fois le meme nom tu peux faire ca:

update agent set matricule = (select nvmatricule from nouveaumat where nom.agent = nom.nouveaumat)

si cela ne vas pas hesite pas
0
maerci

j ai ecrit l'insruction mais meme message
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 déc. 2009 à 16:40
UPDATE matricule1, matricule2 SET matricule1.matricule = [matricule2].[nouveaumatricule]
WHERE (((matricule2.nom)=[matricule1].[nom]));


matricule1 = 1ere table a mettre a jour

matricule2 = 2eme table ou les bonne donné sont

et le champ nom qui est ds les 2 table me sert a faire la relation cette requette fonctionne chez moi
0
merci

il m' afiiche le message suivant:
microsoft access n'arrive pas a mettre a jour tout les enregistrements de la requete mise a jour
microsoft access n'a pas mis a jour 0 champ(s) a cause d'un echec de conversion de type,1 enregistrement a couse de la violation de clé, 0 enregistrement a cause de violation de verrou et 0 enregistrement a cause de violation de la regle de validation.
0
Merci

il m' afiiche le message suivant:
microsoft access n'arrive pas a mettre a jour tout les enregistrements de la requete mise a jour
microsoft access n'a pas mis a jour 0 champ(s) a cause d'un echec de conversion de type,1 enregistrement a couse de la violation de clé, 0 enregistrement a cause de violation de verrou et 0 enregistrement a cause de violation de la regle de validation.
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 déc. 2009 à 18:27
t champ on ete mis a jour?
0
seulement 560 de 1291 enrgistrements qui a ete changer
0
Seulement 560 de 1291 enrgistrements qui a ete changer
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 déc. 2009 à 18:54
ce que tu peux faire c :

requete de tout a l'heure

UPDATE matricule1, matricule2 SET matricule1.matricule = [matricule2].[nouveaumatricule]
WHERE (((matricule2.nom)=[matricule1].[nom]));

a la place des nom de la fin met t matricule de base

UPDATE matricule1, matricule2 SET matricule1.matricule = [matricule2].[nouveaumatricule]
WHERE (((matricule2.matricule)=[matricule1].[matricule]));
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
24 déc. 2009 à 18:57
re
ce que tu peux faire c :

requete de tout a l'heure

UPDATE matricule1, matricule2 SET matricule1.matricule = [matricule2].[nouveaumatricule]
WHERE (((matricule2.nom)=[matricule1].[nom]));

a la place des nom de la fin met t matricule de base

UPDATE matricule1, matricule2 SET matricule1.matricule = [matricule2].[nouveaumatricule]
WHERE (((matricule2.matricule)=[matricule1].[matricule]));
0
merci

le problme que j ai c que :certains nvmatrucule existe deja dans la table agent mais pour d autres agent exp:

ancien matr nvmatricule

1300 1301
1301 1302
1302 1303
1303 1304
lorsque il change 1300 avec 1301 il se retrouve avec 2 matricule ayant 1301 et il les changes avec 1302 ainsi de suite , la requete qu'on a fait fonctionne lorsque les nouveaux matricule n existe pas dans la tabla agent.

j 'espere qu tu a compris ce que je veux dire .
0
Merci

le problme que j ai c que :certains nvmatrucule existe deja dans la table agent mais pour d autres agent exp:

ancien matr nvmatricule

1300 1301
1301 1302
1302 1303
1303 1304
lorsque il change 1300 avec 1301 il se retrouve avec 2 matricule ayant 1301 et il les changes avec 1302 ainsi de suite , la requete qu'on a fait fonctionne lorsque les nouveaux matricule n existe pas dans la tabla agent.

j 'espere qu tu a compris ce que je veux dire .
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
25 déc. 2009 à 12:45
bonjour

peux tu copier ta requete stp

ds ta requete nvmatricule ne doit apparaitre que pr la mise a jour

une fois que la mise a jour est effectué access ne regarde plus l enregistrement c bizarre ce que tu me dis!!!
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
25 déc. 2009 à 12:50
re
ton champ matricule est il une clé primaire?
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
25 déc. 2009 à 14:03
re
je viens de faire des essai je confirme c du au fait que t champ matricule soit des clé primaire
0
bonjour
oui le champ matricule est la cle primaire
0
Bonjour
oui le champ matricule est la cle primaire
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
25 déc. 2009 à 17:45
Csupprime ta clé primaire sur les 2 table execute la requete et remet la clé!!!
0
c ce que j ai fait et la requete ca marche . merci infiniment de votre aide je vous souhaite une année plein de succés . merci encor
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
26 déc. 2009 à 11:14
bonne fete de fin d'année a bientot sur CCM
0
rebonjour
je veux faire une requete de supression . suprimer les enregistrements des agents dont les matricule sont differente des matricules quis existe dans la table nvmatricuel dans le champs matricule .
l objectif est de supprimer dans le fichier agent tous les matricules qui sont partis et de de laisser que les
matricules qui sont en travail actuellement .
j ai essayer avec cette requete :DELETE agent.*, NouveauMat.Matricule
FROM agent, NouveauMat
WHERE (((NouveauMat.Matricule)<>[agent].[matricule]));
mais le message suivant s'affiche : impossible de supprimer les tables specifié.

merci de votre aide , desole du derangement.
0
Jacadit24000 Messages postés 61 Date d'inscription samedi 26 décembre 2009 Statut Membre Dernière intervention 7 août 2017 10
26 déc. 2009 à 11:16
Je suppose que les tableaux sont des tables dans Access.

1ère table Nom : Agent / champs : Agent et Matricule
2ème table Nom : Matricule / Champs : Matricule et Nvmatricule

Création d'une table de MAJ Table :
Mettre les 2 tables
Mettre dans Champ : Matricule
Mettre dans Table : Agent
Mettre dans Mise à jour : [Nvmatricule]
Mettre dans Critères : Comme [Matricule]![Matricule] comparaison de Matricule de la Table Agent avec la Table Matricule. Comme ces 2 champs ont le meme nom, il faut préciser le nom de la table.
En lançant cette requête le champ Matricule de la Table Agent sera mis à jour par le champ Nvmatricule de la table Matricule.
J'espère avoir été clair et que ma réponse correspond bien à votre demande.
PS : Evidemment, il ne faut pas que les Nvmatricule de la Table Matricule correspondent à des Matricules de la Table Agent, cela ferait des Doublons et donc si le n° matricule est une clé sans doublons cela ne marche pas. Il faut surement mettre le champ Matricule de la Table Agent indexé avec doublons avant de lancer la Requête.
0
baonjour
j supprimer la cle primaire du table agent et la requete ca marche.

autre sujet:

je veux faire une requete de supression . suprimer les enregistrements des agents dont les matricule sont differente des matricules quis existe dans la table nvmatricuel dans le champs matricule .
l objectif est de supprimer dans le fichier agent tous les matricules qui sont partis et de de laisser que les
matricules qui sont en travail actuellement .
j ai essayer avec cette requete :DELETE agent.*, NouveauMat.Matricule
FROM agent, NouveauMat
WHERE (((NouveauMat.Matricule)<>[agent].[matricule]));
mais le message suivant s'affiche : impossible de supprimer les tables specifié.
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
26 déc. 2009 à 12:10
re

tu ne peux pas mettre un * derriere le nom de la table qd tu as des critere il te faut les decomposer!!!
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
26 déc. 2009 à 12:38
voici la solution a ton probleme:

DELETE *
FROM agent
WHERE matricule IN (SELECT nouveaumatricule FROM nouveaumat WHERE nvmatricule<>matricule1.matricule)


a toi de modifier les nom j 'ai essayé de te les mettre mais verifie qd meme
0
rebonjour

l' objectif de la requete est de conserver dans la table agent seulement les agents qui sont ont travail pour cela je dois supprimer tout les agents qui sont partis.

dans la table nouveaumat , il ya deux champs matricule (les matricules qui sont en travail) et nvmatricule
1) je dois utiliser ce table pour supprimer dans la table agent les agents qui sont partis en se basant sur le champ matricule de la table nouveaumat.

apres je doit fair la requte de mise ajour de ces matricules par les nvmatricules , l'operation qu on réglé.


cette requte '(DELETE *
FROM agent
WHERE matricule IN (SELECT nouveaumatricule FROM nouveaumat WHERE nvmatricule<>matricule1.matricule) ) me done 0 enregistrement a supprimer.
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
26 déc. 2009 à 14:31
ALORS :
DELETE *
FROM agent
WHERE matricule IN (SELECT matricule FROM nouveaumat WHERE matricule1.matricule <>nouveaumat.matricule)
0
rebonjour
il m'affiche : vous allez supprimer 0 lignes de la table spécifié
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
26 déc. 2009 à 16:57
DELETE *
FROM agent
WHERE matricule not IN (SELECT matricule FROM nouveaumat WHERE matricule1.matricule <>nouveaumat.matricule)
0
rebonjour
il m'affiche 239 lignes a supprimer , c ce qui existe dans la table agent , c a dir tous les enregistremnts de la table. alors que elle ne doit suprimer que 96 enregistrements; c a d que 143 matricule qui existe dans la table nouveaumat qu elle doit garder.
0
voila la requete :
delete * from agent where matricule not in ( select matricule from nouveaumat where agent.matricule=nouveaumat.matricule)
merci de votre aide
si vous permetez , puisje vous demandez de m envoyé ton email.
merci encor.
0
bonjour

j ai un programe de comptabilité
quant je fais calcule cout il affiche message erreur suivant :erreur d'execution 94 utilisation non autorisé de null
le programe est sous vb
la base est sous access
merci ed votre aide
0
moiced59 Messages postés 1145 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 18 août 2014 60
26 déc. 2009 à 17:25
oula!!!!!!!!

delete * from agent where agent.matricule not in (select matricule from nouveaumat)

voila je pense que c le resultat que tu recherche

la tu supprime tt les enregistrement de la table agent ou le matricule n'existe pas ds la table nouveaumat sur le champ matricule
0
bonjour

je voulais seulement vous remercier de votre aide

mon email : abdelkader78hotmail.com
0