Usuário com melhor resposta
Jogar dados datagrid da form1 para outro datagrid na form 2

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?
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:
Abraço!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
Natan
- Editado 'Natan Silva segunda-feira, 11 de julho de 2016 16:34
- Sugerido como Resposta Robson William SilvaModerator segunda-feira, 11 de julho de 2016 17:46
- Marcado como Resposta Thales F Quintas segunda-feira, 11 de julho de 2016 18:43
-
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.
- Marcado como Resposta Robson William SilvaModerator quinta-feira, 14 de julho de 2016 18:20
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:
Abraço!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
Natan
- Editado 'Natan Silva segunda-feira, 11 de julho de 2016 16:34
- Sugerido como Resposta Robson William SilvaModerator segunda-feira, 11 de julho de 2016 17:46
- Marcado como Resposta Thales F Quintas segunda-feira, 11 de julho de 2016 18:43
-
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.
-
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.
- Marcado como Resposta Robson William SilvaModerator quinta-feira, 14 de julho de 2016 18:20