Access 2007 Split Form VBA: ACNewrec On Open Impede Tabbing Through Form - Atos como o primeiro campo não é 'selecionado'

StackOverflow https://stackoverflow.com/questions/4047422

Pergunta

Espero que alguém possa me ajudar, ou pelo menos ajudar a descobrir uma solução alternativa.

Estou usando o recurso de formulário dividido do Access 2007 e tenho o código abaixo executado no evento form_open, bem como após dois eventos de botão. O código funciona bem quando executado após os eventos Button_Click, mas quando é executado no evento Form_open, causa problemas.

Se o formulário for aberto e o usuário inserir texto no primeiro campo, ele não poderá usar a guia ou o mouse para selecionar o próximo campo de formulário. O usuário está preso no campo do primeiro formulário até pressionar o ESC para cancelar a entrada de dados. Para inserir dados com sucesso no campo do primeiro formulário quando o formulário for aberto, um usuário deve primeiro selecionar outro campo de formulário e depois selecionar o primeiro campo do formulário e digite o texto no campo First Form. Após essa bobagem, o usuário pode selecionar o próximo campo de formulário com a guia ou mouse. Isso deve ser realizado uma vez que o formulário for lançado. O mesmo código VBA nos eventos Button_Click funciona bem.

Notável: Quando o formulário é aberto, nenhum dos campos de formulário na seção da folha de dados do formulário aparece 'selecionado'. Quando um usuário começa a inserir dados no campo do primeiro formulário, o marcador 'novo registro' (*) se move para a segunda linha como deveria, mas a primeira linha não mostra os dados sendo inseridos. Esse comportamento é estranho.

Após a execução do campo Clear, clique em outro campo, clique de volta na solução alternativa de campo descrita acima, a folha de dados mostra campos e dados selecionados corretamente à medida que são inseridos.

Alguma ideia? Isso é um inseto? Existe uma solução alternativa fácil, como realizar a solução alternativa de seleção de campo via VBA no formulário Open?

Qualquer ajuda é muito apreciada.

Código:

DoCmd.ApplyFilter , "([Contractor].[CheckOutStamp] Is Null)"
DoCmd.GoToRecord , "", acNewRec

Link para MDB:https://docs.google.com/leaf?id=0b-jx09cwiqdsywm2mzmzmdqtyjuzni00n2e5lwfjytktnzfiywyzmdziywu1&hl=en&authkey=cppmomef

Foi útil?

Solução

Alguns pensamentos:

Tente movê -lo de Onopen para Onload. Os eventos no ONOPEN podem acontecer antes que os dados sejam realmente carregados, onde o Onload acontece depois que isso já está concluído.

Além disso, você pode querer apenas definir a propriedade de filtro do formulário como [Contractor].[CheckOutStamp] Is Null e defina o filtro como sim, e defina o formulário como o DataEntry, o que significa que ele faz com que um novo registro no Open e não carregue nenhum dos registros mais antigos. Uma vez aberto, você pode alterar o modo Editar/Adicionar do Formulário para o que quiser.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top