VISUALIZACAO DE DADOS NO MSFLEXGRID
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.
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.
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...
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...
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
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
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.
(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.
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