Le code suivant ne modifie pas la ligne sélectionnée dans une ListView qui fait appel à une base sqlite.
Sur ma GUI, j'ai une ListView et un formulaire permettant de modifier la base.
Un bouton [Modifier] envoie la fonction contenant le code suivant :
Code : Tout sélectionner
;Sélection par un clic de souris sur la ligne de la ListView à modifier :
if GUICtrlRead(GUICtrlRead($ListViewJournal)) <> 0 Then
Local $message = ""
$message = StringSplit(GUICtrlRead(GUICtrlRead($ListViewJournal)),"|")
;Appel à l'enregistrement correspondant de la base SQLite :
Local $aResult, $hQuery
_SQlite_Query (-1, "SELECT * FROM journal WHERE id='" & $message[1] &"';", $hQuery)
_SQLite_FetchData ($hQuery, $aResult)
_SQLite_QueryFinalize($hQuery)
;Remplissage du formulaire affichant les données de la ligne du ListView sélectionnée, destinées à être modifiées :
GUICtrlSetData($labelId, $aResult[0])
GUICtrlSetData($inputDate, $aResult[1])
GUICtrlSetData($inputLibelle, $aResult[2])
GUICtrlSetData($inputMoyen, $aResult[3])
GUICtrlSetData($inputCategorie, $aResult[4])
GUICtrlSetData($inputDebit, $aResult[5])
;$aResult[6] non modifié
GUICtrlSetData($inputCredit, $aResult[7])
Code : Tout sélectionner
$Id = GuiCtrlRead($labelId)
$date = GuiCtrlRead($inputDate)
$libelle = GuiCtrlRead($inputLibelle)
$moyen = GuiCtrlRead($inputMoyen)
$categorie = GuiCtrlRead($inputCategorie)
$debit = GuiCtrlRead($inputDebit)
$rapprochement = ""
$credit = GuiCtrlRead($inputCredit)
_SQLite_Exec(-1, "UPDATE journal SET " & _
"id = '" & $Id & "', " & _
"date = '" & $date & "', " & _
"libelle = " & _SQLite_FastEscape($libelle) & ", " & _
"moyen = " & _SQLite_FastEscape($moyen) & ", " & _
"categorie = " & _SQLite_FastEscape($categorie) & ", " & _
"debit = '" & $debit & "', " & _
"rapprochement = '" & $rapprochement & "', " & _
"credit = '" & $credit & "' " & _
"WHERE id = " & $Id & ";")
Je vous remercie de votre aide.