Je développe actuellement un petit logiciel pour la gestion de matériel. La base de données est SQLite.
Pour le moment tout ce passe bien, j'arrive à créer, enregistrer, modifier les données... Jusque là tout est OK.
Je voudrais colorer une ligne sur 2 de ma ListView pour un confort visuel.
Mikell m'avais aidé sur ce POST similaire http://www.autoitscript.fr/forum/viewto ... =3&t=10699, mais là je n'arrive pas à récupérer le nombre de ligne enregistrées dans ma base SQLite...
Je sais qu'il existe la fonction
Code : Tout sélectionner
_SQLite_LastInsertRowID()Je joins mon code complet, IL FAUT CRÉER UN FICHIER "FAMILLE.INI", pour modifier ou faire un retrait, il faut sélectionner une ligne au préalable.
Merci par avance.
► Afficher le texte
Code : Tout sélectionner
[FAMILLE]
1=TOTO
2=TATA
3=TUTU► Afficher le texte
Code : Tout sélectionner
;==[ Création ]========:        27/03/2014
;==[ Auteur ]==========:        MySelf
;==[ Service ]=========:
;==[ Description ]=====:        Gestion magasin de proximité
;==[ Modification ]====:        **/**/****
;==[ Nature modification ]====:
        ;==[**/**/20*** ****************************************]========
        ;==[**/**/20*** ****************************************]========
        ;==[**/**/20*** ****************************************]========
        ;==[**/**/20*** ****************************************]========
;==[Les Includes]====
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
;#include <ArrayFileToArray.au3>
#include <Timers.au3>
#include <SendMessage.au3>
#include <ProgressConstants.au3>
#include <GuiStatusBar.au3>
#include <Date.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>
#include <ComboConstants.au3>
;==[Variables Globales]==========
Global $DB = @ScriptDir & "\ProxiMagMOE2.db"
Global $Table = "Material"
Global $User = @UserName
Global $hGui, $aLV_Click_Info, $hTmp_Edit, $fDblClk = False, $List1, $GUI, $iTimer1, $hStatus, $aParts[3] = [250, 400, 200]
Global $aTableau1, $Path, $Date, $Station, $PointMesure, $NomFichier, $Extension, $FullPathFile, $nb_col, $NbLineInDB, $hListView, $IndexItemListView
;==[Création Base SQLite]==========
SplashTextOn("", "Chargement données en cours...", 450, 55, -1, -1, 49)
_SQLite_Startup()
If @error Then
    MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
    Exit - 1
EndIf
If Not FileExists($DB) Then
    $Reponse = MsgBox(16, "ProxiMagMOE2 Admin", "Base de données introuvable." & @CRLF & "Contactez le responsable application.")
        If StringUpper(@UserName) = $User Then
                If $Reponse = 1 Then
                _CreateDB()
        Else
                Exit
        EndIf
        EndIf
EndIf
;==[Récupération du nom des colonnes de la Table "Material" dans un tableau]==========
_SQLite_Open($DB)
        If @error > 0 Then Exit MsgBox(16, "SQLite Error", "Impossible de créer la Base de donnée!")
                $names = _GetColNames("Material")
                ;_ArrayDisplay($names, "Nom des colonnes")
