OVH Cloud OVH Cloud

Requete Insert Into

6 réponses
Avatar
Alain TEYSSEDRE
Bonjour

Je souhaite ajouter des enregistretements dans une de mes tables
et pour cela j'utilise une requete Insert Into

par contre, ma requete ne fonctionne pas dans la mesure ou ma table est
liée par une relation d'intégrité référentielle
(la table dans laquelle j'ajoute mes enregistrements est du coté plusieurs)

comment contourner (facilement) ce pb ?

merci pour votre aide

Alain

6 réponses

Avatar
Pierre CFI [mvp]
bonjour
je comprends pas, tu veux ajouter des enregistrements qui ne respectent pas ta régle d'intégrité ??? alors enléve les régles mais
!!!!
sinon ajoute d'abord un enregistrement dans la table des 1, puis dans l'autre

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Alain TEYSSEDRE" a écrit dans le message de news: #laH#
Bonjour

Je souhaite ajouter des enregistretements dans une de mes tables
et pour cela j'utilise une requete Insert Into

par contre, ma requete ne fonctionne pas dans la mesure ou ma table est
liée par une relation d'intégrité référentielle
(la table dans laquelle j'ajoute mes enregistrements est du coté plusieurs)

comment contourner (facilement) ce pb ?

merci pour votre aide

Alain




Avatar
Alain TEYSSEDRE
Bonjour Pierre

Bon je vais essayer de mieux expliquer ..
Tout d'abord la réponse à ta question:

je comprends pas, tu veux ajouter des enregistrements qui ne respectent
pas ta régle d'intégrité ??? alors enléve les régles mais

!!!!
sinon ajoute d'abord un enregistrement dans la table des 1, puis dans
l'autre


=> Oui je veux ajouter des enregistrements
=> Mes enregistrements respectent la règle d'intégrité

En fait j'ai 2 tables qui ont la structure suivante:

Table 1
RéfCléTable1 = Champ AutoNum / clé primaire
Data1
Data2
...

Table2
RefCléTable2 = Champ Auto/Num
RéfCléTable1 = Champ Numérique
Data

Mon champ RéfCléTable1 de Table1 est Lié (coté 1) au champ RéfCléTable1 de
Table2(Coté Plusieurs)

Mon instruction Insert Into vise à ajouter un enregistrement dans Table 2 en
respectant l'intégrité de mes
données.

DoCmd.RunSQL "INSERT INTO Table2 (RéfCléTable1, Data)" _
& "VALUES ('" & strRéfCléTable1 & "', '" & strData & "');"

strRéfCléTable1 = string contenat la valeur de Table1.RéfCléTable1
strData = string contenant la valeur à insérer dans le champ data de table2


Si j'ai aucune relation d'integrité ==> ça marche j'ai les bonnes valeurs
Sinon ça ne marche pas ???

j'ai du rater un truc quelque part

@+
Alain

Avatar
Pierre CFI [mvp]
re
oui, mais tu entre en texte, ce qui devrait étre en num
VALUES ( & strRéfCléTable1 & ", '" & strData & "');"

strRéfCléTable1 doit etre num, donc pas de ' '

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Alain TEYSSEDRE" a écrit dans le message de news:
Bonjour Pierre

Bon je vais essayer de mieux expliquer ..
Tout d'abord la réponse à ta question:

je comprends pas, tu veux ajouter des enregistrements qui ne respectent
pas ta régle d'intégrité ??? alors enléve les régles mais

!!!!
sinon ajoute d'abord un enregistrement dans la table des 1, puis dans
l'autre


=> Oui je veux ajouter des enregistrements
=> Mes enregistrements respectent la règle d'intégrité

En fait j'ai 2 tables qui ont la structure suivante:

Table 1
RéfCléTable1 = Champ AutoNum / clé primaire
Data1
Data2
...

Table2
RefCléTable2 = Champ Auto/Num
RéfCléTable1 = Champ Numérique
Data

Mon champ RéfCléTable1 de Table1 est Lié (coté 1) au champ RéfCléTable1 de
Table2(Coté Plusieurs)

Mon instruction Insert Into vise à ajouter un enregistrement dans Table 2 en
respectant l'intégrité de mes
données.

DoCmd.RunSQL "INSERT INTO Table2 (RéfCléTable1, Data)" _
& "VALUES ('" & strRéfCléTable1 & "', '" & strData & "');"

strRéfCléTable1 = string contenat la valeur de Table1.RéfCléTable1
strData = string contenant la valeur à insérer dans le champ data de table2


Si j'ai aucune relation d'integrité ==> ça marche j'ai les bonnes valeurs
Sinon ça ne marche pas ???

j'ai du rater un truc quelque part

@+
Alain







Avatar
Alain TEYSSEDRE
Merci Pierre pour ta remarque, effectivement il y avais problème de ce coté
la.

Par contre je n'arrive pas à inserer les valeurs lorsque j'ai ma liaison
entre les tables:
- si je supprime ma liaison => tout est OK je copie mes valeurs
- si je crée ma liaison => aucune valeur n'est transmise ? (alors que ma
transmission
ne transgresse pas les règles de liason, c'est à dire que les valeurs de
RéfCléTable1 de
Table2 correspondent aux bonnes valeurs (elles existents) de RéfCléTable1 de
Table1.

y a un truc qui m'échappe ...

@+
Alain



"Pierre CFI [mvp]" a écrit dans le message de
news:
re
oui, mais tu entre en texte, ce qui devrait étre en num
VALUES ( & strRéfCléTable1 & ", '" & strData & "');"

strRéfCléTable1 doit etre num, donc pas de ' '

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Alain TEYSSEDRE" a écrit dans le
message de news:

Bonjour Pierre

Bon je vais essayer de mieux expliquer ..
Tout d'abord la réponse à ta question:

je comprends pas, tu veux ajouter des enregistrements qui ne
respectent



pas ta régle d'intégrité ??? alors enléve les régles mais
!!!!
sinon ajoute d'abord un enregistrement dans la table des 1, puis dans
l'autre


=> Oui je veux ajouter des enregistrements
=> Mes enregistrements respectent la règle d'intégrité

En fait j'ai 2 tables qui ont la structure suivante:

Table 1
RéfCléTable1 = Champ AutoNum / clé primaire
Data1
Data2
...

Table2
RefCléTable2 = Champ Auto/Num
RéfCléTable1 = Champ Numérique
Data

Mon champ RéfCléTable1 de Table1 est Lié (coté 1) au champ RéfCléTable1
de


Table2(Coté Plusieurs)

Mon instruction Insert Into vise à ajouter un enregistrement dans Table
2 en


respectant l'intégrité de mes
données.

DoCmd.RunSQL "INSERT INTO Table2 (RéfCléTable1, Data)" _
& "VALUES ('" & strRéfCléTable1 & "', '" & strData & "');"

strRéfCléTable1 = string contenat la valeur de Table1.RéfCléTable1
strData = string contenant la valeur à insérer dans le champ data de
table2




Si j'ai aucune relation d'integrité ==> ça marche j'ai les bonnes
valeurs


Sinon ça ne marche pas ???

j'ai du rater un truc quelque part

@+
Alain











Avatar
Alain TEYSSEDRE
Bon ça y est j'ai trouvé ...

en fait je faisais mon Insert Into dans Table 2, alors que j'étais en train
de faire un Add dans Table1 ==> résultat, je transmettais une valeur pas
encore
validée par l'Update (dans table1) à table 2 et patatra pour mes régles de
relation
entre table.

Bon ben ça s'appelle progresser je crois .. il est long le chemin ...

pierre merci encore pour ton aide

@+
Alain





"Alain TEYSSEDRE" a écrit dans le
message de news:
Merci Pierre pour ta remarque, effectivement il y avais problème de ce
coté

la.

Par contre je n'arrive pas à inserer les valeurs lorsque j'ai ma liaison
entre les tables:
- si je supprime ma liaison => tout est OK je copie mes valeurs
- si je crée ma liaison => aucune valeur n'est transmise ? (alors que ma
transmission
ne transgresse pas les règles de liason, c'est à dire que les valeurs
de

RéfCléTable1 de
Table2 correspondent aux bonnes valeurs (elles existents) de RéfCléTable1
de

Table1.

y a un truc qui m'échappe ...

@+
Alain



"Pierre CFI [mvp]" a écrit dans le message de
news:
re
oui, mais tu entre en texte, ce qui devrait étre en num
VALUES ( & strRéfCléTable1 & ", '" & strData & "');"

strRéfCléTable1 doit etre num, donc pas de ' '

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Alain TEYSSEDRE" a écrit dans
le


message de news:
Bonjour Pierre

Bon je vais essayer de mieux expliquer ..
Tout d'abord la réponse à ta question:

je comprends pas, tu veux ajouter des enregistrements qui ne
respectent



pas ta régle d'intégrité ??? alors enléve les régles mais
!!!!
sinon ajoute d'abord un enregistrement dans la table des 1, puis
dans




l'autre

=> Oui je veux ajouter des enregistrements
=> Mes enregistrements respectent la règle d'intégrité

En fait j'ai 2 tables qui ont la structure suivante:

Table 1
RéfCléTable1 = Champ AutoNum / clé primaire
Data1
Data2
...

Table2
RefCléTable2 = Champ Auto/Num
RéfCléTable1 = Champ Numérique
Data

Mon champ RéfCléTable1 de Table1 est Lié (coté 1) au champ
RéfCléTable1



de
Table2(Coté Plusieurs)

Mon instruction Insert Into vise à ajouter un enregistrement dans
Table



2 en
respectant l'intégrité de mes
données.

DoCmd.RunSQL "INSERT INTO Table2 (RéfCléTable1, Data)" _
& "VALUES ('" & strRéfCléTable1 & "', '" & strData & "');"

strRéfCléTable1 = string contenat la valeur de Table1.RéfCléTable1
strData = string contenant la valeur à insérer dans le champ data de
table2




Si j'ai aucune relation d'integrité ==> ça marche j'ai les bonnes
valeurs


Sinon ça ne marche pas ???

j'ai du rater un truc quelque part

@+
Alain















Avatar
Pierre CFI [mvp]
oui :o))) pas de progression sans erreurs...

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Alain TEYSSEDRE" a écrit dans le message de news:
Bon ça y est j'ai trouvé ...

en fait je faisais mon Insert Into dans Table 2, alors que j'étais en train
de faire un Add dans Table1 ==> résultat, je transmettais une valeur pas
encore
validée par l'Update (dans table1) à table 2 et patatra pour mes régles de
relation
entre table.

Bon ben ça s'appelle progresser je crois .. il est long le chemin ...

pierre merci encore pour ton aide

@+
Alain





"Alain TEYSSEDRE" a écrit dans le
message de news:
Merci Pierre pour ta remarque, effectivement il y avais problème de ce
coté

la.

Par contre je n'arrive pas à inserer les valeurs lorsque j'ai ma liaison
entre les tables:
- si je supprime ma liaison => tout est OK je copie mes valeurs
- si je crée ma liaison => aucune valeur n'est transmise ? (alors que ma
transmission
ne transgresse pas les règles de liason, c'est à dire que les valeurs
de

RéfCléTable1 de
Table2 correspondent aux bonnes valeurs (elles existents) de RéfCléTable1
de

Table1.

y a un truc qui m'échappe ...

@+
Alain



"Pierre CFI [mvp]" a écrit dans le message de
news:
re
oui, mais tu entre en texte, ce qui devrait étre en num
VALUES ( & strRéfCléTable1 & ", '" & strData & "');"

strRéfCléTable1 doit etre num, donc pas de ' '

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Alain TEYSSEDRE" a écrit dans
le


message de news:
Bonjour Pierre

Bon je vais essayer de mieux expliquer ..
Tout d'abord la réponse à ta question:

je comprends pas, tu veux ajouter des enregistrements qui ne
respectent



pas ta régle d'intégrité ??? alors enléve les régles mais
!!!!
sinon ajoute d'abord un enregistrement dans la table des 1, puis
dans




l'autre

=> Oui je veux ajouter des enregistrements
=> Mes enregistrements respectent la règle d'intégrité

En fait j'ai 2 tables qui ont la structure suivante:

Table 1
RéfCléTable1 = Champ AutoNum / clé primaire
Data1
Data2
...

Table2
RefCléTable2 = Champ Auto/Num
RéfCléTable1 = Champ Numérique
Data

Mon champ RéfCléTable1 de Table1 est Lié (coté 1) au champ
RéfCléTable1



de
Table2(Coté Plusieurs)

Mon instruction Insert Into vise à ajouter un enregistrement dans
Table



2 en
respectant l'intégrité de mes
données.

DoCmd.RunSQL "INSERT INTO Table2 (RéfCléTable1, Data)" _
& "VALUES ('" & strRéfCléTable1 & "', '" & strData & "');"

strRéfCléTable1 = string contenat la valeur de Table1.RéfCléTable1
strData = string contenant la valeur à insérer dans le champ data de
table2




Si j'ai aucune relation d'integrité ==> ça marche j'ai les bonnes
valeurs


Sinon ça ne marche pas ???

j'ai du rater un truc quelque part

@+
Alain