VB - Tutorial DBGrid - revisitado
Cá estou eu falando no DBGrid do VB6 . Mas ora bolas não é Visual Basic ??? Então vamos em frente...
Vou repetir as palavras do artigo anterior (estou sem inspiração ultimamente...)
Ninguém pode falar que eu não tratei do assunto DBGrid no site... Acho que até falei demais sobre ele , basta olhar a relação abaixo dos artigos sobre DBGrid no site :
1- Personalizando
e incrementando o DBGrid
2- DBGrid - Revisitado
3- Utilização da Grade Vinculada aos dados: DbGrid
4- Acessando Arquivo Texto c/DBGrid e o Controle Data
5- Ordenando a coluna com o foco em um DBGrid
6- Usando o DBGrid no modo não vinculado
7- DBGrid - Capturando o conteúdo de uma célula
Em tempos de VB.NET e diversas mudanças eu creio que o DBGrid não deverá ser tão usado , eu especialmente não o utilizo mais. Mas como muita gente me envia dúvidas sobre este controle eu estarei falando mais uma vez sobre o DBGrid. Vou mostrar algumas utilizações onde usamos propriedades que podem tornar mais fácil a vida daqueles que usam o DBGrid.
Neste artigo vou mostrar duas coisas interessantes que você pode fazer se for usar o DBGrid. Lembre-se para usar o DBGrid no modo vinculado você usa um Data Control e não um ADO Data Control.
1- Usando os eventos do DBGrid para gerenciar a manutenção de dados do grid.
O DBGrid possui uma série de eventos que podemos usar no tratamento dos dados exibidos no GRID. Como você já deve estar cansado de saber para exibir os dados de uma tabela em um DBGrid basta incluir em um formulário um controle DBGrid e um controle Data Control e a seguir definir as propriedades :
Clique com o botão direito do mouse sobre o DBGRid e selecione a opção Edit ; em seguida selecione Append e inclua tantas quantas colunas você deseja criar. Finalmente clique em Properties e vincule as colunas aos campos da tabela que voce vai mostrar. Abaixo o formulário para o nosso exemplo:
Os eventos do controle DBGrid que vamos usar neste artigo podem ser visto no formulário , conforme abaixo :
Usando estes eventos podemos fazer o tratamento da entrada de dados no DBGrid para alteração , inclusão e exclusão de dados em cada coluna do GRID. Veja abaixo como fica o código. (È uma das possibilidades ...)
Option Explicit Private Sub DBGrid1_AfterColUpdate(ByVal ColIndex As Integer) ' informa ao usuario a atualização da coluna MsgBox "Coluna foi atualizada", vbInformation, "DBGrid.AfterColUpdate" End Sub Private Sub DBGrid1_AfterDelete() ' Informa ao usuario que o registro foi excluido MsgBox "Registro foi excluido !", vbInformation, "DBGrid.AfterDelete" End Sub Private Sub DBGrid1_AfterInsert() ' Informa a inclusao do novo registro MsgBox "O novo registro foi gravado no arquivo !", vbInformation, "DBGrid.AfterInsert" End Sub Private Sub DBGrid1_AfterUpdate() ' Registro atualizado MsgBox "O registro foi atualizado com sucesso.", vbInformation, "DBGrid.AfterUpdate" End Sub Private Sub DBGrid1_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer) ' solicita o usuario confirmação para excluir Dim nResultado As Integer ' nResultado = MsgBox("Confirma alteração de dados ?", vbInformation + vbYesNo, "DBGrid.BeforeColUpdate") If nResultado = vbNo Then Cancel = False ' cancela alteracao e retorna os dados anteriores End If End Sub Private Sub DBGrid1_BeforeDelete(Cancel As Integer) ' solicita confirmacao de exclusao Dim nResultado As Integer nResultado = MsgBox("Confirma exclusão deste registro ?", vbInformation + vbYesNo, "DBGrid.BeforeDelete") If nResultado = vbNo Then Cancel = True ' cancela exclusao End If End Sub Private Sub DBGrid1_BeforeInsert(Cancel As Integer) 'solicita confirmacao de inclusao Dim nResultado As Integer nResultado = MsgBox("Deseja incluir um novo registro?", vbInformation + vbYesNo, "DBGrid.BeforeInsert") If nResultado = vbNo Then Cancel = True ' cancela inclusao End If End Sub Private Sub DBGrid1_BeforeUpdate(Cancel As Integer) ' confirma operacao de atualizacao Dim nResultado As Integer nResultado = MsgBox("Salva as alterações no arquivo ?", vbInformation + vbYesNo, "DBGrid.BeforeUpdate") If nResultado = vbNo Then Cancel = True ' ignora mudancas DBGrid1.ReBind ' reseta todos os valores DBGrid1.Refresh End If End Sub Private Sub mnuSair_Click() End End Sub |
Ao executar o projeto e testar a entrada de dados temos abaixo um exemplo de resultado:
Até mais ver ...
José Carlos Macoratti