SplashOff()
_MainGui()
Func _MainGui()
;==[Création du GUI]===============================================================================================
        $GUI =  GUICreate("Magasin de Proximité - Powered By MySelf", 1200, 800, -1, -1, -1, -1)
        $Label1 = GUICtrlCreateLabel("Quantité retirée:", 8, 10, 97, 20)
        Global $Input1 = GUICtrlCreateInput("1", 112, 8, 89, 24, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $ES_READONLY))
        GUICtrlSetLimit(-1, 3)
        $bQuantiteDown = GUICtrlCreateButton("-", 216, 8, 75, 25)
        $bQuantiteUp = GUICtrlCreateButton("+", 296, 8, 75, 25)
        $bValiderRetrait = GUICtrlCreateButton("Valider le retrait", 8, 48, 155, 25)
        $bNewEntry = GUICtrlCreateButton("Nouvelle entrée", 8, 80, 155, 25)
        $bModify = GUICtrlCreateButton("Modifier entrée", 8, 112, 155, 25)
        ;==[On masque si pas administrateur]==========
        If StringUpper(@UserName) <> $User Then
                GUICtrlSetState($bNewEntry, $GUI_HIDE)
                GUICtrlSetState($bModify, $GUI_HIDE)
        EndIf
        $ligne1 = ""
        For $i = 0 to UBound($names)-1    ; nb de colonnes
                $ligne1 &= $names[$i] & "|"
        Next
        ;==[Création de ma ListView]==========
        $hListView = GUICtrlCreateListView($ligne1, 0, 250, 1200, 500, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))
        $List1 = GuiCtrlGetHandle($hListView)
        _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
        GUICtrlSetFont($hListView, -1, 400)
        GUICtrlSetBkColor($hListView, $GUI_BKCOLOR_LV_ALTERNATE)
        _GUICtrlListView_DeleteAllItems($hListView)
        _GUICtrlListView_HideColumn($hListView, 0)
        _LoadSQLiteData()
        GUISetState(@SW_SHOW)
        ;AdlibRegister("_MoveGui")
        ;GUIRegisterMsg($WM_SIZE, "WM_SIZE"
        GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
        $Msg = GUIGetMsg()
        Select
                Case $Msg = $GUI_EVENT_CLOSE
                        _SQLite_Close()
                        _SQLite_Shutdown()
                        Exit
                Case $Msg = $bQuantiteDown
                        If GUICtrlRead($Input1) = 1 Then
                                GUICtrlSetData($Input1, "1")
                        Else
                                GUICtrlSetData($Input1, GUICtrlRead($Input1) - 1)
                        EndIf
                Case $Msg = $bQuantiteUp
                        GUICtrlSetData($Input1, GUICtrlRead($Input1) + 1)
                Case $Msg = $bNewEntry
                        _PopUp()
                Case $Msg = $bModify
                        _ModifyEntryDB()
                Case $Msg = $bValiderRetrait
                        _ModifyQuantityStock()
        EndSelect
WEnd
EndFunc
Func _PopUp()
        Global $Info = GUICreate("ProxiMagMOE2 - Nouvelle entrée", 382, 358, 650, 273)
        $Label1 = GUICtrlCreateLabel("Emplacement:", 8, 10, 90, 20)
        Global $iEmplacement = GUICtrlCreateInput("", 104, 8, 153, 24)
        $Label2 = GUICtrlCreateLabel("Famille:", 48, 42, 51, 20)
        Global $iDesignation = GUICtrlCreateInput("", 104, 72, 153, 24)
        Global $iReference = GUICtrlCreateInput("", 104, 104, 153, 24)
        Global $iRefMHP = GUICtrlCreateInput("", 104, 136, 153, 24)
        Global $iStock = GUICtrlCreateInput("", 104, 168, 153, 24, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
        Global $iFabricant = GUICtrlCreateInput("", 104, 200, 153, 24)
        Global $iFournisseur = GUICtrlCreateInput("", 104, 232, 153, 24)
        Global $iObservations = GUICtrlCreateInput("", 104, 264, 153, 24)
        $Label3 = GUICtrlCreateLabel("Désignation:", 24, 74, 79, 20)
        $Label4 = GUICtrlCreateLabel("Référence:", 32, 106, 70, 20)
        $Label5 = GUICtrlCreateLabel("Référence MHP:", 0, 138, 103, 20)
        $Label6 = GUICtrlCreateLabel("Stock:", 64, 170, 41, 20)
        $Label7 = GUICtrlCreateLabel("Fabricant:", 40, 202, 63, 20)
        $Label8 = GUICtrlCreateLabel("Fournisseur:", 24, 234, 77, 20)
        $Label9 = GUICtrlCreateLabel("Observations:", 16, 266, 87, 20)
        $bValiderNewEntry = GUICtrlCreateButton("Valider", 72, 304, 75, 25)
        $bCancelNewEntry = GUICtrlCreateButton("Annuler", 240, 304, 75, 25)
        Global $cFamille = GUICtrlCreateCombo("", 104, 40, 153, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST))
        ;Ajout items dans la ComboBox via le fichier Config.ini
        Local $CAT = IniReadSection(@ScriptDir & "\Famille.ini", "FAMILLE")
                If @error Then
                        MsgBox(48, "Administrateur", "Erreur d'ouverture fichier Config.ini." & @CRLF & "-> Sortie de programme")
                        Exit
                Else
                        For $i = 1 To $CAT[0][0]
                                GUICtrlSetData($cFamille, $CAT[$i][1])
                        Next
                EndIf
        GUISetState(@SW_SHOW)
While 1
        $Msg = GUIGetMsg()
        Select
                Case $Msg = $GUI_EVENT_CLOSE
                        GUIDelete($Info)
                        ExitLoop
                Case $Msg = $bValiderNewEntry
                        _CheckNewEntry()
                        ;GUIDelete($Info)
                        ;ExitLoop
                Case $Msg = $bCancelNewEntry
                        GUIDelete($Info)
                ExitLoop
        EndSelect
WEnd
EndFunc
Func _PopUpModify()
        Local $hQuery, $aRow, $sMsg
    ;_SQLite_Open ($bdd)
        $IndexItemListView = _GUICtrlListView_GetNextItem($hListView)
        Global $aItem = _GUICtrlListView_GetItemText($hListView, $IndexItemListView)
        _SQlite_Query (-1, "SELECT * FROM " & $Table & " WHERE ID = " & $aItem & ";", $hQuery) ; the query
        While _SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK
        $sMsg &= $aRow[0] & "|" &$aRow[1] & "|" &$aRow[2] & "|" &$aRow[3] & "|" &$aRow[4] & "|" &$aRow[5] & "|" &$aRow[6] & "|" &$aRow[7] & "|" &$aRow[8] & "|" &$aRow[9]
    WEnd
        $aRow=StringSplit($sMsg,"|")
        Global $Info2 = GUICreate("ProxiMagMOE2 - Nouvelle entrée", 382, 358, 650, 273)
        $Label1 = GUICtrlCreateLabel("Emplacement:", 8, 10, 90, 20)
        Global $iEmplacement2 = GUICtrlCreateInput("", 104, 8, 153, 24)
        $Label2 = GUICtrlCreateLabel("Famille:", 48, 42, 51, 20)
        Global $iDesignation2 = GUICtrlCreateInput("", 104, 72, 153, 24)
        Global $iReference2 = GUICtrlCreateInput("", 104, 104, 153, 24)
        Global $iRefMHP2 = GUICtrlCreateInput("", 104, 136, 153, 24)
        Global $iStock2 = GUICtrlCreateInput("", 104, 168, 153, 24, BitOR($GUI_SS_DEFAULT_INPUT,$ES_NUMBER))
        Global $iFabricant2 = GUICtrlCreateInput("", 104, 200, 153, 24)
        Global $iFournisseur2 = GUICtrlCreateInput("", 104, 232, 153, 24)
        Global $iObservations2 = GUICtrlCreateInput("", 104, 264, 153, 24)
        $Label3 = GUICtrlCreateLabel("Désignation:", 24, 74, 79, 20)
        $Label4 = GUICtrlCreateLabel("Référence:", 32, 106, 70, 20)
        $Label5 = GUICtrlCreateLabel("Référence MHP:", 0, 138, 103, 20)
        $Label6 = GUICtrlCreateLabel("Stock:", 64, 170, 41, 20)
        $Label7 = GUICtrlCreateLabel("Fabricant:", 40, 202, 63, 20)
        $Label8 = GUICtrlCreateLabel("Fournisseur:", 24, 234, 77, 20)
        $Label9 = GUICtrlCreateLabel("Observations:", 16, 266, 87, 20)
        $bValiderNewEntry = GUICtrlCreateButton("Valider", 72, 304, 75, 25)
        $bCancelNewEntry = GUICtrlCreateButton("Annuler", 240, 304, 75, 25)
        Global $cFamille2 = GUICtrlCreateCombo("", 104, 40, 153, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $CBS_DROPDOWNLIST))
        ;Ajout items dans la ComboBox via le fichier Config.ini
        Local $CAT = IniReadSection(@ScriptDir & "\Famille.ini", "FAMILLE")
                If @error Then
                        MsgBox(48, "Administrateur", "Erreur d'ouverture fichier Config.ini." & @CRLF & "-> Sortie de programme")
                        Exit
                Else
                        For $i = 1 To $CAT[0][0]
                                GUICtrlSetData($cFamille2, $CAT[$i][1])
                        Next
                EndIf
        GUICtrlSetData($iEmplacement2, $aRow[2])
        GUICtrlSetData($iDesignation2, $aRow[4])
        GUICtrlSetData($iReference2, $aRow[5])
        GUICtrlSetData($iRefMHP2, $aRow[6])
        GUICtrlSetData($iStock2, $aRow[7])
        GUICtrlSetData($iFabricant2, $aRow[8])
        GUICtrlSetData($iFournisseur2, $aRow[9])
        GUICtrlSetData($iObservations2, $aRow[10])
        GUISetState(@SW_SHOW)
