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 :

Rafraichir un DataGridView selon valeur tapée


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut Rafraichir un DataGridView selon valeur tapée
    Bonjour a toutes et a tous,

    J ai une petite question. Mon chef de projet voudrais que lorsque qu'un utilisateur tape une valeur sur une DGV, le champ juste a coté se mette a jour selon la valeur tapée.Ces valeurs sont stockées dans une BD Access.

    Quelqu'un aurait il une idée ?

    Merci beaucoup.

    Damien

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    C'est quoi le champ juste à côté??
    Si le DGV est lié à un dataset, les modifications des champs de la table sont répercutées dans le DGV, si le champ à côté est lié à la table celui-ci sera mis à jour en même temps.
    Si la valeur du champ à côté est modifié suite à la modif d'un autre champ tu peux utiliser un champ calculé(dans la table il faut mettre le calcul dans la propriété expression du champ).
    Bon boulot Jean

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Une requête avec pour condition la valeur de la celulle où tu saisies ta nouvelle valeur.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    C'est quoi le champ juste à côté??
    Le champ a coté est en une colonne text. Celle ci doit afficher un texte issu d'un autre table, ou d'un dataset puisque le texte est stocké.

    J'ai reussie a faire ce que je voulais a la seule condition de le présence d'un texte. Admettons que l'utilisateur ne saisisse rien et bien ca plante...

    Exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L'opérateur '<>' n'est pas défini pour type 'DBNull' et chaîne "".
    Voila le code :

    Code VB.NET : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     Private Sub DGVConditionDem_RowValidated(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVConditionDem.RowValidated
            Try
                Dim dsPrefV, dsPreMem As New DataSet
                Dim Pref As String
                ' Dim index As Integer
                If DGVConditionDem.CurrentRow.Cells("Origine_adr").Value <> "" Then  ' Ligne de l'erreur
                    Pref = DGVConditionDem.CurrentRow.Cells("Origine_adr").Value
                    ' index = DGVConditionDem.CurrentRow.Index
                    If Pref.StartsWith("E") Then
                        MsgBox("Pref startwith E")
                        SQLREQ = "SELECT * FROM Voies WHERE Voie_adr='" & Pref & "'"
                        cn.Open()
                        ExecuteCommand(SQLREQ)
                        da1.SelectCommand = cmd
                        cn.Close()
                        da1.Fill(dsPrefV, "PrefVoies")
                        MsgBox(DGVConditionDem.Rows(0).Cells("Origine_txt1"))
                        DGVConditionDem.CurrentRow.Cells("Origine_txt1").Value = dsPrefV.Tables("PrefVoies").Rows(0).Item("Voie_txt1") 'dsVoie.Tables("Voies").Rows(index).Item("Voie_txt1") '
                    ElseIf Pref.StartsWith("M") Then
                        MsgBox("Pref startwith M")
                        SQLREQ = "SELECT Mem_adr FROM Datas_mementos"
                        cn.Open()
                        ExecuteCommand(SQLREQ)
                        da1.SelectCommand = cmd
                        cn.Close()
                        da1.Fill(dsPreMem, "PrefMem")
                        DGVConditionDem.CurrentRow.Cells("Origine_txt1").Value = dsPrefV.Tables("PrefMem").Rows(0).Item("Mem_txt1")
                    End If
                End If
                SQLREQ = "SELECT * FROM Datas_origines WHERE ID_zone_origine= " & dsRegla2.Tables("Combo2").Rows(MultiComboBox2.SelectedIndex).Item("ID_zone_origine") & ""
                da1 = New OleDbDataAdapter(SQLREQ, connex)
                da1.MissingSchemaAction = MissingSchemaAction.AddWithKey
                da1.Fill(dsCondDem)
                Dim monCB As OleDbCommandBuilder
                monCB = New OleDbCommandBuilder(da1)
    
                da1.Update(dsCondDem, "CondDem")
            Catch ex As Exception
                MsgBox("Exception Datas Origines MAJ : " & ex.Message & Chr(13) & "Vérifiez que l'adresse saisie existe !", MsgBoxStyle.Exclamation, "Problèmes de mise à jour ")
            End Try
        End Sub

    ... une idée ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Il faut remplacer cette requête par celle-ci:
    SQLREQ = "SELECT * FROM Voies WHERE Voie_adrlike'" & Pref & "%'"

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Toujours une erreur mais cette fois ci au niveau du :
    Pref= ...

    Exception : La conversion du type 'DBNull' en type 'String' n'est pas valide.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    En faites mon pb se situe surtout au niveau de la récupération du texte tapé dans le bonne cellule. :/

    Y a t il un autre moyen que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DGVConditionDem.CurrentRow.Cells("Origine_adr").Value
    Je ne crois pas ...

    En faites ca pause pb quand y a pas de texte...
    Misere misere ...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Ici tu veux dire?
    Pref = DGVConditionDem.CurrentRow.Cells("Origine_adr").Value
    Je pense que cela doit être dû au type de la valeur renvoyé par
    DGVConditionDem.CurrentRow.Cells("Origine_adr").Value
    Il faut voir si c'est vraiment un type string.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Je n'avais pas encore vu ton nouveau post.
    Effectivement le problème doit venir de là.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Il faut essayer ceci:
    Dim i As Integer
    Dim j As Integer
    Dim Pref As String
    i = DGVConditionDemCurrentRow.Index
    j = DGVConditionDem.CurrentCell.ColumnIndex
    Pref = DGVConditionDem.Item(j, i).Value()
    et ensuite faire ça:
    SQLREQ = "SELECT * FROM Voies WHERE Voie_adr like'" & Pref & "%'"

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    AND THE WINNERRRRR ISSSS NNAAAAAAAAAAAAAAPEEEE GADIE !

    Super ca fonctionne du feux de dieux ! J'étai pas tres tres loin ca me rassure.
    Une derniere question, a quoi sert le % dans le requete ?

    MERCI BCP Jpelli et NAPEGADIE.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Le % dans le requete sert à montrer qu'il peut avoir d'autre lettre apres celle qu'on vient de placer ou rien. Par exemple si tu ecris am.., c'est qu'il peux avoir ami, amande, amuser etc...

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Juillet 2004
    Messages : 155
    Points : 151
    Points
    151
    Par défaut
    Ou si tu veux, il remplace le vide.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    D'accord d 'accord je saurai pour la suite !

    Merci encore !!

    Et bon Week End !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DataGridView : Sélection ligne selon lettre tapée
    Par Vonziz dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/04/2009, 14h57
  2. Réponses: 18
    Dernier message: 06/07/2007, 13h17
  3. [C#] Ligne datagridview colorée selon valeur
    Par tikam dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/08/2006, 17h39
  4. Ajout n lignes selon valeur...
    Par nicburger dans le forum Access
    Réponses: 1
    Dernier message: 26/10/2005, 19h49
  5. affichage selon valeur entiere ou decimale
    Par Ankya dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 04/05/2005, 10h36

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