Problème datagridview et menu strip

Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
- - Dernière réponse : yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
- 13 sept. 2018 à 22:41
Bonjour,
j'ai :
- un form principale doté par un menu strip
- deux form doté d'un datagridview d'une même base de donner mais deux table différente
quand j’exécute chaque forms ça marche très bien, mais quand je l’exécute a partir du form principale (menu strip) les colonnes de la dernier datagridv s’intègre au l'autre datagridv de l'autre form...!!!!!!
y'a t'il des suggestion pour remédier ça...????????
svp une réponse simple et facile svp svp
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
12415
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 décembre 2018
2
Merci
Ma boule de cristal me dit qu'il manque un ; à la ligne 32.

Ha tu as besoin d'une réponse sérieuse?
Ben c'est pas possible, par ce que les boules de cristal ça n'existe pas et sans voir ton code, pas moyen d'émettre des hypothèses plausibles.

Pour poster ton code, voir cette procédure.
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Dire « Merci » 2

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources 95 internautes nous ont dit merci ce mois-ci

yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
ok monsieur whismeril
MODULE 1
Public Sub charger_grid_view(ByVal maform As String, ByVal req As String, ByVal gv As DataGridView)
        Try
            dt.Clear()
            cmd.CommandText = req
            dr = cmd.ExecuteReader
            dt.Load(dr)
            With maform
                gv.DataSource = dt
            End With
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
        dr.Close()
    End Sub
'-------------------------------------------------------
Public Sub connection()
        cmd.Connection = con
        cmd.CommandType = CommandType.Text
        Try
            con.Open()
            If con.State <> ConnectionState.Open Then
                MsgBox("Erreur de connection", 0 + 48, "Erreur")
            End If
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub


FORM ARTICLE
 Private Sub Articles_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        connection()
        maform = Me.Name
        reqTot = "select article, um, idarticle from tbl_article"
        '-------------------------------
        charger_grid_view(maform, reqTot, TblArticle)
        TblArticle.Columns(0).Width = 180
        TblArticle.Columns(1).Width = 100
        TblArticle.Columns(2).Visible = False
        TblArticle.Columns(0).HeaderText = "ARTICLES"
        TblArticle.Columns(1).HeaderText = "UM"
        With TblArticle.ColumnHeadersDefaultCellStyle
            .Alignment = DataGridViewContentAlignment.MiddleCenter
            .BackColor = Color.CornflowerBlue
            .ForeColor = Color.BlueViolet
            .Font = New Font(.Font.FontFamily, .Font.Size, _
           .Font.Style Or FontStyle.Bold, GraphicsUnit.Point)
        End With
        '-------------------------------
    End Sub

MÊME PROCÉDURE POUR LES AUTRES FORMS
MENU STRIP
Private Sub ArticlesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ArticlesToolStripMenuItem.Click
        Dim Articles As New Articles
        Articles.MdiParent = Me
        Articles.StartPosition = FormStartPosition.CenterScreen
        Articles.Show()
    End Sub

MERCI POUR VOTRE ATTENTION
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
aucune suite...??
Whismeril
Messages postés
12415
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 décembre 2018
-
Je suis en congé, quand je peux répondre « de tête », je le fais.
Là c’est pas le cas.
Il faut attendre quelqu’un d’autre, ou que je rentre chez moi
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
oui bien sur bon congé amuse toi bien
Commenter la réponse de Whismeril
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
0
Merci
MODULE 1
Public Sub charger_grid_view(ByVal maform As String, ByVal req As String, ByVal gv As DataGridView)
        Try
            dt.Clear()
            cmd.CommandText = req
            dr = cmd.ExecuteReader
            dt.Load(dr)
            With maform
                gv.DataSource = dt
            End With
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
        dr.Close()
    End Sub
'-------------------------------------------------------
Public Sub connection()
        cmd.Connection = con
        cmd.CommandType = CommandType.Text
        Try
            con.Open()
            If con.State <> ConnectionState.Open Then
                MsgBox("Erreur de connection", 0 + 48, "Erreur")
            End If
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub


