BLOQUEAR O REGISTRO DUPLICADO NO DATAGRID
Bom dia, tenho alguns textbox que quando preenchidos eles adicionam uma linha do datagrid.
Como eu faço para não deixar adicionar dados iguais no datagrid.
Eu uso esse comando pra adicionar linha do grid:
[ô]SE O GRIDPEDIDO FOR IGUAL A 0 O SISTEMA EXECUTA OS COMANDOS ABAIXO
If GridPedido.Rows.Count = 0 Then
[ô]DEIXA O TXTULTIMOPEDIDO VISIVEL
txttultimopedido.Visible = True
[ô]PEGA O ULTIMO PEDIDO E SOMA MAIS UM NO TXTULTIMOPEDIDO
txttultimopedido.Text = txtnumeropedidos.Text + 1
[ô]ADICIONA A COLUNA PEDIDO COM OS DADOS DO txttultimopedido.Text
Dim numeropedido As New DataGridViewTextBoxColumn
numeropedido.HeaderText = [Ô]PEDIDO[Ô]
GridPedido.Columns.Add(numeropedido)
GridPedido.Columns(0).Width = 80
GridPedido.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
[ô]O RESTO E IGUAL
Dim CdProduto As New DataGridViewTextBoxColumn
CdProduto.HeaderText = [Ô]CODIGO[Ô]
GridPedido.Columns.Add(CdProduto)
GridPedido.Columns(1).Width = 260
GridPedido.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim Produto As New DataGridViewTextBoxColumn
Produto.HeaderText = [Ô]PRODUTO[Ô]
GridPedido.Columns.Add(Produto)
GridPedido.Columns(2).Width = 380
Dim Quantidade As New DataGridViewTextBoxColumn
Quantidade.HeaderText = [Ô]QUANTIDADE[Ô]
GridPedido.Columns.Add(Quantidade)
GridPedido.Columns(3).Width = 120
GridPedido.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim valorproduto As New DataGridViewTextBoxColumn
valorproduto.HeaderText = [Ô]VALOR[Ô]
GridPedido.Columns.Add(valorproduto)
GridPedido.Columns(4).Width = 110
GridPedido.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim valortotal As New DataGridViewTextBoxColumn
valortotal.HeaderText = [Ô]TOTALPRODUTO[Ô]
GridPedido.Columns.Add(valortotal)
GridPedido.Columns(5).Width = 110
GridPedido.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
[ô]TIRA A ORDENAÇÃO DO CABEÇALHO[ô]
GridPedido.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(4).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(5).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)
Else
GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)
End If
Como eu faço para não deixar adicionar dados iguais no datagrid.
Eu uso esse comando pra adicionar linha do grid:
[ô]SE O GRIDPEDIDO FOR IGUAL A 0 O SISTEMA EXECUTA OS COMANDOS ABAIXO
If GridPedido.Rows.Count = 0 Then
[ô]DEIXA O TXTULTIMOPEDIDO VISIVEL
txttultimopedido.Visible = True
[ô]PEGA O ULTIMO PEDIDO E SOMA MAIS UM NO TXTULTIMOPEDIDO
txttultimopedido.Text = txtnumeropedidos.Text + 1
[ô]ADICIONA A COLUNA PEDIDO COM OS DADOS DO txttultimopedido.Text
Dim numeropedido As New DataGridViewTextBoxColumn
numeropedido.HeaderText = [Ô]PEDIDO[Ô]
GridPedido.Columns.Add(numeropedido)
GridPedido.Columns(0).Width = 80
GridPedido.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
[ô]O RESTO E IGUAL
Dim CdProduto As New DataGridViewTextBoxColumn
CdProduto.HeaderText = [Ô]CODIGO[Ô]
GridPedido.Columns.Add(CdProduto)
GridPedido.Columns(1).Width = 260
GridPedido.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim Produto As New DataGridViewTextBoxColumn
Produto.HeaderText = [Ô]PRODUTO[Ô]
GridPedido.Columns.Add(Produto)
GridPedido.Columns(2).Width = 380
Dim Quantidade As New DataGridViewTextBoxColumn
Quantidade.HeaderText = [Ô]QUANTIDADE[Ô]
GridPedido.Columns.Add(Quantidade)
GridPedido.Columns(3).Width = 120
GridPedido.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim valorproduto As New DataGridViewTextBoxColumn
valorproduto.HeaderText = [Ô]VALOR[Ô]
GridPedido.Columns.Add(valorproduto)
GridPedido.Columns(4).Width = 110
GridPedido.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim valortotal As New DataGridViewTextBoxColumn
valortotal.HeaderText = [Ô]TOTALPRODUTO[Ô]
GridPedido.Columns.Add(valortotal)
GridPedido.Columns(5).Width = 110
GridPedido.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
[ô]TIRA A ORDENAÇÃO DO CABEÇALHO[ô]
GridPedido.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(4).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(5).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)
Else
GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)
End If
Penso que você poderia fazer um for...next, antes de adicionar a linha no grid, percorrendo todas as linhas do grid e procurando para ver se já existe o número do pedido na coluna correspondente. AÃ, se não existir, adiciona a linha desejada.
A lógica, penso que é essa.
A lógica, penso que é essa.
Fiz desta forma. Ate conseguir fazer a mensagem aparacer quando tiver um registro igual no grid.
Mais depois da mensagem ele adiciona a linha :/
Mais depois da mensagem ele adiciona a linha :/
Dim i As Integer
For i = 0 To GridPedido.Rows.Count - 1
If GridPedido.Rows.Item(i).Cells(2).Value = Combonomeproduto.Text Then
MsgBox([Ô]ITEM JA ADICIONADO!!! - [Ô] & GridPedido.Rows.Item(i).Cells(2).Value & [Ô][Ô], MsgBoxStyle.Information, [Ô]GMParking - Mensagem Informativa[Ô])
End If
Next
[ô]SE O GRIDPEDIDO FOR IGUAL A 0 O SISTEMA EXECUTA OS COMANDOS ABAIXO
If GridPedido.Rows.Count = 0 Then
[ô]DEIXA O TXTULTIMOPEDIDO VISIVEL
txttultimopedido.Visible = True
[ô]PEGA O ULTIMO PEDIDO E SOMA MAIS UM NO TXTULTIMOPEDIDO
txttultimopedido.Text = txtnumeropedidos.Text + 1
[ô]ADICIONA A COLUNA PEDIDO COM OS DADOS DO txttultimopedido.Text
Dim numeropedido As New DataGridViewTextBoxColumn
numeropedido.HeaderText = [Ô]PEDIDO[Ô]
GridPedido.Columns.Add(numeropedido)
GridPedido.Columns(0).Width = 80
GridPedido.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
[ô]O RESTO E IGUAL
Dim CdProduto As New DataGridViewTextBoxColumn
CdProduto.HeaderText = [Ô]CODIGO[Ô]
GridPedido.Columns.Add(CdProduto)
GridPedido.Columns(1).Width = 260
GridPedido.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim Produto As New DataGridViewTextBoxColumn
Produto.HeaderText = [Ô]PRODUTO[Ô]
GridPedido.Columns.Add(Produto)
GridPedido.Columns(2).Width = 380
Dim Quantidade As New DataGridViewTextBoxColumn
Quantidade.HeaderText = [Ô]QUANTIDADE[Ô]
GridPedido.Columns.Add(Quantidade)
GridPedido.Columns(3).Width = 120
GridPedido.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim valorproduto As New DataGridViewTextBoxColumn
valorproduto.HeaderText = [Ô]VALOR[Ô]
GridPedido.Columns.Add(valorproduto)
GridPedido.Columns(4).Width = 110
GridPedido.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Dim valortotal As New DataGridViewTextBoxColumn
valortotal.HeaderText = [Ô]TOTALPRODUTO[Ô]
GridPedido.Columns.Add(valortotal)
GridPedido.Columns(5).Width = 110
GridPedido.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
GridPedido.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
[ô]TIRA A ORDENAÇÃO DO CABEÇALHO[ô]
GridPedido.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(3).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(4).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Columns(5).SortMode = DataGridViewColumnSortMode.NotSortable
GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)
Else
GridPedido.Rows.Add(txttultimopedido.Text, TxtCdProduto.Text, Combonomeproduto.Text, Txtquantidade.Text, Txtvalorproduto.Text, Txtvalortotal.Text)
End If
Aqui tem um exemplo bem, mas bem simples, que eu fiz rapidinho para te ilustrar.
é claro que você terá que adaptar ao seu código, mas enfim, espero ter ajudado de alguma forma.
Até mais.
é claro que você terá que adaptar ao seu código, mas enfim, espero ter ajudado de alguma forma.
Até mais.
Tópico encerrado , respostas não são mais permitidas