DBGrid - Capturando o conteúdo da célula selecionada


Quer saber como capturar o conteúdo de uma célula de um controle DBGrid ? Então acompanhe...

Você já deve estar careca de saber que o DBGrid é um controle geralmente usasdo no modo vinculado a um controle DAO Data Control.

Você faz assim :

1- Insere um controle Data Control - Data1 - no seu formulário e define as propriedades :

2- Inclui um controle DBGrid - DBGrid1 - no seu formulário e define sua propriedade : DataSource igual ao nome usado no controle ADO Data control anterior

Vou usar o banco de dados Biblio.mdb e a tabela Authors . Quando o usuário clicar em uma célula do Grid iremos capturar o seu valor e exibí-lo em um controle Label - lblcelula.

O projeto com os controles : Data1 , DBGrid1 e lblcelula

 

Insira o código que define duas variáveis visíveis em todo o formulário que usaremos para armazenar a posição da linha e da coluna:

Dim Valor_Linha As Integer
Dim Valor_coluna As Integer

No evento Click do DBGrid insira o código que irá exibir o conteúdo da célula selecionada:(Aqui se o valor das variáveis for menor que 0 iria ocorre um erro na execução)

Private Sub DBGrid1_Click()
If Valor_coluna > -1 And Valor_Linha > -1 Then
  lblcelula.Caption = DBGrid1.Columns(Valor_coluna).CellValue(DBGrid1.RowBookmark(Valor_Linha))
End If
End Sub

No evento MouseDown do DBGrid insira o código que irá capturar o valor da célula:

Private Sub DBGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Valor_Linha = DBGrid1.RowContaining(Y)
  Valor_coluna = DBGrid1.ColContaining(X)
End Sub

Rode o projeto e clique em qualquer célula ; o seu conteúdo será exibido no controle lblCelula:

Moleza... , até mais...


José Carlos Macoratti