FORM ARTICLE
 Private Sub Articles_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        connection()
        maform = Me.Name
        reqTot = "select article, um, idarticle from tbl_article"
        '-------------------------------
        charger_grid_view(maform, reqTot, TblArticle)
        TblArticle.Columns(0).Width = 180
        TblArticle.Columns(1).Width = 100
        TblArticle.Columns(2).Visible = False
        TblArticle.Columns(0).HeaderText = "ARTICLES"
        TblArticle.Columns(1).HeaderText = "UM"
        With TblArticle.ColumnHeadersDefaultCellStyle
            .Alignment = DataGridViewContentAlignment.MiddleCenter
            .BackColor = Color.CornflowerBlue
            .ForeColor = Color.BlueViolet
            .Font = New Font(.Font.FontFamily, .Font.Size, _
           .Font.Style Or FontStyle.Bold, GraphicsUnit.Point)
        End With
        '-------------------------------
    End Sub

MÊME PROCÉDURE POUR LES AUTRES FORMS
MENU STRIP
Private Sub ArticlesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ArticlesToolStripMenuItem.Click
        Dim Articles As New Articles
        Articles.MdiParent = Me
        Articles.StartPosition = FormStartPosition.CenterScreen
        Articles.Show()
    End Sub
Commenter la réponse de yassin246
Messages postés
12415
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 décembre 2018
0
Merci
Bonjour, je suis rentré chez moi, mais je n'ai pas encore eu le temps de mon plonger dans ton problème.
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
ok merci chère ami, je serai contant de m'aidé a résoudre mon problème. merci encore une fois
Commenter la réponse de Whismeril
Messages postés
12415
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 décembre 2018
0
Merci
Bonjour

j'ai un peu de temps aujourd'hui.
En l'état, je ne peux pas reproduire.
Tu n'as donner que le code pour Article, je ne sais pas ce que tu as codé pour l'autre Form.
Je peux évidemment coder une Form client ou employé, mais si mon code sera forcément différent du tien.
J'ai donc besoin de la suite de ton code.