While 1
        $Msg = GUIGetMsg()
        Select
                Case $Msg = $GUI_EVENT_CLOSE
                        GUIDelete($Info2)
                        ExitLoop
                Case $Msg = $bValiderNewEntry
                        _UpDateDB()
                        GUIDelete($Info2)
                        ExitLoop
                Case $Msg = $bCancelNewEntry
                        GUIDelete($Info2)
                ExitLoop
        EndSelect
WEnd
EndFunc
Func _UpDateDB()
        _SQLite_Exec (-1, "UPDATE  " & $Table & " SET Emplacement = '" & GUICtrlRead($iEmplacement2) & "', Famille = '" & GUICtrlRead($cFamille2) & "', Désignation = '" & GUICtrlRead($iDesignation2) & "', Référence = '"& GUICtrlRead($iReference2) & "', MHP = '" & GUICtrlRead($iRefMHP2) & "', Stock = '" & GUICtrlRead($iStock2) & "', Fabricant = '" & GUICtrlRead($iFabricant2) & "', Fournisseur = '" & GUICtrlRead($iFournisseur2)  & "', Observations = '" & GUICtrlRead($iObservations2) & "' WHERE ID = "& $aItem & ";")
        _LoadSQLiteData()
EndFunc
Func _ModifyQuantityStock()
    Local $hQuery, $aRow, $sMsg, $PartToRemove
    If _GUICtrlListView_GetNextItem($hListView) = -1 And _GUICtrlListView_GetItemText($hListView, $IndexItemListView) = "" Then Return
        $IndexItemListView = _GUICtrlListView_GetNextItem($hListView)
        $aItem = _GUICtrlListView_GetItemText($hListView, $IndexItemListView)
        ;On récupère la quantité de la base SQLite
        _SQlite_Query (-1, "SELECT * FROM " & $Table & " WHERE ID = " & $aItem & ";", $hQuery) ; the query
        While _SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK
            $sMsg &= $aRow[6]
        WEnd
    If $sMsg = 0 Then Return
    If StringUpper(@UserName) = $User And _GUICtrlListView_GetNextItem($hListView) <> -1 Then
        $Question = MsgBox(68, "ProxiMagMOE2", "Voulez-vous retirer " & GUICtrlRead($Input1) & " " & _GUICtrlListView_GetItemText($hListView, $IndexItemListView, 3) & " du stock?" , -1, $GUI)
        If $Question = 6 Then
            If Number(GUICtrlRead($Input1)) > Number($sMsg) Then
                MsgBox(16, "ProxiMagMOE2", "Le nombre de pièce à retirer est supérieur au stock actuel.")
                Return
            Else
                $PartToRemove = $sMsg - GUICtrlRead($Input1)
            EndIf
        If $PartToRemove = 0 Then
            MsgBox(0, "", "Plus de pièces en stock après retrait" & @CRLF & "Contactez le responsable pièce de rechange.")
            _SQLite_Exec (-1, "UPDATE  " & $Table & " SET Stock = '" & $PartToRemove & "' WHERE ID = "& $aItem & ";")
        Else
            _SQLite_Exec (-1, "UPDATE  " & $Table & " SET Stock = '" & $PartToRemove & "' WHERE ID = "& $aItem & ";")
        EndIf
        _LoadSQLiteData()
        Else
            Return
        EndIf
    EndIf
