none
Jogar dados datagrid da form1 para outro datagrid na form 2 RRS feed

  • Pergunta

  • Bom galera, sou novo com linguagem vba e com o visual studio.

    Criei um dataset e um datagridview em uma form e queria jogar esses dados em outro grid em outra form.

    A primeira form seria para adicionar, editar e ecluir. E a segunda apenas para visualizar os dados.

    Alguém pode me ajudar?

    segunda-feira, 11 de julho de 2016 11:40

Respostas

  • Agnaldo

    use este método:

    Você pode deixar ele no form1 ou em um módulo.

        Public Sub voidCopyDataGridView(ByVal dg1 As DataGridView, ByVal dg2 As DataGridView)
    
            dg2.Columns.Clear()
            dg2.Rows.Clear()
    
            For Each col As DataGridViewColumn In dg1.Columns
                Dim newCol As DataGridViewColumn = CType(col.Clone(), DataGridViewColumn)
                dg2.Columns.Add(newCol)
            Next
    
            For Each row As DataGridViewRow In dg1.Rows
                If (Not row.IsNewRow) Then
                    Dim newRow As DataGridViewRow = CType(row.Clone(), DataGridViewRow)
                    For Each cell As DataGridViewCell In row.Cells
                        newRow.Cells(cell.ColumnIndex).Value = cell.Value
                    Next
                    dg2.Rows.Add(newRow)
                End If
            Next
    
        End Sub

    Para chamar, no Form1 faça assim:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm2 As New Form2() frm2.Show() voidCopyDataGridView(DataGridView1, frm2.DataGridView1)

    End Sub

    Abraço!


    Natan


    segunda-feira, 11 de julho de 2016 16:34
  • Boa tarde AgnaldoMatos, tudo bem?

    Você pode tentar usar um contador para atualizar o número de linhas.

    Aqui há um exemplo interessante em C#.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 13 de julho de 2016 17:38
    Moderador

Todas as Respostas

  • Agnaldo

    use este método:

    Você pode deixar ele no form1 ou em um módulo.

        Public Sub voidCopyDataGridView(ByVal dg1 As DataGridView, ByVal dg2 As DataGridView)
    
            dg2.Columns.Clear()
            dg2.Rows.Clear()
    
            For Each col As DataGridViewColumn In dg1.Columns
                Dim newCol As DataGridViewColumn = CType(col.Clone(), DataGridViewColumn)
                dg2.Columns.Add(newCol)
            Next
    
            For Each row As DataGridViewRow In dg1.Rows
                If (Not row.IsNewRow) Then
                    Dim newRow As DataGridViewRow = CType(row.Clone(), DataGridViewRow)
                    For Each cell As DataGridViewCell In row.Cells
                        newRow.Cells(cell.ColumnIndex).Value = cell.Value
                    Next
                    dg2.Rows.Add(newRow)
                End If
            Next
    
        End Sub

    Para chamar, no Form1 faça assim:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim frm2 As New Form2() frm2.Show() voidCopyDataGridView(DataGridView1, frm2.DataGridView1)

    End Sub

    Abraço!


    Natan


    segunda-feira, 11 de julho de 2016 16:34
  • Olá Natan, obrigado pela ajuda, eu consegui de outra maneira com menos código.

    Eu vinculei os 2 grid ao mesmo database e usei essa linha de comando pra atualizar:

    form2.gridview2.datasource = mydataset.tables("mytable").dafaltview

    Agora, estou tentando resolver outro problema quando eu apago uma linha do datagrid principal e salvo no dataset, a numeração da coluna primaria não se ajusta, mesmo estando configurada pra numerar sozinha no campo " identity specification ", ela cria numeração numa boa, mais quando excluo a linha não se auto remunera, entendeu?. E a numeração sempre aparece negativa quando adiciona a linha, só que depois que salvo o numero fica positivo.

    segunda-feira, 11 de julho de 2016 19:31
  • Boa tarde AgnaldoMatos, tudo bem?

    Você pode tentar usar um contador para atualizar o número de linhas.

    Aqui há um exemplo interessante em C#.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 13 de julho de 2016 17:38
    Moderador