VERIFICAR SE REGSITRO FOI ALTERADO NO FORM
Quando o usuário abre um registro no form para alterar e fecha sem salvar perde os dados que acabou de alterar.
Gostaria de colocar um aviso que verificasse se o usuário alterou algum campo no form e emitisse um aviso se o usuário clicasse em SAIR sem salvar os dados que acabou de alterar.
Como fazer? Verificar seu algum campo no form foi alterado?
Gostaria de colocar um aviso que verificasse se o usuário alterou algum campo no form e emitisse um aviso se o usuário clicasse em SAIR sem salvar os dados que acabou de alterar.
Como fazer? Verificar seu algum campo no form foi alterado?
Grave o valor de cada campo na propriedade TAG do TEXT.
Ao sair, verifique se o campo TEXT é igual a propriedade TAG: TEXT1.TEXT = TEXT1.TAG
Se houver valores diferentes emita o aviso de perda de dados.
Ao sair, verifique se o campo TEXT é igual a propriedade TAG: TEXT1.TEXT = TEXT1.TAG
Se houver valores diferentes emita o aviso de perda de dados.
Vc pode fazer um loop na sua tabela e comparar se os dados são iguais aos que estão e cada campo do cadastro ou guardar cada campo em uma variável diferente e na hora de sair verifica se o que está no textbox, combobox, etc é igual ou diferente do que vc guardou nas variaveis.
Tente usar arrays tbm
Não sei se conseguiu entender
Tente usar arrays tbm
Não sei se conseguiu entender
para garantir q de certo, primeiro vc tem q remover o controlbox do form... porque se o usuario clicar fechar no controlbox não será POSSIVEL efetuar a verificação.
Depois, vc pode criar um array e jogar todos os dados dentro...
qdo o usuario for sair os dados serão comparados...
Citação::
para garantir q de certo, primeiro vc tem q remover o controlbox do form... porque se o usuario clicar fechar no controlbox não será POSSIVEL efetuar a verificação.
Depois, vc pode criar um array e jogar todos os dados dentro...
qdo o usuario for sair os dados serão comparados...
Aparentemente, se você colocar no evento TERMINATE funciona.
Existe alguma forma de percorrer (FOR ... NEXT) todos os controles do form e guardar o conteudo dos controles na propriedade TAG de cada controle, para depois caso o usuario feche a tela sem salvar comparar com a propriedade TEXT dos controles.
Amigos, graças a ajuda de todos vocêis consegui. Veja abaixo como gravar a propriedade TAG de todos os controles do form:
For i = 0 To Tela.Controls.Count - 1
If TypeOf Tela.Controls(i) Is TextBox Then
Tela.Controls(i).Tag = Tela.Controls(i).Text
End If
Next
E abaixo como verificar se algum controle esta diferente:
For i = 0 To Tela.Controls.Count - 1
If TypeOf Tela.Controls(i) Is TextBox Then
If Tela.Controls(i).Text <> Tela.Controls(i).Tag Then
intStatusRegistros = intStatusRegistros + 1
Exit For
End If
End If
Next
Eu mandei somar um variavel os controles que foram alterados. Se por acaso a variavel intStatusRegistros for igual ao maior do que 1 significa que algum controle foi alterado e avisa o usuário.
Não sei se esta correto, ou existe uma maneira mais facil, mas deu certo.
For i = 0 To Tela.Controls.Count - 1
If TypeOf Tela.Controls(i) Is TextBox Then
Tela.Controls(i).Tag = Tela.Controls(i).Text
End If
Next
E abaixo como verificar se algum controle esta diferente:
For i = 0 To Tela.Controls.Count - 1
If TypeOf Tela.Controls(i) Is TextBox Then
If Tela.Controls(i).Text <> Tela.Controls(i).Tag Then
intStatusRegistros = intStatusRegistros + 1
Exit For
End If
End If
Next
Eu mandei somar um variavel os controles que foram alterados. Se por acaso a variavel intStatusRegistros for igual ao maior do que 1 significa que algum controle foi alterado e avisa o usuário.
Não sei se esta correto, ou existe uma maneira mais facil, mas deu certo.
Tópico encerrado , respostas não são mais permitidas