Bonjour à Tous,

Lors d'une mise à jour d'inventaire, je dois faire un UPDATE si l'article est déjà en stock et un INSERT si l'uvc n'était pas en stock lors de la mémorisation.

Mon souci est que dans le code ci-dessous, la mise à jour se fait bien (Update), mais pas l'INSERT.
Et je ne vois plus où je peut faire une erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
SI OuiNon("Confirmer la mise à jour de l'inventaire numéro : '"+COMBO_MISSION+"' ") = Oui  ALORS
	//MISE A JOUR DE LA TABLE INVENTAIRES - COLONNE INVE_QTE_INV
	sEtat est une chaîne="2"
i est un entier
j est un entier
nVariable est un entier
POUR i = 1 A TableOccurrence(TABLE_ECART)
	sRequêteCtrlStocks est une chaîne
	sRequêteCtrlStocks="SELECT INVE_ARTICLE FROM INVENTAIRES WHERE INVE_ARTICLE='"+TABLE_ECART.COL_UVC[i]+"' "
	SI EnModeTest() ALORS Trace(sRequêteCtrlStocks)
	SI SQLExec(sRequêteCtrlStocks,"ReqCtrlStocks") ALORS
			SI	SQLAvance("ReqCtrlStocks") = 0 ALORS
				nVariable=SQLLitCol("ReqCtrlStocks", 1)
		sRequêteMAJ_INV est une chaîne
		sRequêteMAJ_INV="UPDATE INVENTAIRES SET INVE_QTE_INV = '"+TABLE_ECART.COL_QTE_INV[i]+"',INVE_ETAT='"+sEtat+"',INVE_DATE_INV ='"+DateSys()+"' WHERE INVE_ARTICLE='"+TABLE_ECART.COL_UVC[i]+"' "+...
		"AND INVE_NUM='"+COMBO_MISSION+"' "
		SI EnModeTest() ALORS Trace("Maj_Inv - ",sRequêteMAJ_INV)
		SI SQLExec(sRequêteMAJ_INV,"ReqMAJ_INV") ALORS
 
		FIN
		sRequêteMAJ_STOCK est une chaîne
		sRequêteMAJ_STOCK="UPDATE STOCKS SET STOC_QUANTITE = '"+TABLE_ECART.COL_QTE_INV[i]+"' WHERE STOC_ARTICLE='"+TABLE_ECART.COL_UVC[i]+"' "
		SI EnModeTest() ALORS Trace("Maj_Inv - ",sRequêteMAJ_STOCK)
		SI SQLExec(sRequêteMAJ_STOCK,"ReqMAJ_STOCK") ALORS
 
		FIN
	SINON
		//INSERTION DES DONNEES INEXISTANTES
		EMPL est une chaîne="R-RECEP"
		sRequêteInsertINV est une chaîne
		sRequêteInsertINV="INSERT INTO INVENTAIRES (INVE_NUM,INVE_SITE,INVE_PROPRIETAIRE,INVE_EMPLACEMENT,INVE_ARTICLE,INVE_QTE_INV,INVE_ETAT,INVE_DATE_INV) "+...
		"VALUES('"+TABLE_ECART.COL_NUM[i]+"','"+TABLE_ECART.COL_SITE[i]+"','"+TABLE_ECART.COL_PROPRIETAIRE[i]+"','"+EMPL+"','"+TABLE_VISUALISATION.COL_ART_CODE[j]+"',"+...
		"'"+TABLE_VISUALISATION.COL_QUANTITE[j]+"','"+DateSys()+"') "
		SI EnModeTest() ALORS Trace("Insert_Inv - ",sRequêteInsertINV)
		SI SQLExec(sRequêteInsertINV,"Req_Insert_INV") ALORS
 
		FIN
	FIN	
	FIN
FIN
SINON
	Ferme()
FIN
Peut être qu'avec un autre œil, j'aurais plus de chance

Par avance, merci beaucoup