Bom dia,
tenho um formulário o qual possui três subformulários aninhados, um dentro do outro. Estes subformulários estão nomeados como SubForm1, SubForm2 e SubForm3.
Dentro de cada subformulário há um campo, nomeado como Contagem, o qual exibe o valor do registro atual e o total de registros. No evento Current de cada um dos subformulários há o seguinte código:
Contagem = [CurrentRecord] & " de " & RecordsetClone.RecordCount
Então quando avançamos ou retrocedemos pelos registros de cada subformulário, o campo Contagem vai exibindo os valores, exemplo "2 de 8", "3 de 8" etc.
Porém, toda vez que os subformulários são atualizados, após termos mudado de registro no formulário principal, o valor do campo Contagem não exibe adequadamente o total de registros. É exibido o valor "1 de 1", mesmo que haja mais registros dentro daquele subformulário. O valor volta a ficar correto quando avanço pelos registros do subformulário, aí então o campo Contagem volta a exibir o total de regitros.
Para contornar esta situação, criei o código abaixo, o qual é executado quando nos movimentamos pelos registros do formulário principal. A intenção é que cada um dos subformulários receba o foco, vá para o último registro, e retorne para o primeiro.
SubForm1.SetFocus
DoCmd.GoToRecord , , acLast
DoCmd.GoToRecord , , acFirst
SubForm1!SubForm2!.SetFocus
DoCmd.GoToRecord , , acLast
DoCmd.GoToRecord , , acFirst
SubForm1!SubForm2!SubForm3.SetFocus
DoCmd.GoToRecord , , acLast
DoCmd.GoToRecord , , acFirst
Mas está funcionando parcialmente e não consigo entender o que há de errado. O campo Contagem do SubForm1 passa a exibir o seu total de registros, o campo Contagem do Subform3 também, mas o campo Contagem do SubForm2 continua exibindo "1 de 1", mesmo tendo mais do que 1 registro.
E o engraçado é que se eu deixar o código como o mostrado a seguir, sem fazer referência ao SubForm3...
SubForm1.SetFocus
DoCmd.GoToRecord , , acLast
DoCmd.GoToRecord , , acFirst
SubForm1!SubForm2!.SetFocus
DoCmd.GoToRecord , , acLast
DoCmd.GoToRecord , , acFirst
...mesmo assim o SubForm3 atualiza corretamente o valor do campo Contagem, e o SubForm2 não.
Caso alguém tenha uma outra sugestão para exibir o total de registros, agradeço