EDITAR DIRETO NO DBGRID

NILTON.VIANNA 07/12/2009 21:03:45
#329318
Estou fazendo um plojeto de pedidos, e estou presisando usar
O DBGrid , e editar direto no DBGrid
Ex:

---------------------------------------------------------------------------
Produto : Naturesa : Valor
---------------------------------------------------------------------------
(EDITAR AQUI)
---------------------------------------------------------------------------

Grato
NELSON.PROG2 08/12/2009 01:57:28
#329320
eh soh vc clicar com botao direito no grid e ir na opcao propriedades, na GUIA GENERAL terá um campo ALOWUPDATE, eh soh vc marcar que o DBGRID ja estara em modo de edicao...
LEANDRO 08/12/2009 12:16:33
#329335
a Resposta do nosso Amigo Nelson esta correta, porem acredito que você precise gravar as alteraçõs feitas na Grid, tenho um exemplo com FlexGrid, talvez te ajude.

For wx = 1 To FlexGrid.Rows - 1
gMyConn.Execute [Ô]UPDATE CADENTREGA SET ENT_OCORR=[ô][Ô] & Me.FlexGrid.TextMatrix(wx, 10) & [Ô][ô] WHERE ENT_NOTAFISCAL = [ô][Ô] & FlexGrid.TextMatrix(wx, 1) & [Ô][ô] AND ENT_CTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND ENT_DTENTREGA = [ô][Ô] & Format(Me.mskDtIni.FormattedText, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô][Ô]
If Me.FlexGrid.TextMatrix(wx, 10) = [Ô]CONT[Ô] Then
gMyConn.Execute [Ô]UPDATE CADCTO SET CTO_PREVENTREGA = [ô][Ô] & Format(Me.txtData.FormattedText, [Ô]yyyy-mm-dd[Ô]) & [Ô][ô] WHERE CTO_CONHECIMENTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND CTO_ESPELHO <> [ô]CONT[ô][Ô]
gMyConn.Execute [Ô]UPDATE CADCTO SET CTO_ESPELHO = [ô][Ô] & Me.FlexGrid.TextMatrix(wx, 10) & [Ô][ô] WHERE CTO_CONHECIMENTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND CTO_ESPELHO <> [ô]CONT[ô][Ô]
End If
If Me.FlexGrid.TextMatrix(wx, 10) = [Ô]OK[Ô] Then
gMyConn.Execute [Ô]UPDATE CADCTO SET CTO_ESPELHO = [ô][Ô] & Me.FlexGrid.TextMatrix(wx, 10) & [Ô][ô] WHERE CTO_CONHECIMENTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND CTO_ESPELHO <> [ô]OK[ô][Ô]
End If
If Me.FlexGrid.TextMatrix(wx, 10) = [Ô]TD[Ô] Then
gMyConn.Execute [Ô]UPDATE CADCTO SET CTO_ESPELHO = [ô][Ô] & Me.FlexGrid.TextMatrix(wx, 10) & [Ô][ô] WHERE CTO_CONHECIMENTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND CTO_ESPELHO <> [ô]TD[ô][Ô]
End If
If Me.FlexGrid.TextMatrix(wx, 10) = [Ô][Ô] Then
gMyConn.Execute [Ô]UPDATE CADCTO SET CTO_ESPELHO = [ô][Ô] & Me.FlexGrid.TextMatrix(wx, 10) & [Ô][ô] WHERE CTO_CONHECIMENTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] <> [ô][ô] AND CTO_ESPELHO <> [ô][ô][Ô]
End If
gMyConn.Execute [Ô]UPDATE CADENTREGA SET ENT_CHEGADA=[ô][Ô] & Me.FlexGrid.TextMatrix(wx, 11) & [Ô][ô] WHERE ENT_NOTAFISCAL = [ô][Ô] & FlexGrid.TextMatrix(wx, 1) & [Ô][ô] AND ENT_CTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND ENT_DTENTREGA = [ô][Ô] & Format(Me.mskDtIni.FormattedText, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô][Ô]
gMyConn.Execute [Ô]UPDATE CADENTREGA SET ENT_SAIDA=[ô][Ô] & Me.FlexGrid.TextMatrix(wx, 12) & [Ô][ô] WHERE ENT_NOTAFISCAL = [ô][Ô] & FlexGrid.TextMatrix(wx, 1) & [Ô][ô] AND ENT_CTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND ENT_DTENTREGA = [ô][Ô] & Format(Me.mskDtIni.FormattedText, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô][Ô]
If Me.FlexGrid.TextMatrix(wx, 12) <> [Ô][Ô] And Me.FlexGrid.TextMatrix(wx, 11) <> [Ô][Ô] Then
txtHora.Text = Format(TimeValue(Me.FlexGrid.TextMatrix(wx, 12)) - TimeValue(Me.FlexGrid.TextMatrix(wx, 11)), [Ô]HH:MM[Ô])
End If
gMyConn.Execute [Ô]UPDATE CADENTREGA SET ENT_ESPERA=[ô][Ô] & txtHora.Text & [Ô][ô] WHERE ENT_NOTAFISCAL = [ô][Ô] & FlexGrid.TextMatrix(wx, 1) & [Ô][ô] AND ENT_CTO = [ô][Ô] & FlexGrid.TextMatrix(wx, 2) & [Ô][ô] AND ENT_DTENTREGA = [ô][Ô] & Format(Me.mskDtIni.FormattedText, [Ô]YYYY/MM/DD[Ô]) & [Ô][ô][Ô]
txtHora.Text = [Ô][Ô]
[ô] txtData.Text = [Ô][Ô]

Next wx

NILTON.VIANNA 08/12/2009 20:22:48
#329374
Grato Amigos

NA VERDADE EU NÃO VOU PEGAR DA BASE DE DADOS
VOU APENAS DIGITAR SEM TER QUE PESQUISA...
Tópico encerrado , respostas não são mais permitidas