VISUALIZACAO DE DADOS NO MSFLEXGRID

XYKOVIEIRA 19/08/2011 17:59:35
#382119
Então....
Num pequeno project que fiz pelo VB6, há um MSFlexGrid que exibe automaticamente os registros, tão logo são cadastrados.
Por outro lado, quando excluo um registro, embora a tabela seja atualizada, o MSFlexGrid continua mostrando o registro. Só
quando descarrego o form e em seguida retorno, o Flex vem atualizado (sem mostrar mais o registro excluido)...
A rotina de inclusão é iniciada após a digitação do Nome e do Nº Telefone, e ocorre quando se clica no cmdAdicionar:

If Trim(TXBNome.Text) <> [Ô][Ô] And Trim(TXBTelefone.Text) <> [Ô][Ô] Then
GRDAgenda.AddItem TXBNome.Text + Chr(9) + TXBTelefone.Text, _
GRDAgenda.Rows - 1
cmdGravar.Enabled = True
cmdGravar_Click
TXBNome.Text = [Ô][Ô]
TXBTelefone.Text = [Ô][Ô]
End If

Gravar no banco de dados:
Private Sub cmdGravar_Click()
Tabela.AddNew
Tabela!nome = TXBNome.Text
Tabela!Telefone = TXBTelefone.Text
Tabela.Update
MsgBox [Ô]O registro foi gravado com êxito ...[Ô]
cmdGravar.Enabled = False
GRDAgenda_Click [ô]Ordena o FlexGrid em ordem alfabética (vide rotina)
End Sub

Finalmente, a rotina de exclusão:

Dim Localizar As String, criterio As String
Localizar = InputBox([Ô]Nome a excluir: [Ô])
criterio = [Ô]Nome Like[ô][Ô] & Localizar & [Ô][ô][Ô]
Tabela.FindFirst criterio
If Tabela.NoMatch = True Then
MsgBox [Ô]Nome não encontrado...[Ô], vbQuestion, [Ô]Procura por: [Ô] & Localizar
Exit Sub
Else
If MsgBox([Ô]Confirma excluir o cliente [Ô] & Chr(13) & _
Localizar & [Ô] ?[Ô], vbYesNo + vbDefaultButton2, [Ô]Apagar arquivo[Ô]) = vbYes Then
Tabela.Delete
MsgBox [Ô]O nome [Ô] & Localizar & [Ô] foi excluido...[Ô], vbOKOnly
End If
End If

Preciso associar à rotina de exclusão a atualização do FlexGrid (GRDAgenda), para refletir o estado
atual da tabela.. Por favor, se alguém tiver um exemplo, agradeço...
Chico.
DANLEONHART 19/08/2011 20:02:42
#382121
Você deve repetir a rotina que [Ô]carrega[Ô] os dados no FlexGrid...
Exemplo:
Se você usa a rotina [Ô]Carregar_Dados[Ô] no Form_Load, deve usá-la no final do script de exclusão...
para assim, o FlexGrid ser atualizado com os dados...
XYKOVIEIRA 20/08/2011 01:02:27
#382138
Leonhart, não deu certo....
Dei instrução para que o banco/tabela fossem recarregados logo após a confirmação
da exclusão de determinado registro, mas o FlexGrid manteve-se inalterado (ainda que
fisicamente não mais existisse o registro deletado: se eu reconfirmasse a deleção do
mesmo registro, aparecia a msgbox informando sobre sua inexistência)...

Eis o código de carregamento (load):

Set Banco = OpenDatabase([Ô]C:\Local\Teste.mdb[Ô])
[ô]O recordset é carregado, já ordenado por nome de cliente.
Set Tabela = Banco.OpenRecordset([Ô]Select * From Dados Order by Nome[Ô], dbOpenDynaset)
GRDAgenda.Row = 0
GRDAgenda.Col = 0
GRDAgenda.Text = [Ô]Nome[Ô]
GRDAgenda.Col = 1
GRDAgenda.Text = [Ô]Telefone[Ô]
GRDAgenda.ColWidth(0) = 2500
GRDAgenda.ColWidth(1) = 1000
GRDAgenda.Width = 3800
cmdGravar.Enabled = False
While Not Tabela.EOF
GRDAgenda.AddItem [Ô][Ô] & Tabela.Fields([Ô]Nome[Ô]) & vbTab & Tabela.Fields([Ô]Telefone[Ô])
Tabela.MoveNext
Wend

XYKOVIEIRA 21/08/2011 10:08:08
#382184
E aí? Marcelo Treze, Kerplunk, Menudo, Tecla, ...
(podia usar a ListBox para manipular os dados, mas preferi MSFlexGrid, até para explorar outros recursos...).
Contudo, ainda que [ô]meio velho[ô] aqui no VBMania, não sou programador profissional. Adoro mexer no VB como
hobby (tendo já conseguido a [ô]proeza[ô] de migrar do VB5 - onde permaneci por muitos anos - para o VB6 prof,
SP6). Assim, sempre preciso me socorrer dos amigos que têm conhecimentos técnicos bem mais aprofundados
que os meus... Peço que relevem a insistência (já andei pesquisando diversos artigos do Macoratti sobre o
assunto), mas ainda não consegui a solução para minha dúvida.
Aproveitando, como poderia destacar um registro no MSFlexGrid, após localizado no arquivo? E, [ô]last but not least[ô],
como atualizar o FlexGrid logo após a confirmação de uma exclusão de registro?
still hopefull for any help.
Chico.
XYKOVIEIRA 21/08/2011 15:09:59
#382192

Valeu Menudo. é isso mesmo que eu estava procurando....
( a idéia de uma segunda tabela <tipo virtual> é boa. Como
se fosse uma variável... Legal mesmo).
Um abraço.

Tópico encerrado , respostas não são mais permitidas