De plus, n'ayant pas le contenu de ta base de données, je ne pourrais que simuler.
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
c'est exactement le même code avec changement du nom de dgv pour tout les autres form et le même code du menu strip avec changement du nom du form
Whismeril
Messages postés
12415
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 décembre 2018
-
Mais en faisant ça (et en simulant tes données, avec des listes), j'ai pas d'erreur.
Donc je voudrais vraiment ton code.
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
ok mon ami
form barème
Imports System.Globalization
Imports System.Threading
Imports System.Data.OleDb
Imports System.Windows.Forms
Public Class Bareme
    Inherits System.Windows.Forms.Form
    Public maCI As CultureInfo = CultureInfo.CurrentCulture
    Public maCIclone As CultureInfo = CType(maCI.Clone(), Globalization.CultureInfo)
    Private Sub Bareme_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        maCIclone.NumberFormat.NumberDecimalSeparator = "."
        Thread.CurrentThread.CurrentCulture = maCIclone
        con.Close()
        connection()
        maform = Me.Name
        '-------------Charge DataGridView------------
        reqTot = "SELECT animal, article, um, QteRation, idtauxration, Tbl_Animaux.IdAnimal, Tbl_Article.IdArticle FROM Tbl_Article" & _
                 " INNER JOIN (Tbl_Animaux INNER JOIN Tbl_TauxRation ON Tbl_Animaux.IdAnimal = Tbl_TauxRation.IdAnimal) ON Tbl_Article.IdArticle = Tbl_TauxRation.IdArticle" & _
                 " ORDER BY Animal, article"
        charger_grid_view(maform, reqTot, TblTaux)
        TblTaux.Columns(0).Width = 180
        TblTaux.Columns(1).Width = 180
        TblTaux.Columns(2).Width = 100
        TblTaux.Columns(3).Width = 100
        TblTaux.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
        TblTaux.Columns(4).Visible = False
        TblTaux.Columns(5).Visible = False
        TblTaux.Columns(6).Visible = False
        TblTaux.Columns(0).HeaderText = "CAT.ANIMAL"
        TblTaux.Columns(1).HeaderText = "ARTICLE"
        TblTaux.Columns(2).HeaderText = "U.M"
        TblTaux.Columns(3).HeaderText = "TAUX"
        With TblTaux.ColumnHeadersDefaultCellStyle
            .Alignment = DataGridViewContentAlignment.MiddleCenter
            .BackColor = Color.CornflowerBlue
            .ForeColor = Color.BlueViolet
            .Font = New Font(.Font.FontFamily, .Font.Size, _
           .Font.Style Or FontStyle.Bold, GraphicsUnit.Point)
        End With
        '-------------Charge Combo Animal------------
        req = "select idanimal, animal from tbl_animaux order by animal"
        charger_combobox(maform, req, Combo_Animal, "animal", "idanimal")
        '-------------Charge Combo Article------------
        req = "select idarticle, article from tbl_article order by article"
        charger_combobox(maform, req, Combo_Article, "article", "idarticle")
        '-------------Vider les Combos------------
        Combo_Animal.SelectedValue = 0
        Combo_Article.SelectedValue = 0
    End Sub
    Sub activer()
        Combo_Animal.Enabled = True
        Combo_Article.Enabled = True
        Sai_Taux.Enabled = True
    End Sub
    Sub desactiver()
        Combo_Animal.Enabled = False
        Combo_Article.Enabled = False
        Sai_Taux.Enabled = False
    End Sub
    Sub vider()
        op = "N"
        xmodifie = ""
        Sai_IdTaux.Clear()
        Combo_Animal.SelectedValue = 0
        Combo_Article.SelectedValue = 0
        Sai_Taux.Clear()
        Sai_Recherche.Clear()
    End Sub
    Sub existedeja()
        If Combo_Animal.Text <> "" And Combo_Article.Text <> "" Then
            req = "SELECT animal, article, um, QteRation, idtauxration, Tbl_Animaux.IdAnimal, Tbl_Article.IdArticle FROM Tbl_Article" & _
                 " INNER JOIN (Tbl_Animaux INNER JOIN Tbl_TauxRation ON Tbl_Animaux.IdAnimal = Tbl_TauxRation.IdAnimal) ON Tbl_Article.IdArticle = Tbl_TauxRation.IdArticle" & _
                 " where Tbl_Animaux.IdAnimal=" & Combo_Animal.SelectedValue & " and Tbl_Article.IdArticle=" & Combo_Article.SelectedValue
            charger_grid_view(maform, req, TblTaux)
            If TblTaux.RowCount > 0 Then
                If op = "N" Then
                    MessageBox.Show("Enregistrement Existe Déja", "Déja Saisie", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    desactiver()
                    Btn_Nouveau.Enabled = True
                    Btn_Valider.Enabled = False
                    Btn_Supprimer.Enabled = False
                    Btn_Annuler.Enabled = True
                End If
                If op = "M" Then
                    MessageBox.Show("Enregistrement Existe Déja", "Déja Saisie", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    desactiver()
                    Sai_Taux.Enabled = True
                    Btn_Nouveau.Enabled = False
                    Btn_Valider.Enabled = True
                    Btn_Supprimer.Enabled = True
                    Btn_Annuler.Enabled = True
                End If
            End If
        End If
    End Sub
    Private Sub Tblbareme_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TblTaux.DoubleClick
        op = "M"
        If TblTaux.CurrentCell.RowIndex >= 0 Then
            Sai_IdTaux.Text = TblTaux(4, TblTaux.CurrentCell.RowIndex).Value
            Combo_Animal.SelectedValue = TblTaux(5, TblTaux.CurrentCell.RowIndex).Value
            Combo_Article.SelectedValue = TblTaux(6, TblTaux.CurrentCell.RowIndex).Value
            Sai_Taux.Text = TblTaux(3, TblTaux.CurrentCell.RowIndex).Value
            xmodifie = Sai_Taux.Text
            Combo_Animal.Enabled = False
            Combo_Article.Enabled = False
            Sai_Taux.Enabled = True
            Btn_Nouveau.Enabled = False
            Btn_Valider.Enabled = True
            Btn_Supprimer.Enabled = True
            Btn_Annuler.Enabled = True
            Sai_Taux.Focus()
        End If
    End Sub
    Private Sub Btn_Annuler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Annuler.Click
        vider()
        desactiver()
        Btn_Nouveau.Enabled = True
        Btn_Valider.Enabled = False
        Btn_Supprimer.Enabled = False
        Btn_Annuler.Enabled = True
        charger_grid_view(maform, reqTot, TblTaux)
        'Btn_Annuler.Focus()
    End Sub
    Private Sub Btn_Fermer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Fermer.Click
        dr.Close()
        con.Close()
        Me.Close()
    End Sub
    Private Sub Btn_Supprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Supprimer.Click
        req = "delete * from tbl_tauxration where idtauxration=" + Sai_IdTaux.Text
        supprimer(req)
        charger_grid_view(maform, reqTot, TblTaux)
        Btn_Annuler_Click(sender, e)
    End Sub

    Private Sub Sai_Recherche_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Sai_Recherche.Enter
        Btn_Annuler_Click(sender, e)
    End Sub
    Private Sub Sai_Recherche_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Sai_Recherche.TextChanged
        req = "SELECT animal, article, um, QteRation, idtauxration, Tbl_Animaux.IdAnimal, Tbl_Article.IdArticle FROM Tbl_Article" & _
                 " INNER JOIN (Tbl_Animaux INNER JOIN Tbl_TauxRation ON Tbl_Animaux.IdAnimal = Tbl_TauxRation.IdAnimal) ON Tbl_Article.IdArticle = Tbl_TauxRation.IdArticle" & _
                 " where animal like '%" & Sai_Recherche.Text.Trim & "%' or article like '%" & Sai_Recherche.Text & "%' or um like '%" & Sai_Recherche.Text & _
                 "%' or qteration= " & Val(Sai_Recherche.Text) & " ORDER BY Animal, article"
        If Sai_Recherche.Text <> "" Then
            charger_grid_view(maform, req, TblTaux)
        Else
            charger_grid_view(maform, reqTot, TblTaux)
        End If
    End Sub
    Private Sub Btn_Nouveau_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Nouveau.Click
        vider()
        activer()
        Btn_Nouveau.Enabled = False
        Btn_Valider.Enabled = True
        Btn_Supprimer.Enabled = False
        Btn_Annuler.Enabled = True
        Sai_Recherche.Clear()
        charger_grid_view(maform, reqTot, TblTaux)
        Combo_Animal.Focus()
    End Sub
    Private Sub Btn_Valider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Valider.Click
        If Combo_Animal.SelectedValue > 0 And Combo_Article.SelectedValue > 0 And Sai_Taux.Text <> "" Then
            If op = "M" Then
                req = "update tbl_tauxration set idarticle=" & Combo_Article.SelectedValue & ", idanimal= " & Combo_Animal.SelectedValue & ", qteration= " & Sai_Taux.Text & " where idtauxration =" & Sai_IdTaux.Text
            Else
                req = "insert into tbl_tauxration (idanimal,idarticle,qteration) values (" & _
                    Combo_Animal.SelectedValue & "," & Combo_Article.SelectedValue & "," & Val(Sai_Taux.Text) & ")"
            End If
            enregistrer(req)
            charger_grid_view(maform, reqTot, TblTaux)
            Btn_Annuler_Click(sender, e)
        Else
            MessageBox.Show("Remplir Les Champs Animal, article et le taux de ration Avant ...!!!", "Chams Vide", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            'Sai_Animal.Focus()
        End If
    End Sub
    Private Sub Combo_Animal_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Combo_Animal.Validated
        existedeja()
    End Sub
    Private Sub Combo_Article_Validated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Combo_Article.Validated
        existedeja()
    End Sub
End Class
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
image problème
après avoir appelé le form barème au menu strip, j'ai appelé ensuite le form article.
voila le résultat
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
les colonnes du datagridview du form barème s’intègrent au datagridview du form article
Commenter la réponse de Whismeril
Messages postés
12415
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 décembre 2018
0
Merci
Je ne vois pas ce qui te pose problème dans ta capture d'écran.
Et comme je te l'ai dit, je n'ai pas SqlServer chez moi, j'ai essayé de simuler avec des listes mais je ne trouve pas d'erreurs dans mes simulations.

Par contre, je pense que tu t'embêterais beaucoup moins à tout charger dans des collections et faire un binding propre sur ces collections.
Voir ici https://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource



Par contre, tu peux simplifier un peu charger_grid_view

            With maform
                gv.DataSource = dt
            End With
Le With ne sert à rien, puisque gv est la référence à un DataGridView spécifique.

Voilà qui est mieux.
    Public Sub charger_grid_view(ByVal req As String, ByVal gv As DataGridView)
        Try
            dt.Clear()
            cmd.CommandText = req
            dr = cmd.ExecuteReader
            dt.Load(dr)

            gv.DataSource = dt

        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
        dr.Close()
    End Sub


PS, un GridView et un DataGridView sont 2 contrôles différents, attention de ne pas les mélanger.
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
ma base de donnée est Access 2007 est n'ont pas SqlServer
c'est quoi la différence entre GridView et un DataGridView?
je trouve juste le controle DataGridView en VB 2010
merci pour votre attention
Whismeril
Messages postés
12415
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
18 décembre 2018
-
C’est un control WPF pas windows form
yassin246
Messages postés
19
Date d'inscription
dimanche 12 août 2018
Dernière intervention
1 novembre 2018
-
les colonnes du datagridview du form barème s’intègrent au datagridview du form article
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.