OVH Cloud OVH Cloud

difficulté requete inser into

5 réponses
Avatar
No mail
Bonjour,

J'ai suivi les conseils de certains d'entre vous depuis quelques jours.
Merci de toutes ces infos.
Malgré cela, je ne parviens pas à mes fins !
J'ai présenté ci-dessous ce que j'ai saisi. Pour info, j'ai saisi cela dans
un script d'édition car je travaille sur une base de données et un programme
déjà développé (Apibat) pour ceux qui connaissent.
Je cherche à copier les données d'une table à l'autre. Pour autre info, le
champ "code" est un champ d'index, je l'ai temporairement remplacé par 123.
Je souhaite après qu'il soit l'équivalent de +1 de la valeur précédente.

Je me pose la question de savoir si je ne ferai pas mieux d'appeler ce
"copier-coller" par une requete sous access.

Merci de vos infos

Freddy






PageDef "HautPage...BasPage"

FORM
demander "Choisissez le bon de frais à transférer en facturation client
[ATTENTION, OPERATION IRREVERSIBLE] : ",NumFactFour, Text, 10, FACFOU
FINFORM


INSERT INTO Facture (Code, NOFACTFOUR, Origine, Info, InfoSuite, TotalHT,
TotalTVA, TotalTTC, Fournisseur)
SELECT 123,FactureFour.Code, FactureFour.Date, FactureFour.Info,
FactureFour.InfoSuite, FactureFour.TotalHT, FactureFour.TotalTva,
FactureFour.TotalTTC, FactureFour.CodeFou
FROM FactureFour WHERE FactureFour.Code = NumFactFour;

INSERT INTO FactureLigne (Code, NumLig, CodeElem, Libelle, Qte, Deb)
SELECT 123, FactureFourLigne.NumLig, FactureFourLigne.CodeElem,
FactureFourLigne.Libelle, FactureFourLigne.Qte, FactureFourLigne.PA
FROM FactureFourLigne WHERE FactureFourLigne.NumLig = NumFactFour;

5 réponses

Avatar
Eric
Bonjour No mail

Je prends le fil en route donc je ne connais pas toutes les infos mais à
mon avis dans ta 2eme requete Insert Into, celle qui concerne les lignes
de facture il y a un prob sur la clause Where

elle devrait être du genre :
Where FactureFourLigne.NUMFACTURE = NumFactFour;
ou
Where FactureFourLigne.CODE = NumFactFour; dans le cas où CODE représente
le n° de facture

car je vois mal comment tu peux associer un numero de ligne de facture à
un numero de facture(WHERE FactureFourLigne.NumLig = NumFactFour).

De même à la relecture du code SQL du 1er INSERT INTO, la clause Where ne
devrait-elle pas être :
WHERE FactureFour.NOFACTFOUR = NumFactFour;

Il y a pour moi ambiguité sur tes champs

A+
Eric


"No mail" écrivait
news:4075c332$0$22854$:

Bonjour,

J'ai suivi les conseils de certains d'entre vous depuis quelques
jours. Merci de toutes ces infos.
Malgré cela, je ne parviens pas à mes fins !
J'ai présenté ci-dessous ce que j'ai saisi. Pour info, j'ai saisi cela
dans un script d'édition car je travaille sur une base de données et
un programme déjà développé (Apibat) pour ceux qui connaissent.
Je cherche à copier les données d'une table à l'autre. Pour autre
info, le champ "code" est un champ d'index, je l'ai temporairement
remplacé par 123. Je souhaite après qu'il soit l'équivalent de +1 de
la valeur précédente.

Je me pose la question de savoir si je ne ferai pas mieux d'appeler ce
"copier-coller" par une requete sous access.

Merci de vos infos

Freddy






PageDef "HautPage...BasPage"

FORM
demander "Choisissez le bon de frais à transférer en facturation
client
[ATTENTION, OPERATION IRREVERSIBLE] : ",NumFactFour, Text, 10, FACFOU
FINFORM


INSERT INTO Facture (Code, NOFACTFOUR, Origine, Info, InfoSuite,
TotalHT, TotalTVA, TotalTTC, Fournisseur)
SELECT 123,FactureFour.Code, FactureFour.Date, FactureFour.Info,
FactureFour.InfoSuite, FactureFour.TotalHT, FactureFour.TotalTva,
FactureFour.TotalTTC, FactureFour.CodeFou
FROM FactureFour WHERE FactureFour.Code = NumFactFour;

