Jump to content
Fórum Script Brasil
  • 0

Ao Abrir FORMULÁRIO, ir para o "próximo registro não trabalhado"


Question

Boa tarde a todos os membros. 

Segue meu pedido de orientação: (já procurei em outros locais a respeito)

Criei um formulário de agendamento de visitas onde há cadastrado mais de 30 clientes com subformulário com as devidas características da visita agendada. (data, horário, quem vai, etc.) onde se salva a visita e repassa os dados para quem vai visitar. 

Sempre que se abre o formulário, é inicializado no primeiro nome da lista de clientes. Como são muitos, fica complicado  para a pessoa AGENDADORA  iniciar os trabalhos de onde parou..

Existe algum comando onde podemos configurar para abrir no registro ainda não salvo? (iniciar de onde parou?

tela de visitas.jpg

Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Caro ALYSON, não é bem isso. 

Ele abre e vai para o ultimo registro do cadastro de clientes.. 

A intenção é: Se ele for fechado no cadastro 500 ,  quanto for aberto da próxima vez  ir para esse 500 ou no próximo e "não abrir mo primeiro ou no ultimo. "

Usei o seguinte código: 

DoCmd.GoToRecord , , acLast

Grato por sua atenção

Edited by ROGERIO BESERRA DA SILVA
Link to post
Share on other sites
  • 0

@ROGERIO BESERRA DA SILVA bom dia.

Eu também tive esse problema é resolvi criando uma tabela para armazenar o último registro que o formulário estava aberto.

No evento antes de fechar coloque para editar a tabela Aonde está guardando o registro e no evento ao abrir mande o macro ir para o registro.

Isso que passei é o conceito que usei se tiver mesmo assim com dúvida avisa ok?

Para funcionar como um tipo de log

Link to post
Share on other sites
  • 0

Boa noite @ROGERIO BESERRA DA SILVA.

Você coloca uma tabela para armazenar o registro atual.

Private Sub Form_Current()
'Capturar o Código atual
CurrentDb.Execute ("UPDATE logRegistro SET Registro = " & Nz(Me.[Código], 0) & " WHERE Tabela = 'tblClientes';")
End Sub

e ao abrir pega o registro armazenado e mandar ir para ele:

Private Sub Form_Open(Cancel As Integer)
'Se o regitros armazenado for 0 vai para um novo registro
If DLookup("[Registro]", "logRegistro", "Tabela = 'tblClientes'") = 0 Then
    DoCmd.GoToRecord , , acNewRec
Else
    DoCmd.GoToRecord , , acGoTo, DLookup("[Registro]", "logRegistro", "Tabela = 'tblClientes'")
End If
End Sub

Mandando também ai a tabela para servir de exemplo.

https://drive.google.com/open?id=1RV2_A0UDhRlWCIrs5PtCb5GDeHC0tJWA

Link to post
Share on other sites
  • 0

Grato pela resposta,,, 

Mas, como é minha sobrinha que esta fazendo, ela não esta entendendo. 

Você coloca uma tabela é o mesmo que "criar?

Essa linha de comando: 

Private Sub Form_Current()
'Capturar o Código atual
CurrentDb.Execute ("UPDATE logRegistro SET Registro = " & Nz(Me.[Código], 0) & " WHERE Tabela = 'tblClientes';")
End Sub

é pra ser inserida em qual form, em qual campo?

E o segundo comando vai em qual form , em qual campo? 

Grato

Link to post
Share on other sites
  • 0

@ROGERIO BESERRA DA SILVA No banco de dados eu criei uma tabela para armazenar aonde esta o formulário(em que registro) e coloquei um comando em VBA para atualizar essa tabela.

No anexo que mandei em a tabela que chamei de logRegistro e dentro da tabela tem a coluna Tabela. Você pode usar o nome do formulário para armazenar. A ideia é sempre que o registro for mudado uma tabela quarda ande você esta no formulário e depois quando você for abrir o formulário é levado direto ao ultimo registro visualizado.

Olha se entendeu

Link to post
Share on other sites
  • 0

Descobri o erro. Era o ACCESS dela.. diz tudo em outro micro e funcionou perfeitamente, 

Parabéns. Seu código esta perfeito . 

"O que descobri também é que o ACCESS não vai aguentar a paulada.. Depois de ficar umas 2 horas mexendo no BD, começa a dar erros no código. 

Meus assim, muito obrigado pela sua ajuda.. 

Parabéns pelo conhecimento e pela presteza. (só me diz onde eu coloco como resolvidos)

erro access.jpg

Edited by ROGERIO BESERRA DA SILVA
o problema era o software instalado na maquina
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148719
    • Total Posts
      644507
×
×
  • Create New...