Problème datagridview et menu strip

yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020 - 12 août 2018 à 17:19
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020 - 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

5 réponses

Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
13 août 2018 à 00:51
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
2
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
13 août 2018 à 12:10
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
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
15 août 2018 à 10:48
aucune suite...??
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
15 août 2018 à 12:51
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
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
15 août 2018 à 16:25
oui bien sur bon congé amuse toi bien
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
13 août 2018 à 12:12
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
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
29 août 2018 à 14:48
Bonjour, je suis rentré chez moi, mais je n'ai pas encore eu le temps de mon plonger dans ton problème.
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
29 août 2018 à 21:50
ok merci chère ami, je serai contant de m'aidé a résoudre mon problème. merci encore une fois
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
11 sept. 2018 à 10:35
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.
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
12 sept. 2018 à 18:33
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
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
12 sept. 2018 à 20:30
Mais en faisant ça (et en simulant tes données, avec des listes), j'ai pas d'erreur.
Donc je voudrais vraiment ton code.
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
13 sept. 2018 à 10:55
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
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
Modifié le 13 sept. 2018 à 11:03
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
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
13 sept. 2018 à 22:28
les colonnes du datagridview du form barème s’intègrent au datagridview du form article
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
13 sept. 2018 à 21:33
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.
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
13 sept. 2018 à 22:33
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
0
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 656
13 sept. 2018 à 22:34
C’est un control WPF pas windows form
0
yassin246 Messages postés 20 Date d'inscription dimanche 12 août 2018 Statut Membre Dernière intervention 12 novembre 2020
13 sept. 2018 à 22:41
les colonnes du datagridview du form barème s’intègrent au datagridview du form article
0
Rejoignez-nous