IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

bouton fleche haut et bas en Vb.net


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 52
    Points
    52
    Par défaut bouton fleche haut et bas en Vb.net
    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

  2. #2
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Je ne comprends pas ce que tu souhaites faire exactement. Car si tu souhaites simplement changer de ligne dans un datagridview, tu ne dois pas effectuer de nouvelles requêtes sql. Dans ta méthode rafraichir(), tu effectues un tri de ta base de données, il est donc normal que ce soit toutes les colonnes qui soient retriées et que cela change tout l'affichage de tes lignes.
    Si tu veux juste passer d'une ligne à une autre, il vaudrait sûrement mieux regarder du coté de la propriété row de ton datagrid. En modifiant simplement l'index du row, tu devrais arriver au résultat escompté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1.CurrentCell = DataGridView1.Item(column, row)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par roster Voir le message
    Je ne comprends pas ce que tu souhaites faire exactement. Car si tu souhaites simplement changer de ligne dans un datagridview, tu ne dois pas effectuer de nouvelles requêtes sql. Dans ta méthode rafraichir(), tu effectues un tri de ta base de données, il est donc normal que ce soit toutes les colonnes qui soient retriées et que cela change tout l'affichage de tes lignes.
    Si tu veux juste passer d'une ligne à une autre, il vaudrait sûrement mieux regarder du coté de la propriété row de ton datagrid. En modifiant simplement l'index du row, tu devrais arriver au résultat escompté.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1.CurrentCell = DataGridView1.Item(column, row)

    en fait , supposant que j'ai 4 lignes qui s'affichent dans mon datagridview apres execution du programme.
    lorsque je clique une ligne , celle la est selectionnée (colorée en bleu) , je veux quand je clique sur le bouton haut ou bas , passer à la ligne precedente ou suivante , voila .

    et je suis obligé de faire ca car je m'inspire de mon ancien code VBA et je suis obligé de respecter les syntaxes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub btOrdreDown_Click()
        Dim mx, ord
        If Me.listType.ListIndex < 0 Then Exit Sub
        mx = modADO.returnFElement("SELECT max(ordre) FROM tblTypeAssoc")
        ord = modADO.returnFElement("SELECT ordre FROM tblTypeAssoc WHERE idTypeAssoc=" & Me.listType)
        If ord = mx Then Exit Sub
        modADO.executeSQL "UPDATE tblTypeAssoc SET ordre=" & mx + 1 & " WHERE ordre=" & ord
        modADO.executeSQL "UPDATE tblTypeAssoc SET ordre=" & ord & " WHERE ordre=" & ord + 1
        modADO.executeSQL "UPDATE tblTypeAssoc SET ordre=" & ord + 1 & " WHERE ordre=" & mx + 1
        Me.listType.Requery
    End Sub

  4. #4
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Alors c'est bien dans ton datagrid que tu dois modifier la sélection et non pas modifier le tri de ta base de données.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par roster Voir le message
    Alors c'est bien dans ton datagrid que tu dois modifier la sélection et non pas modifier le tri de ta base de données.
    le code marche mais à l'envers quoi
    il faut juste des petites modifications à faire , moi je pense au niveau de :

    en VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.listType.ListIndex < 0
    en Vb.net :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.DGV_relations.CurrentRow.Index < 0 Then Exit Sub
    sinon qu'est ce que tu me proposes ?

Discussions similaires

  1. vb2008 fleches haut et bas
    Par yop73 dans le forum VB.NET
    Réponses: 7
    Dernier message: 18/04/2008, 15h56
  2. Un bouton qui se déplace lors du défilement HAUT ou BAS de l'écran.
    Par Job3-14 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/01/2008, 22h26
  3. JPopUpMenu Fleches hauts et bas pour rester dans l'ecran.
    Par shiryuseiya dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/07/2007, 16h49
  4. Pb touche fleche haut et Bas
    Par Andry dans le forum Delphi
    Réponses: 5
    Dernier message: 23/10/2006, 11h53
  5. [FLASH 8] Boutons Haut et Bas pour scroller un textArea
    Par hedgehog dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 24/04/2006, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo