FORM LOAD

NETOCAZUZA 26/07/2013 02:38:17
#426537
Tenho alguns controles que carrego na abertura do meu form (FORM LOAD). Sempre que inicia uma operação, coloco coisas no load que fazem as telas sempre começarem do zero, sem preenchimentos e outras coisas. Minha dúvida é a seguinte. Tem algum comando para dar um load no form, mesmo com ele aberto? Até pensei numa sub zerando todos os campos, mas tava pensando em algo mais prático. Esse load zeraria todas as informações já completadas, para o usuário começar o preenchimento do zero, tem como?
NETOCAZUZA 26/07/2013 03:21:16
#426538
Unload Me
Fecha e zera todos os controles. Não era bem o que eu queria, mas resolveu!
NETOCAZUZA 26/07/2013 03:26:08
#426539
No caso de vários registros a serem inseridos, ficaria muito chato ficar abrindo a janela toda hora, então gostaria de rodar o comando que realmente zera tudo como eu quero, mas que mantivesse a janela aberta pra digitar o próximo registro da sequência. Alguma idéia?
ROBSON 26/07/2013 07:21:01
#426540
tem varias maneiras

uma delas é colocar um botao [Ô]clear[Ô] para limpar os text box (text1.text = [Ô][Ô]).
outra maneira é dar um refresh no form,
mas tudo depende do que voce realmente carrega no form
se colocar o codigo fica mais facil sugerir algo com precisão.
NETOCAZUZA 26/07/2013 12:46:00
#426569
ROBSON, basicamente eu criei algumas amarrações no form para impedir erros do cliente, usando para isso visible = true ou false, enabled/disabled ou posicionando os registros do banco de dados em determinada posição. São várias rotinas malucas mesmo, que eu criei com o objetivo de impedir erros por parte do usuário, e se eu te mostrar o código, tú vai achar muito confuso. Mas basicamente são controles do tipo, só mostrar o próximo campo depois de preencher o primeiro, só habilitar o botão gravar depois de verificar que tá tudo preenchido, entendeu? Até poderia fazer essa checagem no banco de dados, mas como optei por programar o banco na [Ô]unha[Ô], qualquer outra alternativa diferente (usando workspace por exemplo), ao invés de ajudar, me confunde. Sei que tudo funciona, mas cansei de perder um monte de rotina pronta, simplesmente por tentar implantar uma besteirinha, e perder todo o trabalho pronto. Tenho que entender o que estou fazendo, senão não faço.
Além dessas, também existem outras verificações, e no formulário também faço alguns cálculos, e guardo só os resultados nas tabelas. Também tem umas combos que sáo preenchidas com o objeto data, buscando informações em outras tabelas, etc. Em suma, tá bastante complexo e confuso o código, e até já tentei ir limpando os text-box, mostrando e escondendo os controles novamente, habilitando ou não o campo, etc.. Mas fica sempre faltando alguma coisa, principalmente os ponteiros no banco de dados. Já percebi que descarregando e carregando o formulário, ele volta prontinho, no jeito que preciso, então queria uma forma de colocar o comando unload numa sub, por exemplo, e chamar essa sub ao clicar no botão gravar, sem fechar o formulário, ou fechando e abrindo simultâneamente, pois sempre que abre ele funciona certinho, com todos os testes. Se eu fechar com unload, e abrir novamente, dá certo, mas imagina digitar 200 registros desse jeito, abrindo e fechando a tela, ficaria muito cansativo.
Estou com o programa no meu note, e só tenho acesso a internet nele durante a semana, então se eu não conseguir uma solução até lá, na segunda posto o código aqui pra que veja
MARCELO.TREZE 26/07/2013 13:07:57
#426570
Resposta escolhida
a coisa mais simples é se vc pretende fazer isso através de um botão

Private Sub btnRefresh_Click()
Form_load
End Sub
NAUTILUZ 26/07/2013 19:27:11
#426598
Porque ao invés de chamar [Ô]unload[Ô] você não faz uma [Ô]Function[Ô] tendo parte do código do [Ô]Load[Ô]
pode parecer difícil mas e a forma mais pratica para codigos repetitivos,
outra forma e e usar o [Ô]Shell[Ô] para chamar o propio programa e depois fechar com [Ô]unload[Ô]
shell [Ô]teu programa.exe[Ô]
unload me.
MARCELO.TREZE 27/07/2013 10:55:48
#426604
é isso ai o que nautiluz disse use Subs ou Functions, em códigos que serão repetitivos, isso reduz em muito seu trabalho, e essa forma não é mais dificil, uma vez que o que você vai ter de digitar o código no load mesmo, mas jamais faça isso ficar abrindo e fechando seu programa.

exemplos básicos

Function Conectar()
[ô]coloque um código para conexão
End Sub


Sub ApagarCampos()
Text1.Text=[Ô][ô]
Label1.Caption=[Ô][Ô]
End Sub


depois basta chamar as funções assim

Private Sub Form_Load()
Conectar
ApagarCampos
End Sub


Faça o que tem de fazer e chame de novo

Private Sub btnRefresh_Click()
Conectar
ApagarCampos
End Sub


e é isso ai
Tópico encerrado , respostas não são mais permitidas