Bonjour

je bute sur un probleme : soit une requete ajout dont un des champs est normalement le produit d'une table avec une de mes variables VBA malheureusement ça plante car
Erreur d'exécution '3346':
le nombre de valeurs de la requête doit coincider avec le nombre de champs de destination.
il va sans dire qu'il n'y a pas un nombre de champs qui manque vraiment et quand je remplace ma variable par le nombre (0,78) je n'ai pas de pb

voici le code sur le sql 2 j'ai mis la donnée en valeur
dans le sql 2 j'ai mis la variable et la ça plante

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
Public Sub CalculDelaiSTK(ByVal dDeb As Date, ByVal dFin As Date)
 
    DoCmd.SetWarnings False
    Dim sql1, sql2, sql3 As String
    Dim dis As Variant
    dis = MsgBox(dDeb & " - " & dFin)
 
    'Efface la table calcul stockage
    sql1 = "delete * from tCalculStockage"
 
    'Rajoute les données par type fichier: d'abord le PVE ensuite le ZUVI
    sql2 = "INSERT INTO tCalculStockage ( [Sur Site], TypeAFFAIRE, [TGC?], CHASSIS, [Nb Chassis], PROPRIETAIRE, [DESTINATION FINALE], [DESTINATION TRANSPORT], DateIn, DateOut, DtDebStkTGC, DtDeb0, DtFin0, STK_RBL, STK_TGC, V_RBL, V_TGC ) SELECT ""Oui"" AS [Sur Site], Nz([AFFAIRE],""RBL Réseau"") AS TypeAFFAIRE, EstTGC([TypeAFFAIRE]) AS [TGC?], rEncours.CHASSIS, 1 AS [Nb Chassis], rEncours.PROPRIETAIRE, rEncours.[DESTINATION FINALE], rEncours.[DESTINATION TRANSPORT], rEncours.DateIn, CDate(0) AS DateOut, IIf([TGC?]=True,IIf([DateIn]<=#8/31/2017#,#8/31/2017#+1,[DateIn])+45,0) AS DtDebStkTGC, '" & dDeb & "'  AS DtDeb0, '" & dFin & "'  AS DtFin0, DelaiStkRBLMois([DtDeb0],[DtFin0],[DtDebStkTGC],[DateIn],[DateOut]) AS StockRBL, DelaiStkTGCMois([DtDeb0],[DtFin0],[DtDebStkTGC],[DateIn],[DateOut]) AS StockTGC, 0.78*[StockRBL] AS ValeurStckRBL, 0.78*[StockTGC] AS ValeurStckTGC FROM rEncours WHERE (((rEncours.[CODE CENTRE])=""cim0002S"")) ORDER BY rEncours.DateIn;"
    sql3 = "INSERT INTO tCalculStockage ( [Sur Site], TypeAFFAIRE, [TGC?], CHASSIS, [Nb Chassis], PROPRIETAIRE, [DESTINATION FINALE], [DESTINATION TRANSPORT], DateIn, DateOut, DtDebStkTGC, DtDeb0, DtFin0, STK_RBL, STK_TGC, V_RBL, V_TGC ) SELECT ""Non"" AS [Sur Site], Nz([AFFAIRES],""RBL Réseau"") AS TypeAFFAIRE, EstTGC([TypeAFFAIRE]) AS [TGC?], rSortie.chassis AS CHASSIS, 1 AS [Nb Chassis], rSortie.propriétaire AS PROPRIETAIRE, rSortie.[dest finale] AS [DESTINATION FINALE], rSortie.[dest tpt] AS [DESTINATION TRANSPORT], rSortie.DateIn, rSortie.DtSortie AS DateOut, IIf([TGC?]=True,IIf([DateIn]<=#8/31/2017#,#8/31/2017#+1,[DateIn])+45,0) AS DtDebStkTGC, '" & dDeb & "'  AS DtDeb0, '" & dFin & " '  AS DtFin0, DelaiStkRBLMois([DtDeb0],[DtFin0],[DtDebStkTGC],[DateIn],[DateOut]) AS StockRBL, DelaiStkTGCMois([DtDeb0],[DtFin0],[DtDebStkTGC],[DateIn],[DateOut]) AS StockTGC, " & lgPrixStockRBL & "*[StockRBL] AS ValeurStckRBL, " & lgPrixStockRBL & "*[StockTGC] AS ValeurStckTGC FROM rSortie ORDER BY rSortie.DateIn;"
    DoCmd.RunSQL sql1
    DoCmd.RunSQL sql2
    DoCmd.RunSQL sql3
 
    'reactive les alerte
    DoCmd.SetWarnings True
 
    'Affiche les requête
    DoCmd.OpenQuery "rCalculStockage_RBL"
    DoCmd.OpenQuery "rCalculStockage_TGC"
 
End Sub