Bonjour,

dans un formulaire , j'ai 2 boutons Bt_flecheHaut et Bt_flecheBas qui permettent de changer l'ordre de la ligne selectionnée, je les ai codés mais j'ai un problème en excécution :
normalement mon bouton haut marche un peu mais celui du bas fait la meme chose que le haut , quand je clique sur l'un des 2 , ca remonte jusqu'a le haut d'un coup (et non pas d'une ligne )!

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
   Private Sub Bt_flecheHaut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_flecheHaut.Click
 
 
        Dim mx, ord
        If Me.DGV_relations.CurrentRow.Index < 0 Then Exit Sub
        mx = commande.getFirstElement("SELECT max(ordre) FROM tblTypeAssoc", connec)
        ord = commande.getFirstElement("SELECT ordre FROM tblTypeAssoc WHERE idTypeAssoc=" & Me.DGV_relations.CurrentRow.Index, connec)
        If ord = 1 Then Exit Sub
        commande.executeSQL("UPDATE tblTypeAssoc SET ordre = " & mx + 1 & " WHERE ordre =" & ord, connec)
        commande.executeSQL("UPDATE tblTypeAssoc SET ordre=" & ord & " WHERE ordre=" & ord - 1, connec)
        commande.executeSQL("UPDATE tblTypeAssoc SET ordre=" & ord - 1 & " WHERE ordre=" & mx + 1, connec)
        rafraichir()
    End Sub
 
    Private Sub Bt_flecheBas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt_flecheBas.Click
 
        Dim mx, ord
        If Me.DGV_relations.CurrentRow.Index < 0 Then Exit Sub
        mx = commande.getFirstElement("SELECT max(ordre) FROM tblTypeAssoc", connec)
        ord = commande.getFirstElement("SELECT ordre FROM tblTypeAssoc WHERE idTypeAssoc=" & Me.DGV_relations.CurrentRow.Index, connec)
        If ord = mx Then Exit Sub
        commande.executeSQL("UPDATE tblTypeAssoc SET ordre=" & mx + 1 & " WHERE ordre=" & ord, connec)
        commande.executeSQL("UPDATE tblTypeAssoc SET ordre=" & ord & " WHERE ordre=" & ord + 1, connec)
        commande.executeSQL("UPDATE tblTypeAssoc SET ordre=" & ord + 1 & " WHERE ordre=" & mx + 1, connec)
        rafraichir()
    End Sub

ma requete sql dans le procedure rafraichir est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
dtreader = commande.requete("SELECT idTypeAssoc,ordre AS Ordre, TypeAssoc AS Préfix, Description AS Description, export AS Exporter FROM dbo.tblTypeAssoc ORDER BY ordre", connec)
est ce que quelqu'un peut m'aider , merci d'avance