EndFunc
Func _CheckNewEntry()
        Select
                Case GUICtrlRead($iEmplacement) = ""
                        MsgBox(48, "Administrateur" , "Veuillez saisir un emplacement!" & @CRLF & "Exemple: E0.2.1.01", -1, $Info)
                        Return
                Case GUICtrlRead($cFamille) = ""
                        MsgBox(48, "Administrateur", "Veuillez choisir une famille!", -1, $Info)
                        Return
                Case GUICtrlRead($iDesignation) = ""
                        MsgBox(48, "Administrateur", "Veuillez saisir une désignation!", -1, $Info)
                        Return
                Case GUICtrlRead($iReference) = ""
                        MsgBox(48, "Administrateur", "Veuillez saisir une référence!", -1, $Info)
                        Return
                Case GUICtrlRead($iRefMHP) = ""
                        MsgBox(48, "Administrateur", "Veuillez saisir une référence MHP!", -1, $Info)
                        Return
                Case GUICtrlRead($iStock) = ""
                        MsgBox(48, "Administrateur", "Veuillez saisir un stock!", -1, $Info)
                        Return
                Case GUICtrlRead($iFabricant) = ""
                        MsgBox(48, "Administrateur", "Veuillez saisir un fabricant!", -1, $Info)
                        Return
                Case GUICtrlRead($iFournisseur) = ""
                        MsgBox(48, "Administrateur", "Veuillez saisir un fournisseur!", -1, $Info)
                        Return
                Case GUICtrlRead($iObservations) = ""
                        MsgBox(48, "Administrateur", "Veuillez saisir une observation!", -1, $Info)
                        Return
        EndSelect
        _InsertDataIntoDB()
