1 pièce(s) jointe(s)
Wrong data type: java.lang.NumberFormatException: For input string
Bonsoir,
Encore des soucis avec ma base de données. J' en suis au stade de vouloir sauvegarder la montant de la ligne dans la table "T_DvsDtl".
Pour se faire, je suis en train de développer une macro dans le module Bdd qui se nomme MntLgn.
Pour se faire et afin de simplifier la démarche, j' ai rentré des critère numériques dans les conditions Whère.
Chaque fois que je teste la macro, je bute sur la dernière partie de la macro à savoir, Insertion du résultat. Le système me renvoie le message cité dans l' intitulé.
Voici donc le code incriminé:
Code:
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
| Sub MntLgn()
Dim Cnx as Object, Stmt as Object, RslVlm as Object,RslTrf as Object, RslCff as Object
Dim SqlVlm as string, SqlTrf as string, SqlCff as string, SqlInt as string, Rqt as object
Dim VlmBrt as Double, Trf as double, Cff as double, SsTtl as Double
Cnx = ThisDatabasedocument.CurrentController.ActiveConnection
Stmt=Cnx.createStatement()
'---Calcul du volume brut---
SqlVlm = "SELECT (LngCmp * LrgCmp * PsrCmp * Qts) as Vlm from T_DvsDtl"&_
" where Cf_Dvs = 0 and Cf_Prd = 0 and Cf_PrdNmc = 0"
RslVlm = Stmt.executeQuery(SqlVlm)
RslVlm.next
VlmBrt = RslVlm.getColumns().getByName("Vlm").getString()
'---Tarif article---
SqlTrf = "SELECT T_RtcTrf.RtcTrf, T_DvsDtl.Cf_Dvs, T_DvsDtl.Cf_Prd,"&_
" T_DvsDtl.Cf_PrdNmc FROM T_DvsDtl, T_RtcTrf WHERE T_DvsDtl.Cf_RtcTrf ="&_
"T_RtcTrf.Cf_RtcTrf AND T_DvsDtl.Cf_Dvs = 0 AND T_DvsDtl.Cf_Prd = 0"&_
" AND T_DvsDtl.Cf_PrdNmc = 0"
RslTrf = Stmt.executeQuery(SqlTrf)
RslTrf.next
Trf = RslTrf.getColumns().getByName("RtcTrf").getString()
'---Coefficient de débit---
SqlCff = "SELECT T_MtrCff.VlrCff, T_DvsDtl.Cf_Dvs, T_DvsDtl.Cf_Prd,"&_
" T_DvsDtl.Cf_PrdNmc FROM T_MtrCff, T_DvsDtl WHERE T_MtrCff.Cf_MtrCff ="&_
"T_DvsDtl.Cf_MtrCff AND T_DvsDtl.Cf_Dvs = 0 AND T_DvsDtl.Cf_Prd = 0"&_
" AND T_DvsDtl.Cf_PrdNmc = 0"
RslCff = Stmt.executeQuery(SqlCff)
RslCff.next
Cff = RslCff.getColumns().getByName("VlrCff").getString()
'---Calcul Final---
'Msgbox VlmBrt &" - "& Trf &" -"&Cff
SsTtl = (VlmBrt * Trf * Cff)/1000000000
'---Insertion du résultat----
SqlInt = "INSERT INTO ""T_DvsDtl""(""MntLgn"") Values('"& SsTtl &"')"&_
" WHERE ""T_DvsDtl.Cf_Dvs"" = ' 0 ' AND ""T_DvsDtl.Cf_PrdNmc"" = ' 0 '"
Rqt = Stmt.executeQuery(SqlInt)
Rqt.close
Stmt.close
End Sub |
Je joins également ma base. Pour info, vous pouvez la testé sans ouvrir de formulaire.
Cordialement
Abandon de cette solution
Bonsoir,
N' arrivant pas à trouver de solution sur les sites traitant de LibreOffice et Basic, j' ai laissé tombé cette solution.
J' ai modifié le principe de fonctionnement du chiffrage de la matière. Depuis, j' ai rencontré d' autres problèmes, je ferme cette discussion et vais en ouvrir une autre.
Bonne continuation.