Bonjour
J'ai une table : Table 1
Code * Ref * Valeur *
1 * a * riri *
1 * b * fifi *
1 * c * loulou *
2 * a * toto *
2 * b * fifi *
3 * b * riri *
3 * c * toto *
J'ai une autre table : Table 2
Ref * Valeur1 * Valeur2 * Valeur3 * Valeur4 * Valeur5 *
a * riri * fifi * loulou *
b * toto * fifi *
c * riri * toto *
Je veux mettre ce qui est dans Valeur de table 1 dans Valeur1 - Valeur 2 -
Valeur 3... de Table 2 à chaque changement de la colonne Ref de Table1.
Exemple :
1° ligne où Code = 1 dans Valeur1 pour Ref = a soit riri
2° ligne où Code = 1 dans Valeur1 pour Ref = b soit fifi
3° ligne où Code = 1 dans Valeur1 pour Ref = b soit loulou
1° ligne où Code = 2 dans Valeur2 pour Ref = a soit toto
2° ligne où Code = 2 dans Valeur2 pour Ref = b soit fifi
Je n'arrive à mettre à jour qu'une ligne à chaque fois ce qu'il m'oblige à
boucler sur les valeurs Code et Ref pour construire le critère dans mon code
Access.
Hors sujet
Pour corser le tout, Table 1 est en fait une requête sur des tables d'un
serveur SQL et Table 2 (celle à mettre à jour) est une table Access.
Comment puis-je faire ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred Pichaut
C'est quelque chose comme ca que vous cherchez? create table table1 (Code int, Ref char(1), Valeur char(10)) insert table1 values (1,'a','riri') insert table1 values (1,'b','fifi') insert table1 values (1,'c','loulou') insert table1 values (2,'a','toto') insert table1 values (2,'b','fifi') insert table1 values (3,'b','riri') insert table1 values (3,'c','toto') create table table2 (Ref char(1),Valeur1 char(10) null,Valeur2 char(10) null,Valeur3 char(10) null ,Valeur4 char(10) null) insert table2(Ref,Valeur1,Valeur2,Valeur3) values ('a','riri','fifi','loulou') insert table2(Ref,Valeur1,Valeur2) values ('b','toto','fifi') insert table2(Ref,Valeur1,Valeur2) values ('c','riri','toto') go /* update en une passe*/ update table2 set valeur1= (select valeur from table1 where code=1 and table1.ref=table2.ref), valeur2= (select valeur from table1 where code=2 and table1.ref=table2.ref), valeur3= (select valeur from table1 where code=3 and table1.ref=table2.ref), valeur4= (select valeur from table1 where code=4 and table1.ref=table2.ref) go /* ou in trigger?*/ create trigger trig1 on table1 for update as IF (COLUMNS_UPDATED() & 2) = 2 begin declare @code int select @code=code from inserted if @code=1 begin update table2 set valeur1=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=2 begin update table2 set valeur2=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=3 begin update table2 set valeur3=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=4 begin update table2 set valeur3=inserted.valeur from inserted where table2.ref=inserted.ref end end
ou je n'ai pas tout compris :)
Fred
-- Cdlt,
FP "gambi" wrote in message news:417bd6d4$0$32590$
Bonjour J'ai une table : Table 1 Code * Ref * Valeur * 1 * a * riri * 1 * b * fifi * 1 * c * loulou * 2 * a * toto * 2 * b * fifi * 3 * b * riri * 3 * c * toto *
J'ai une autre table : Table 2 Ref * Valeur1 * Valeur2 * Valeur3 * Valeur4 * Valeur5 * a * riri * fifi * loulou * b * toto * fifi * c * riri * toto *
Je veux mettre ce qui est dans Valeur de table 1 dans Valeur1 - Valeur 2 - Valeur 3... de Table 2 à chaque changement de la colonne Ref de Table1. Exemple : 1° ligne où Code = 1 dans Valeur1 pour Ref = a soit riri 2° ligne où Code = 1 dans Valeur1 pour Ref = b soit fifi 3° ligne où Code = 1 dans Valeur1 pour Ref = b soit loulou 1° ligne où Code = 2 dans Valeur2 pour Ref = a soit toto 2° ligne où Code = 2 dans Valeur2 pour Ref = b soit fifi Je n'arrive à mettre à jour qu'une ligne à chaque fois ce qu'il m'oblige à boucler sur les valeurs Code et Ref pour construire le critère dans mon
code
Access.
Hors sujet Pour corser le tout, Table 1 est en fait une requête sur des tables d'un serveur SQL et Table 2 (celle à mettre à jour) est une table Access. Comment puis-je faire ?
Merci de votre aide
C'est quelque chose comme ca que vous cherchez?
create table table1 (Code int, Ref char(1), Valeur char(10))
insert table1 values (1,'a','riri')
insert table1 values (1,'b','fifi')
insert table1 values (1,'c','loulou')
insert table1 values (2,'a','toto')
insert table1 values (2,'b','fifi')
insert table1 values (3,'b','riri')
insert table1 values (3,'c','toto')
create table table2 (Ref char(1),Valeur1 char(10) null,Valeur2 char(10)
null,Valeur3 char(10) null ,Valeur4 char(10) null)
insert table2(Ref,Valeur1,Valeur2,Valeur3) values
('a','riri','fifi','loulou')
insert table2(Ref,Valeur1,Valeur2) values ('b','toto','fifi')
insert table2(Ref,Valeur1,Valeur2) values ('c','riri','toto')
go
/* update en une passe*/
update table2 set
valeur1= (select valeur from table1 where code=1 and table1.ref=table2.ref),
valeur2= (select valeur from table1 where code=2 and table1.ref=table2.ref),
valeur3= (select valeur from table1 where code=3 and table1.ref=table2.ref),
valeur4= (select valeur from table1 where code=4 and table1.ref=table2.ref)
go
/* ou in trigger?*/
create trigger trig1 on table1 for update as
IF (COLUMNS_UPDATED() & 2) = 2
begin
declare @code int
select @code=code from inserted
if @code=1
begin
update table2 set valeur1=inserted.valeur from inserted where
table2.ref=inserted.ref
end
if @code=2
begin
update table2 set valeur2=inserted.valeur from inserted where
table2.ref=inserted.ref
end
if @code=3
begin
update table2 set valeur3=inserted.valeur from inserted where
table2.ref=inserted.ref
end
if @code=4
begin
update table2 set valeur3=inserted.valeur from inserted where
table2.ref=inserted.ref
end
end
ou je n'ai pas tout compris :)
Fred
--
Cdlt,
FP
"gambi" <marc.pages@ifrance.com> wrote in message
news:417bd6d4$0$32590$636a15ce@news.free.fr...
Bonjour
J'ai une table : Table 1
Code * Ref * Valeur *
1 * a * riri *
1 * b * fifi *
1 * c * loulou *
2 * a * toto *
2 * b * fifi *
3 * b * riri *
3 * c * toto *
J'ai une autre table : Table 2
Ref * Valeur1 * Valeur2 * Valeur3 * Valeur4 * Valeur5 *
a * riri * fifi * loulou *
b * toto * fifi *
c * riri * toto *
Je veux mettre ce qui est dans Valeur de table 1 dans Valeur1 - Valeur 2 -
Valeur 3... de Table 2 à chaque changement de la colonne Ref de Table1.
Exemple :
1° ligne où Code = 1 dans Valeur1 pour Ref = a soit riri
2° ligne où Code = 1 dans Valeur1 pour Ref = b soit fifi
3° ligne où Code = 1 dans Valeur1 pour Ref = b soit loulou
1° ligne où Code = 2 dans Valeur2 pour Ref = a soit toto
2° ligne où Code = 2 dans Valeur2 pour Ref = b soit fifi
Je n'arrive à mettre à jour qu'une ligne à chaque fois ce qu'il m'oblige à
boucler sur les valeurs Code et Ref pour construire le critère dans mon
code
Access.
Hors sujet
Pour corser le tout, Table 1 est en fait une requête sur des tables d'un
serveur SQL et Table 2 (celle à mettre à jour) est une table Access.
Comment puis-je faire ?
C'est quelque chose comme ca que vous cherchez? create table table1 (Code int, Ref char(1), Valeur char(10)) insert table1 values (1,'a','riri') insert table1 values (1,'b','fifi') insert table1 values (1,'c','loulou') insert table1 values (2,'a','toto') insert table1 values (2,'b','fifi') insert table1 values (3,'b','riri') insert table1 values (3,'c','toto') create table table2 (Ref char(1),Valeur1 char(10) null,Valeur2 char(10) null,Valeur3 char(10) null ,Valeur4 char(10) null) insert table2(Ref,Valeur1,Valeur2,Valeur3) values ('a','riri','fifi','loulou') insert table2(Ref,Valeur1,Valeur2) values ('b','toto','fifi') insert table2(Ref,Valeur1,Valeur2) values ('c','riri','toto') go /* update en une passe*/ update table2 set valeur1= (select valeur from table1 where code=1 and table1.ref=table2.ref), valeur2= (select valeur from table1 where code=2 and table1.ref=table2.ref), valeur3= (select valeur from table1 where code=3 and table1.ref=table2.ref), valeur4= (select valeur from table1 where code=4 and table1.ref=table2.ref) go /* ou in trigger?*/ create trigger trig1 on table1 for update as IF (COLUMNS_UPDATED() & 2) = 2 begin declare @code int select @code=code from inserted if @code=1 begin update table2 set valeur1=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=2 begin update table2 set valeur2=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=3 begin update table2 set valeur3=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=4 begin update table2 set valeur3=inserted.valeur from inserted where table2.ref=inserted.ref end end
ou je n'ai pas tout compris :)
Fred
-- Cdlt,
FP "gambi" wrote in message news:417bd6d4$0$32590$
Bonjour J'ai une table : Table 1 Code * Ref * Valeur * 1 * a * riri * 1 * b * fifi * 1 * c * loulou * 2 * a * toto * 2 * b * fifi * 3 * b * riri * 3 * c * toto *
J'ai une autre table : Table 2 Ref * Valeur1 * Valeur2 * Valeur3 * Valeur4 * Valeur5 * a * riri * fifi * loulou * b * toto * fifi * c * riri * toto *
Je veux mettre ce qui est dans Valeur de table 1 dans Valeur1 - Valeur 2 - Valeur 3... de Table 2 à chaque changement de la colonne Ref de Table1. Exemple : 1° ligne où Code = 1 dans Valeur1 pour Ref = a soit riri 2° ligne où Code = 1 dans Valeur1 pour Ref = b soit fifi 3° ligne où Code = 1 dans Valeur1 pour Ref = b soit loulou 1° ligne où Code = 2 dans Valeur2 pour Ref = a soit toto 2° ligne où Code = 2 dans Valeur2 pour Ref = b soit fifi Je n'arrive à mettre à jour qu'une ligne à chaque fois ce qu'il m'oblige à boucler sur les valeurs Code et Ref pour construire le critère dans mon
code
Access.
Hors sujet Pour corser le tout, Table 1 est en fait une requête sur des tables d'un serveur SQL et Table 2 (celle à mettre à jour) est une table Access. Comment puis-je faire ?
Merci de votre aide
gambi
Bonjour Je fais déjà ça. Je voulais tout envoyer d'un coup dans la nouvelle table car autrement j'ai plusieurs problèmes. 1 - je construit ma chaîne par code et cette manipulation est très longue (la base fait plus de 3 GO). J'ai aussi rencontré d'autre problèmes avec ce type d'ordre, quand la valeur contient une cote ben la ligne est bien sûr refusé. J'ai un problème de temps d'accés et si je dois tester toutes les valeurs pour doubler les cotes je suis pas rendu. Je cherchais qualque chose du style Update table2.Colonne1 select Table1.Colonne1. cad envoyer toute la colonne1 de table1 dans colonne1 de table2 Merci pour votre réponse rapid eet efficace.
Gambi
"Fred Pichaut" a écrit dans le message de news:
C'est quelque chose comme ca que vous cherchez? create table table1 (Code int, Ref char(1), Valeur char(10)) insert table1 values (1,'a','riri') insert table1 values (1,'b','fifi') insert table1 values (1,'c','loulou') insert table1 values (2,'a','toto') insert table1 values (2,'b','fifi') insert table1 values (3,'b','riri') insert table1 values (3,'c','toto') create table table2 (Ref char(1),Valeur1 char(10) null,Valeur2 char(10) null,Valeur3 char(10) null ,Valeur4 char(10) null) insert table2(Ref,Valeur1,Valeur2,Valeur3) values ('a','riri','fifi','loulou') insert table2(Ref,Valeur1,Valeur2) values ('b','toto','fifi') insert table2(Ref,Valeur1,Valeur2) values ('c','riri','toto') go /* update en une passe*/ update table2 set valeur1= (select valeur from table1 where code=1 and
table1.ref=table2.ref),
valeur2= (select valeur from table1 where code=2 and
table1.ref=table2.ref),
valeur3= (select valeur from table1 where code=3 and
table1.ref=table2.ref),
valeur4= (select valeur from table1 where code=4 and
table1.ref=table2.ref)
go /* ou in trigger?*/ create trigger trig1 on table1 for update as IF (COLUMNS_UPDATED() & 2) = 2 begin declare @code int select @code=code from inserted if @code=1 begin update table2 set valeur1=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=2 begin update table2 set valeur2=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=3 begin update table2 set valeur3=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=4 begin update table2 set valeur3=inserted.valeur from inserted where table2.ref=inserted.ref end end
ou je n'ai pas tout compris :)
Fred
-- Cdlt,
FP "gambi" wrote in message news:417bd6d4$0$32590$ > Bonjour > J'ai une table : Table 1 > Code * Ref * Valeur * > 1 * a * riri * > 1 * b * fifi * > 1 * c * loulou * > 2 * a * toto * > 2 * b * fifi * > 3 * b * riri * > 3 * c * toto * > > J'ai une autre table : Table 2 > Ref * Valeur1 * Valeur2 * Valeur3 * Valeur4 * Valeur5 * > a * riri * fifi * loulou * > b * toto * fifi * > c * riri * toto * > > Je veux mettre ce qui est dans Valeur de table 1 dans Valeur1 - Valeur
2 -
> Valeur 3... de Table 2 à chaque changement de la colonne Ref de Table1. > Exemple : > 1° ligne où Code = 1 dans Valeur1 pour Ref = a soit riri > 2° ligne où Code = 1 dans Valeur1 pour Ref = b soit fifi > 3° ligne où Code = 1 dans Valeur1 pour Ref = b soit loulou > 1° ligne où Code = 2 dans Valeur2 pour Ref = a soit toto > 2° ligne où Code = 2 dans Valeur2 pour Ref = b soit fifi > Je n'arrive à mettre à jour qu'une ligne à chaque fois ce qu'il m'oblige
à
> boucler sur les valeurs Code et Ref pour construire le critère dans mon code > Access. > > Hors sujet > Pour corser le tout, Table 1 est en fait une requête sur des tables d'un > serveur SQL et Table 2 (celle à mettre à jour) est une table Access. > Comment puis-je faire ? > > Merci de votre aide > > >
Bonjour
Je fais déjà ça.
Je voulais tout envoyer d'un coup dans la nouvelle table car autrement j'ai
plusieurs problèmes.
1 - je construit ma chaîne par code et cette manipulation est très longue
(la base fait plus de 3 GO).
J'ai aussi rencontré d'autre problèmes avec ce type d'ordre, quand la valeur
contient une cote ben la ligne est bien sûr refusé.
J'ai un problème de temps d'accés et si je dois tester toutes les valeurs
pour doubler les cotes je suis pas rendu.
Je cherchais qualque chose du style Update table2.Colonne1 select
Table1.Colonne1.
cad envoyer toute la colonne1 de table1 dans colonne1 de table2
Merci pour votre réponse rapid eet efficace.
Gambi
"Fred Pichaut" <fredep@online.microsoft.com> a écrit dans le message de
news: exIJS9zuEHA.1300@TK2MSFTNGP14.phx.gbl...
C'est quelque chose comme ca que vous cherchez?
create table table1 (Code int, Ref char(1), Valeur char(10))
insert table1 values (1,'a','riri')
insert table1 values (1,'b','fifi')
insert table1 values (1,'c','loulou')
insert table1 values (2,'a','toto')
insert table1 values (2,'b','fifi')
insert table1 values (3,'b','riri')
insert table1 values (3,'c','toto')
create table table2 (Ref char(1),Valeur1 char(10) null,Valeur2 char(10)
null,Valeur3 char(10) null ,Valeur4 char(10) null)
insert table2(Ref,Valeur1,Valeur2,Valeur3) values
('a','riri','fifi','loulou')
insert table2(Ref,Valeur1,Valeur2) values ('b','toto','fifi')
insert table2(Ref,Valeur1,Valeur2) values ('c','riri','toto')
go
/* update en une passe*/
update table2 set
valeur1= (select valeur from table1 where code=1 and
table1.ref=table2.ref),
valeur2= (select valeur from table1 where code=2 and
table1.ref=table2.ref),
valeur3= (select valeur from table1 where code=3 and
table1.ref=table2.ref),
valeur4= (select valeur from table1 where code=4 and
table1.ref=table2.ref)
go
/* ou in trigger?*/
create trigger trig1 on table1 for update as
IF (COLUMNS_UPDATED() & 2) = 2
begin
declare @code int
select @code=code from inserted
if @code=1
begin
update table2 set valeur1=inserted.valeur from inserted where
table2.ref=inserted.ref
end
if @code=2
begin
update table2 set valeur2=inserted.valeur from inserted where
table2.ref=inserted.ref
end
if @code=3
begin
update table2 set valeur3=inserted.valeur from inserted where
table2.ref=inserted.ref
end
if @code=4
begin
update table2 set valeur3=inserted.valeur from inserted where
table2.ref=inserted.ref
end
end
ou je n'ai pas tout compris :)
Fred
--
Cdlt,
FP
"gambi" <marc.pages@ifrance.com> wrote in message
news:417bd6d4$0$32590$636a15ce@news.free.fr...
> Bonjour
> J'ai une table : Table 1
> Code * Ref * Valeur *
> 1 * a * riri *
> 1 * b * fifi *
> 1 * c * loulou *
> 2 * a * toto *
> 2 * b * fifi *
> 3 * b * riri *
> 3 * c * toto *
>
> J'ai une autre table : Table 2
> Ref * Valeur1 * Valeur2 * Valeur3 * Valeur4 * Valeur5 *
> a * riri * fifi * loulou *
> b * toto * fifi *
> c * riri * toto *
>
> Je veux mettre ce qui est dans Valeur de table 1 dans Valeur1 - Valeur
2 -
> Valeur 3... de Table 2 à chaque changement de la colonne Ref de Table1.
> Exemple :
> 1° ligne où Code = 1 dans Valeur1 pour Ref = a soit riri
> 2° ligne où Code = 1 dans Valeur1 pour Ref = b soit fifi
> 3° ligne où Code = 1 dans Valeur1 pour Ref = b soit loulou
> 1° ligne où Code = 2 dans Valeur2 pour Ref = a soit toto
> 2° ligne où Code = 2 dans Valeur2 pour Ref = b soit fifi
> Je n'arrive à mettre à jour qu'une ligne à chaque fois ce qu'il m'oblige
à
> boucler sur les valeurs Code et Ref pour construire le critère dans mon
code
> Access.
>
> Hors sujet
> Pour corser le tout, Table 1 est en fait une requête sur des tables d'un
> serveur SQL et Table 2 (celle à mettre à jour) est une table Access.
> Comment puis-je faire ?
>
> Merci de votre aide
>
>
>
Bonjour Je fais déjà ça. Je voulais tout envoyer d'un coup dans la nouvelle table car autrement j'ai plusieurs problèmes. 1 - je construit ma chaîne par code et cette manipulation est très longue (la base fait plus de 3 GO). J'ai aussi rencontré d'autre problèmes avec ce type d'ordre, quand la valeur contient une cote ben la ligne est bien sûr refusé. J'ai un problème de temps d'accés et si je dois tester toutes les valeurs pour doubler les cotes je suis pas rendu. Je cherchais qualque chose du style Update table2.Colonne1 select Table1.Colonne1. cad envoyer toute la colonne1 de table1 dans colonne1 de table2 Merci pour votre réponse rapid eet efficace.
Gambi
"Fred Pichaut" a écrit dans le message de news:
C'est quelque chose comme ca que vous cherchez? create table table1 (Code int, Ref char(1), Valeur char(10)) insert table1 values (1,'a','riri') insert table1 values (1,'b','fifi') insert table1 values (1,'c','loulou') insert table1 values (2,'a','toto') insert table1 values (2,'b','fifi') insert table1 values (3,'b','riri') insert table1 values (3,'c','toto') create table table2 (Ref char(1),Valeur1 char(10) null,Valeur2 char(10) null,Valeur3 char(10) null ,Valeur4 char(10) null) insert table2(Ref,Valeur1,Valeur2,Valeur3) values ('a','riri','fifi','loulou') insert table2(Ref,Valeur1,Valeur2) values ('b','toto','fifi') insert table2(Ref,Valeur1,Valeur2) values ('c','riri','toto') go /* update en une passe*/ update table2 set valeur1= (select valeur from table1 where code=1 and
table1.ref=table2.ref),
valeur2= (select valeur from table1 where code=2 and
table1.ref=table2.ref),
valeur3= (select valeur from table1 where code=3 and
table1.ref=table2.ref),
valeur4= (select valeur from table1 where code=4 and
table1.ref=table2.ref)
go /* ou in trigger?*/ create trigger trig1 on table1 for update as IF (COLUMNS_UPDATED() & 2) = 2 begin declare @code int select @code=code from inserted if @code=1 begin update table2 set valeur1=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=2 begin update table2 set valeur2=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=3 begin update table2 set valeur3=inserted.valeur from inserted where table2.ref=inserted.ref end if @code=4 begin update table2 set valeur3=inserted.valeur from inserted where table2.ref=inserted.ref end end
ou je n'ai pas tout compris :)
Fred
-- Cdlt,
FP "gambi" wrote in message news:417bd6d4$0$32590$ > Bonjour > J'ai une table : Table 1 > Code * Ref * Valeur * > 1 * a * riri * > 1 * b * fifi * > 1 * c * loulou * > 2 * a * toto * > 2 * b * fifi * > 3 * b * riri * > 3 * c * toto * > > J'ai une autre table : Table 2 > Ref * Valeur1 * Valeur2 * Valeur3 * Valeur4 * Valeur5 * > a * riri * fifi * loulou * > b * toto * fifi * > c * riri * toto * > > Je veux mettre ce qui est dans Valeur de table 1 dans Valeur1 - Valeur
2 -
> Valeur 3... de Table 2 à chaque changement de la colonne Ref de Table1. > Exemple : > 1° ligne où Code = 1 dans Valeur1 pour Ref = a soit riri > 2° ligne où Code = 1 dans Valeur1 pour Ref = b soit fifi > 3° ligne où Code = 1 dans Valeur1 pour Ref = b soit loulou > 1° ligne où Code = 2 dans Valeur2 pour Ref = a soit toto > 2° ligne où Code = 2 dans Valeur2 pour Ref = b soit fifi > Je n'arrive à mettre à jour qu'une ligne à chaque fois ce qu'il m'oblige
à
> boucler sur les valeurs Code et Ref pour construire le critère dans mon code > Access. > > Hors sujet > Pour corser le tout, Table 1 est en fait une requête sur des tables d'un > serveur SQL et Table 2 (celle à mettre à jour) est une table Access. > Comment puis-je faire ? > > Merci de votre aide > > >