EndFunc
Func _LoadSQLiteData()
        _GUICtrlListView_DeleteAllItems($hListView)
        Local $hQuery, $aRow, $sMsg, $iRows, $iCols
        If @error > 0 Then Exit MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
        $DB = _SQLite_Open("ProxiMagMOE2.db")
        If @error > 0 Then Exit MsgBox(16, "SQLite Error", "Can't Load Database!")
        _SQLite_Query ($DB, "SELECT * FROM Material", $hQuery )
        While (_SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK)
                GUICtrlCreateListViewItem($aRow[0] & "|" & $aRow[1] & "|" & $aRow[2] & "|" & $aRow[3] & "|" & $aRow[4] & "|" & $aRow[5] & "|" & $aRow[6] & "|" & $aRow[7] & "|" & $aRow[8] & "|" & $aRow[9], $hListView)
        WEnd
EndFunc
Func _CreateDB()
        _SQLite_Open($DB)
                If @error > 0 Then Exit MsgBox(16, "SQLite Error", "Impossible de créer la Base de donnée!")
                _SQLite_Exec(-1, "CREATE TABLE " & $Table & " (ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, Emplacement ,Famille, Désignation, Référence, MHP, Stock, Fabricant, Fournisseur, Observations);")
    ;_SQLite_Close()
EndFunc
Func _InsertDataIntoDB()
        If @error > 0 Then Exit MsgBox(16, "SQLite Error", "Impossible de lire la Base de donnée!")
        _SQLite_Exec(-1, "Insert Into Material Values (NULL, " & _
                                                        "'"    & GUICtrlRead($iEmplacement)     & _
                                                        "', '" & GUICtrlRead($cFamille)         & _
                                                        "', '" & GUICtrlRead($iDesignation)     & _
                                                        "', '" & GUICtrlRead($iReference)       & _
                                                        "', '" & GUICtrlRead($iRefMHP)          & _
                                                        "', '" & GUICtrlRead($iStock)           & _
                                                        "', '" & GUICtrlRead($iFabricant)       & _
                                                        "', '" & GUICtrlRead($iFournisseur)     & _
                                                        "', '" & GUICtrlRead($iObservations)    & _
                                                        "');")
        MsgBox(64, "ProxiMagMOE2", "Données correctement enregistrées dans la base de données.", -1, $Info)
        GUICtrlSetData($iEmplacement, "")
        GUICtrlSetData($iDesignation, "")
        GUICtrlSetData($iReference, "")
        GUICtrlSetData($iRefMHP, "")
        GUICtrlSetData($iStock, "")
        GUICtrlSetData($iFabricant, "")
        GUICtrlSetData($iFournisseur, "")
        GUICtrlSetData($iObservations, "")
        _LoadSQLiteData()
