FORM LOAD
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?
Unload Me
Fecha e zera todos os controles. Não era bem o que eu queria, mas resolveu!
Fecha e zera todos os controles. Não era bem o que eu queria, mas resolveu!
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?
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.
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.
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
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
a coisa mais simples é se vc pretende fazer isso através de um botão
Private Sub btnRefresh_Click()
Form_load
End Sub
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.
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.
é 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
depois basta chamar as funções assim
Faça o que tem de fazer e chame de novo
e é isso ai
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