INSERT INTO FactureLigne (Code, NumLig, CodeElem, Libelle, Qte, Deb)
SELECT 123, FactureFourLigne.NumLig, FactureFourLigne.CodeElem,
FactureFourLigne.Libelle, FactureFourLigne.Qte, FactureFourLigne.PA
FROM FactureFourLigne WHERE FactureFourLigne.NumLig = NumFactFour;






Avatar
No mail
Bonjour,

Le "NumFactFour" est une variable récupérée par saisie dans le formulaire
lors du démarrage du script.
J'ai changé la clause Where, mais cela ne copie pas mes données dans la
table de destination.
Comment faire pour que cela soit efficace ?

Merci
Freddy
PS : n'ai-je pas intérêt à passer par une autre base avec des requetes sous
access. La base initiale est gérée par un logiciel en VBA.




"Eric" a écrit dans le message de
news:
Bonjour No mail

Je prends le fil en route donc je ne connais pas toutes les infos mais à
mon avis dans ta 2eme requete Insert Into, celle qui concerne les lignes
de facture il y a un prob sur la clause Where

elle devrait être du genre :
Where FactureFourLigne.NUMFACTURE = NumFactFour;
ou
Where FactureFourLigne.CODE = NumFactFour; dans le cas où CODE représente
le n° de facture

car je vois mal comment tu peux associer un numero de ligne de facture à
un numero de facture(WHERE FactureFourLigne.NumLig = NumFactFour).

De même à la relecture du code SQL du 1er INSERT INTO, la clause Where ne
devrait-elle pas être :
WHERE FactureFour.NOFACTFOUR = NumFactFour;

Il y a pour moi ambiguité sur tes champs

A+
Eric


"No mail" écrivait
news:4075c332$0$22854$:

Bonjour,

J'ai suivi les conseils de certains d'entre vous depuis quelques
jours. Merci de toutes ces infos.
Malgré cela, je ne parviens pas à mes fins !
J'ai présenté ci-dessous ce que j'ai saisi. Pour info, j'ai saisi cela
dans un script d'édition car je travaille sur une base de données et
un programme déjà développé (Apibat) pour ceux qui connaissent.
Je cherche à copier les données d'une table à l'autre. Pour autre
info, le champ "code" est un champ d'index, je l'ai temporairement
remplacé par 123. Je souhaite après qu'il soit l'équivalent de +1 de
la valeur précédente.

Je me pose la question de savoir si je ne ferai pas mieux d'appeler ce
"copier-coller" par une requete sous access.

Merci de vos infos

Freddy






PageDef "HautPage...BasPage"

FORM
demander "Choisissez le bon de frais à transférer en facturation
client
[ATTENTION, OPERATION IRREVERSIBLE] : ",NumFactFour, Text, 10, FACFOU
FINFORM


INSERT INTO Facture (Code, NOFACTFOUR, Origine, Info, InfoSuite,
TotalHT, TotalTVA, TotalTTC, Fournisseur)
SELECT 123,FactureFour.Code, FactureFour.Date, FactureFour.Info,
FactureFour.InfoSuite, FactureFour.TotalHT, FactureFour.TotalTva,
FactureFour.TotalTTC, FactureFour.CodeFou
FROM FactureFour WHERE FactureFour.Code = NumFactFour;

INSERT INTO FactureLigne (Code, NumLig, CodeElem, Libelle, Qte, Deb)
SELECT 123, FactureFourLigne.NumLig, FactureFourLigne.CodeElem,
FactureFourLigne.Libelle, FactureFourLigne.Qte, FactureFourLigne.PA
FROM FactureFourLigne WHERE FactureFourLigne.NumLig = NumFactFour;









Avatar
Eric
re,

As tu essayé la 1ere requête Insert Into ?
Remplit-elle la table des factures ?
Peux tu mettre un point d'arret dans ta proc pour voir ce que retourne la
clause where de ta requete car peut-etre que le prob est là
Il faudrait voir si tu dois pas définir dans une variable le corps de la
requête puis la passer à ton moteur