EndFunc
Func _ModifyEntryDB()
        If _GUICtrlListView_GetNextItem($hListView) = -1 And _GUICtrlListView_GetItemText($hListView, $IndexItemListView) = "" Then Return
        $IndexItemListView = _GUICtrlListView_GetNextItem($hListView)
        $aItem = _GUICtrlListView_GetItemText($hListView, $IndexItemListView)
        If StringUpper(@UserName) = $User And _GUICtrlListView_GetNextItem($hListView) <> -1 Then
                $Question = MsgBox(68, "ProxiMagMOE2", "Voulez-vous modifier l'entrée " & _GUICtrlListView_GetItemText($hListView, $IndexItemListView, 3) & "?" , -1, $GUI)
                If $Question = 6 Then
                        _PopUpModify()
                Else
                        Return
                EndIf
        EndIf
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $tInfo, $Index, $tNMITEMACTIVATE, $Index2
    Local $hQuery
    Local $hWndListView = $hListView
    If Not IsHWnd($hWndListView) Then $hWndListView = GUICtrlGetHandle($hListView)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $tNMITEMACTIVATE = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    $Index = DllStructGetData($tNMHDR, "Index")
    $Index2 = DllStructGetData($tNMITEMACTIVATE, 'Index')
    Switch $hWndFrom
                Case $hWndListView
            Switch $iCode
                                Case $NM_RCLICK
                                        If _GUICtrlListView_GetNextItem($hListView) = -1 And _GUICtrlListView_GetItemText($hListView, $IndexItemListView) = "" Then Return
                                        If StringUpper(@UserName) <> $User Then Return
                                        If StringUpper(@UserName) = $User And _GUICtrlListView_GetNextItem($hListView) <> -1 Then
                                                $Question = MsgBox(20, "ProxiMagMOE2", "Voulez-vous vraiment supprimer cette entrée?", -1, $GUI)
                                                If $Question = 6 Then
                                                        $IndexItemListView = _GUICtrlListView_GetNextItem($hListView)
                                                        $aItem = _GUICtrlListView_GetItemText($hListView, $IndexItemListView)
                                                        _SQlite_Query (-1, "SELECT * FROM Material WHERE ID = " & $aItem & ";", $hQuery)
                                                        $req =_SQLite_Exec (-1, "DELETE FROM Material WHERE ID = " & $aItem & ";")
                                                If $req <> $SQLITE_OK Then Exit MsgBox(0,"Une erreur est survenue", "Effacement impossible.", -1, $GUI)
                                                        _LoadSQLiteData()
                                                Else
                                                Return
                                        EndIf
                                EndIf
            EndSwitch
                EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY
Func _GetColNames($tab)
  Local $hQuery, $aNames
  _SQLite_Query(-1, "SELECT * FROM '" & $tab & "';", $hQuery)
  _SQLite_FetchNames($hQuery, $aNames)
  Return $aNames
EndFunc
Func _MoveGui()
;==[Taille de la barre de tâches pour définir taille de mon GUI]====
    Local $aPos = WinGetPos("[CLASS:Shell_TrayWnd]")
    Local $left  = $aPos[0]
    Local $top  = $aPos[1]
    Local $Width  = $aPos[2]
    Local $Height = $aPos[3]
    Local $w, $h, $x, $y
;==[Détermination de la position de la barre de tâche]====
;Barre de tâche en bas de l'écran
    If $left = 0 And $Width = @DesktopWidth And $top = (@DesktopHeight - $aPos[3]) Then
        $w = $width - 10
        $h = @DesktopHeight - $height  - 10
        $x = 5
        $y = 5
    EndIf
;Barre de tâche en haut de l'écran
    If $left= 0 And $Width = @DesktopWidth And $top = 0 Then
        $w = $width - 10
        $h = @DesktopHeight - $Height - 10
        $x = 5
        $y = $Height + 5
    EndIf
;Barre de tâche à gauche de l'écran
    If $left= 0 And $top = 0 And $Height = @DesktopHeight Then
        $w = @DesktopWidth - $Width - 10
        $h = $Height - 10
        $x = $Width + 5
        $y = 5
    EndIf
;Barre de tâche à droite de l'écran
    If $left <> 0 And $top = 0 And $Height = @DesktopHeight Then
        $w = @DesktopWidth - $Width - 10
        $h =  $Height - 10
        $x = 5
        $y = 5
    EndIf
;Barre de tâche masquée
    If $left= 0 And $Width = @DesktopWidth And $top = @DesktopHeight - 2 Then
        $w = @DesktopWidth - 10
        $h = @DesktopHeight - 10
        $x = 5
        $y = 5
    EndIf
    Local $aGuiPos = WinGetPos($hGui)
    If $aGuiPos[0] <> $x OR $aGuiPos[1] <> $y OR $aGuiPos[2] <> $w OR $aGuiPos[3] <> $h Then WinMove($hGUI, "", $x, $y, $w, $h)
EndFunc
 





