Notifications
Clear all

ARMAZENAR DATA DO ÚLTIMO REGISTRO ACESSADO EM FRM ANTERIOR

9 Posts
2 Usuários
0 Reactions
1,683 Visualizações
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

Salve aos membros deste fórum.

Estou com a seguinte demanda para um projeto:

No "frm_rbpa", após o preenchimento dos txtbox's: "txt_periodo", "txt_rpa" e "txt_fspa", ao selecionar o "btn_ok", estando suas condições validadas anteriormente, ele me abre o "frm_treeview1", que em cada ponta de suas raízes me abrem um formulário (para teste consideremos o "frm_anexo1_quest" que salva dados na sheets("Anexo1")) ...nestes formulários irei escrever o cód do evendo "AFTERUPDATE" para que retornem uma pesquisa com base na última data preenchida em "txt_periodo" do "frm_rbpa"; se não houver dados cadastros anteriormente na sheets("Anexo1") na coluna 2 a partir da 2º linha semelhantes, então significa que não há dados a serem consultados tratando-se de um "novo cadastro"...essa última parte desenrolo, porém queria uma ajuda de como armazenar em uma variável a data do último registro acessado pelo formulário "frm_rbpa" para poder definir se será um retorno do "afterupdate" (uma pesquisa) ou um novo registro.

Espero ter sido claro na minha questão...

Link para download: https://www.dropbox.com/s/fvmoo5zav984k ... .xlsm?dl=0

Muito obrigado pelo tempo atenção concedidos!

 
Postado : 04/06/2018 10:56 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

AMORIM123,

Boa tarde!

Infelizmente, aqui no trabalho eu não consigo acessar sites de compartilhamento de arquivos. Esses sites s~]ao bloqueados pela maioria das empresas em razão de conterem muitos vírus.

Mas... se entendi corretamente o problema relatado por você (salvar a data do formulário), informo que há duas formas de fazer isso:
1 - A primeira forma é você criar uma variável Global para armazenar a data quando ela for data entrada na respectiva TextBox. Em um módulo qualquer, na parte de declarações do módulo (antes de qualquer outra linha de comando) você deve digitar algo como:

Global DataAnterior as date

Desse modo, essa variável estará disponível em qualquer lugar do seu projeto e você poderá usar o conteúdo dela.

2 - A segunda forma é você usar um célula qualquer da planilha que está trabalhando (uma que ninguém vai usar, inclusive depois pode até ocultar a coluna toda para não ser impressa quando a pessoa imprimir a planilha) e salvar nessa célula a data que você depois quer pegar.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/06/2018 11:24 am
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

um pode ser também...vou testar aqui...tava quebrando a cabeça

 
Postado : 04/06/2018 11:29 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Ok. Teste e vote positivamente, por gentileza, clicando na mãozinha ao lado da ferramenta CITAR.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/06/2018 11:51 am
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

fiz da seguinte forma..:

No cód. do meu "frm_rbpa" incluí "Public datAnterior As Date" quantifiquei ela como sendo dentro do meu "btn_ok" como "datAnterior = Me.txt_periodo.Value"
e no módulo do meu "frm_anexo1_quest" no evento INITIALIZE : "Sheets("Comum").Cells(1, 8).Value = datAnterior" ....
Com essas instruções os valores digitados no "txt_periodo" do "frm_rbpa" deveriam ser armazenados na variável public "datAnterior" e em "Sheets("Comum").Cells(1, 8).Value" deveria receber o último valor digitado em "txt_periodo" do "frm_rbpa", porém não ocorreu...

Definir ela como public pois deve ser válida para o projeto inteiro...

Não deu certo... :?

 
Postado : 05/06/2018 10:58 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

AMORIM123,

Boa tarde!

Da forma que você fez não dá certo mesmo. Não adianta declarar variável como Public dentro de um módulo de formulário. Ela apenas vai ser pública para todos os objetos, procedures e módulos desse formuário. Jamais será pública para todo o projeto.

Siga os passos que lhe indiquei que dará certo:
1 - Num módulo padrão (não de formulário e nem de planilha), na área de declarações do módulo (antes de qualquer código) crie uma variável GLOBAL com a seguinte declaração:

Global DataAnterior As Date '(ou As String se preferir)

No formulário que tem o textbox com a data que deve ser apanhada depois, armazene a data com a seguinte declaração:

'Se tiver declarado como String
DataAnterior  = TextBox1.Text
'Se tiver declarado como Date
DataAnterior  = CDate(TextBox1.Text)

No outro local onde pretende pegar a data, basta pegar a data diretamente da variável.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 05/06/2018 11:52 am
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

wagner,

Fiz conforme sua orientação:

no módulo padrão:

Global datAnterior As Date

no "btn_ok" do meu "frm_rbpa" quantifiquei a variável:

datAnterior = CDate(Me.txt_periodo.text)

e no meu evento INITIALIZE do "frm_anexo1_quest":

Sheets("Comum").Cells(1, 8).Value = datAnterior

porém, o resultado esperado era "25/05/2018" que foi a data digitada no "txt_periodo" do "frm_rbpa", mas foi obtido: 12:00:00 AM

 
Postado : 05/06/2018 1:27 pm
AMORIM123
(@amorim123)
Posts: 77
Trusted Member
Topic starter
 

wagner... amigão.

consegui o esperado o fiz da seguinte forma:

No módulo padrão:

'usei "Public, pois a depender de onde a foi declarado ela poderá ser reconhecida para o projeto inteiro; isto é, não apenas para uma procedure ou evento dentro do módulo"
Public datAnterior As Date

No módulo do form
datAnterior = CDate(Me.txt_periodo.Value)

no INITIALIZE do segundo form
Sheets("Comum").Cells(1, 8).Value = datAnterior

Estava apresentando aquele resultado "12:00:00 AM", pois entre o fechamento do meu "frm_tbpa" ao clicar no seu "btn_ok" e abrir o form seguinte ainda tem uma treeview ...porém quando abro o form que estava designado a passar a data ...ai sim..ele retorno o esperado..

Muito Obrigado meu amigo!

 
Postado : 05/06/2018 2:34 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Ok. Valeu!

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 05/06/2018 3:25 pm