Si la définition du genre "Insert Into ... where WHERE FactureFour.Code =
NumFactFour;" est tout entre des "", à mon avis, la valeur de NumFactFour
n'est pas connu. Faudrait faire du genre :
"Insert Into .... where FactureFour.Code =" & NumFactFour (en supposant
NumFactFour Numérique & ";"

De plus, quel champ fait le lien entre la table des factures et la table
des lignes de factures?

Pour les lignes de facture c'est pareil. Par contre, il te faudra boucler
sur les diff n° de factures de la table nouvellement créée, donc créer un
recordset. Le jeu des factures en lecture pour récupérer les n° de lignes
correspondant à chaque n° de facture et les insérer dans la table des
lignes.

Je sais pas si j'ai été tres clair

A+
Eric


"No mail" écrivait
news:40767882$0$19497$:

Bonjour,

Le "NumFactFour" est une variable récupérée par saisie dans le
formulaire lors du démarrage du script.
J'ai changé la clause Where, mais cela ne copie pas mes données dans
la table de destination.
Comment faire pour que cela soit efficace ?

Merci
Freddy
PS : n'ai-je pas intérêt à passer par une autre base avec des requetes
sous access. La base initiale est gérée par un logiciel en VBA.




"Eric" a écrit dans le message de
news:
Bonjour No mail

Je prends le fil en route donc je ne connais pas toutes les infos
mais à mon avis dans ta 2eme requete Insert Into, celle qui concerne
les lignes de facture il y a un prob sur la clause Where

elle devrait être du genre :
Where FactureFourLigne.NUMFACTURE = NumFactFour;
ou
Where FactureFourLigne.CODE = NumFactFour; dans le cas où CODE
représente le n° de facture

car je vois mal comment tu peux associer un numero de ligne de
facture à un numero de facture(WHERE FactureFourLigne.NumLig >> NumFactFour).

De même à la relecture du code SQL du 1er INSERT INTO, la clause
Where ne devrait-elle pas être :
WHERE FactureFour.NOFACTFOUR = NumFactFour;

Il y a pour moi ambiguité sur tes champs

A+
Eric


"No mail" écrivait
news:4075c332$0$22854$:

Bonjour,

J'ai suivi les conseils de certains d'entre vous depuis quelques
jours. Merci de toutes ces infos.
Malgré cela, je ne parviens pas à mes fins !
J'ai présenté ci-dessous ce que j'ai saisi. Pour info, j'ai saisi
cela dans un script d'édition car je travaille sur une base de
données et un programme déjà développé (Apibat) pour ceux qui
connaissent. Je cherche à copier les données d'une table à l'autre.
Pour autre info, le champ "code" est un champ d'index, je l'ai
temporairement remplacé par 123. Je souhaite après qu'il soit
l'équivalent de +1 de la valeur précédente.

Je me pose la question de savoir si je ne ferai pas mieux d'appeler
ce "copier-coller" par une requete sous access.

Merci de vos infos

Freddy






PageDef "HautPage...BasPage"

FORM
demander "Choisissez le bon de frais à transférer en facturation
client
[ATTENTION, OPERATION IRREVERSIBLE] : ",NumFactFour, Text, 10,
FACFOU FINFORM


INSERT INTO Facture (Code, NOFACTFOUR, Origine, Info, InfoSuite,
TotalHT, TotalTVA, TotalTTC, Fournisseur)
SELECT 123,FactureFour.Code, FactureFour.Date, FactureFour.Info,
FactureFour.InfoSuite, FactureFour.TotalHT, FactureFour.TotalTva,
FactureFour.TotalTTC, FactureFour.CodeFou
FROM FactureFour WHERE FactureFour.Code = NumFactFour;

INSERT INTO FactureLigne (Code, NumLig, CodeElem, Libelle, Qte,
Deb) SELECT 123, FactureFourLigne.NumLig,
FactureFourLigne.CodeElem, FactureFourLigne.Libelle,
FactureFourLigne.Qte, FactureFourLigne.PA FROM FactureFourLigne
WHERE FactureFourLigne.NumLig = NumFactFour;













Avatar
Eric
Ooops

Pour les lignes de factures, tu peux faire plus simple : enchainer
derriere l'insertion de chaque facture. J'avais perdu de vue le probleme.

Eric

Eric écrivait
news::


re,

As tu essayé la 1ere requête Insert Into ?
Remplit-elle la table des factures ?
Peux tu mettre un point d'arret dans ta proc pour voir ce que retourne
la clause where de ta requete car peut-etre que le prob est là
Il faudrait voir si tu dois pas définir dans une variable le corps de
la requête puis la passer à ton moteur

Si la définition du genre "Insert Into ... where WHERE
FactureFour.Code = NumFactFour;" est tout entre des "", à mon avis, la
valeur de NumFactFour n'est pas connu. Faudrait faire du genre :
"Insert Into .... where FactureFour.Code =" & NumFactFour (en
supposant NumFactFour Numérique & ";"

De plus, quel champ fait le lien entre la table des factures et la
table des lignes de factures?

Pour les lignes de facture c'est pareil. Par contre, il te faudra
boucler sur les diff n° de factures de la table nouvellement créée,
donc créer un recordset. Le jeu des factures en lecture pour récupérer
les n° de lignes correspondant à chaque n° de facture et les insérer
dans la table des lignes.

Je sais pas si j'ai été tres clair

A+
Eric


"No mail" écrivait
news:40767882$0$19497$:

Bonjour,

Le "NumFactFour" est une variable récupérée par saisie dans le
formulaire lors du démarrage du script.
J'ai changé la clause Where, mais cela ne copie pas mes données dans
la table de destination.
Comment faire pour que cela soit efficace ?

Merci
Freddy
PS : n'ai-je pas intérêt à passer par une autre base avec des
requetes sous access. La base initiale est gérée par un logiciel en
VBA.




"Eric" a écrit dans le message de
news:
Bonjour No mail

Je prends le fil en route donc je ne connais pas toutes les infos
mais à mon avis dans ta 2eme requete Insert Into, celle qui concerne
les lignes de facture il y a un prob sur la clause Where

elle devrait être du genre :
Where FactureFourLigne.NUMFACTURE = NumFactFour;
ou
Where FactureFourLigne.CODE = NumFactFour; dans le cas où CODE
représente le n° de facture

car je vois mal comment tu peux associer un numero de ligne de
facture à un numero de facture(WHERE FactureFourLigne.NumLig >>> NumFactFour).

De même à la relecture du code SQL du 1er INSERT INTO, la clause
Where ne devrait-elle pas être :
WHERE FactureFour.NOFACTFOUR = NumFactFour;

Il y a pour moi ambiguité sur tes champs

A+
Eric


"No mail" écrivait
news:4075c332$0$22854$:

Bonjour,

J'ai suivi les conseils de certains d'entre vous depuis quelques
jours. Merci de toutes ces infos.
Malgré cela, je ne parviens pas à mes fins !
J'ai présenté ci-dessous ce que j'ai saisi. Pour info, j'ai saisi
cela dans un script d'édition car je travaille sur une base de
données et un programme déjà développé (Apibat) pour ceux qui
connaissent. Je cherche à copier les données d'une table à
l'autre. Pour autre info, le champ "code" est un champ d'index, je
l'ai temporairement remplacé par 123. Je souhaite après qu'il soit
l'équivalent de +1 de la valeur précédente.

Je me pose la question de savoir si je ne ferai pas mieux
d'appeler ce "copier-coller" par une requete sous access.

Merci de vos infos

Freddy






PageDef "HautPage...BasPage"

FORM
demander "Choisissez le bon de frais à transférer en facturation
client
[ATTENTION, OPERATION IRREVERSIBLE] : ",NumFactFour, Text, 10,
FACFOU FINFORM


INSERT INTO Facture (Code, NOFACTFOUR, Origine, Info, InfoSuite,
TotalHT, TotalTVA, TotalTTC, Fournisseur)
SELECT 123,FactureFour.Code, FactureFour.Date, FactureFour.Info,
FactureFour.InfoSuite, FactureFour.TotalHT, FactureFour.TotalTva,
FactureFour.TotalTTC, FactureFour.CodeFou
FROM FactureFour WHERE FactureFour.Code = NumFactFour;

INSERT INTO FactureLigne (Code, NumLig, CodeElem, Libelle, Qte,
Deb) SELECT 123, FactureFourLigne.NumLig,
FactureFourLigne.CodeElem, FactureFourLigne.Libelle,
FactureFourLigne.Qte, FactureFourLigne.PA FROM FactureFourLigne
WHERE FactureFourLigne.NumLig = NumFactFour;

















Avatar
No mail
Test fait sous access. Il m'indique violation des règles de validation. Je
regarde de plus près.
Merci


"Eric" a écrit dans le message de
news:

re,

As tu essayé la 1ere requête Insert Into ?
Remplit-elle la table des factures ?
Peux tu mettre un point d'arret dans ta proc pour voir ce que retourne la
clause where de ta requete car peut-etre que le prob est là
Il faudrait voir si tu dois pas définir dans une variable le corps de la
requête puis la passer à ton moteur

Si la définition du genre "Insert Into ... where WHERE FactureFour.Code > NumFactFour;" est tout entre des "", à mon avis, la valeur de NumFactFour
n'est pas connu. Faudrait faire du genre :
"Insert Into .... where FactureFour.Code =" & NumFactFour (en supposant
NumFactFour Numérique & ";"

De plus, quel champ fait le lien entre la table des factures et la table
des lignes de factures?

Pour les lignes de facture c'est pareil. Par contre, il te faudra boucler
sur les diff n° de factures de la table nouvellement créée, donc créer un
recordset. Le jeu des factures en lecture pour récupérer les n° de lignes
correspondant à chaque n° de facture et les insérer dans la table des
lignes.

Je sais pas si j'ai été tres clair

A+
Eric


"No mail" écrivait
news:40767882$0$19497$:

Bonjour,

Le "NumFactFour" est une variable récupérée par saisie dans le
formulaire lors du démarrage du script.
J'ai changé la clause Where, mais cela ne copie pas mes données dans
la table de destination.
Comment faire pour que cela soit efficace ?

Merci
Freddy
PS : n'ai-je pas intérêt à passer par une autre base avec des requetes
sous access. La base initiale est gérée par un logiciel en VBA.




"Eric" a écrit dans le message de
news:
Bonjour No mail

Je prends le fil en route donc je ne connais pas toutes les infos
mais à mon avis dans ta 2eme requete Insert Into, celle qui concerne
les lignes de facture il y a un prob sur la clause Where

elle devrait être du genre :
Where FactureFourLigne.NUMFACTURE = NumFactFour;
ou
Where FactureFourLigne.CODE = NumFactFour; dans le cas où CODE
représente le n° de facture

car je vois mal comment tu peux associer un numero de ligne de
facture à un numero de facture(WHERE FactureFourLigne.NumLig > >> NumFactFour).

De même à la relecture du code SQL du 1er INSERT INTO, la clause
Where ne devrait-elle pas être :
WHERE FactureFour.NOFACTFOUR = NumFactFour;

Il y a pour moi ambiguité sur tes champs

A+
Eric


"No mail" écrivait
news:4075c332$0$22854$:

Bonjour,

J'ai suivi les conseils de certains d'entre vous depuis quelques
jours. Merci de toutes ces infos.
Malgré cela, je ne parviens pas à mes fins !
J'ai présenté ci-dessous ce que j'ai saisi. Pour info, j'ai saisi
cela dans un script d'édition car je travaille sur une base de
données et un programme déjà développé (Apibat) pour ceux qui
connaissent. Je cherche à copier les données d'une table à l'autre.
Pour autre info, le champ "code" est un champ d'index, je l'ai
temporairement remplacé par 123. Je souhaite après qu'il soit
l'équivalent de +1 de la valeur précédente.

Je me pose la question de savoir si je ne ferai pas mieux d'appeler
ce "copier-coller" par une requete sous access.

Merci de vos infos

Freddy






PageDef "HautPage...BasPage"

FORM
demander "Choisissez le bon de frais à transférer en facturation
client
[ATTENTION, OPERATION IRREVERSIBLE] : ",NumFactFour, Text, 10,
FACFOU FINFORM


INSERT INTO Facture (Code, NOFACTFOUR, Origine, Info, InfoSuite,
TotalHT, TotalTVA, TotalTTC, Fournisseur)
SELECT 123,FactureFour.Code, FactureFour.Date, FactureFour.Info,
FactureFour.InfoSuite, FactureFour.TotalHT, FactureFour.TotalTva,
FactureFour.TotalTTC, FactureFour.CodeFou
FROM FactureFour WHERE FactureFour.Code = NumFactFour;

INSERT INTO FactureLigne (Code, NumLig, CodeElem, Libelle, Qte,
Deb) SELECT 123, FactureFourLigne.NumLig,
FactureFourLigne.CodeElem, FactureFourLigne.Libelle,
FactureFourLigne.Qte, FactureFourLigne.PA FROM FactureFourLigne
WHERE FactureFourLigne.NumLig = NumFactFour;