Pergunta

Eu tenho um formulário no Access 2003 que só deve ser trabalhar com um único registro. Eu posso definir a propriedade Cycle para Current Record, mas o formulário ainda salta para o próximo registro quando eu pressione Enter. Meu primeiro pensamento foi uma propriedade KeyPreview, mas eu não estou vendo um. Meu outro pensamento é talvez o KeyPress ou KeyUp evento, mas eu pensei que eu ia perguntar em caso de consequências não intencionais. Alguma idéia?

Foi útil?

Solução

A propriedade Ciclo afeta apenas a tecla TAB.

Para controlar o comportamento de inserir a chave que é uma propriedade global.

Vá para Ferramentas / Opções - guia Teclado e em "Mover após Enter", selecione "Next campo"

Existem eventos KeyPress e KeyDown que você pode usar para capturar a tecla Enter também, mas isso é mais trabalho.

Outras dicas

Isto pode também ser feito em VBA.

Application.GetOption "Move After Enter" 'get current setting
Application.SetOption "Move After Enter", 0 'don't move
Application.SetOption "Move After Enter", 1 'Next Field
Application.SetOption "Move After Enter", 2 'Next Record

http: //www.pcreview. co.uk/forums/enter-key-moving-next-field-t3454281.html

As chaves momento como TAB , Alt , PgUP , PgDn , Enter são pressionados no final de adicionar o registro (após o último campo na maior parte), o auto de banco de dados salva todas as informações que você inseriu no formulário e apaga os campos de modo que você pode digitar o valor seguinte. Então, o que acontece é que os dados são salvos, mas a forma parece vazia.

3 coisas a fazer:

  1. Form Ciclo propriedade definida como registro atual.
  2. set Pré-visualizar formulário chave de propriedade para Sim.
  3. Adicionar seguinte código para o evento KeyDown da forma:

    '33 - PgUp; 34 - PgDown; 9 - Tab; 18=Alt; 13=Enter
    
    Select Case KeyCode
    Case 33, 34, 18, 9, 13
    KeyCode = 0    
    Case Else
    'Debug.Print KeyCode, Shift
    End Select
    

    Eu encontrei isso enquanto vasculhando a web e não tomar crédito / responsabilidade para o código, mas eu não sei onde eu o encontrei. Obras para mim!

A propriedade Ciclo só funciona com a tecla Tab.

Existem duas opções que você pode prosseguir.

Você poderia prender a chave na KeyDown / KeyUp / KeyPressed
Enter - OU -
Você pode filtrar a fonte de dados para o registro que você quer que eles editar e desativar a adição de novos registros através desse formulário.

Você pode adicionar o código abaixo no seu formulário de evento 'BeforeUpdate'. Se o uso deseja mover para o próximo registro, ele irá pedir usuário para salvar feche o formulário antes que eles possam passar para outro Recorde.

  Private Sub Form_BeforeUpdate(Cancel As Integer)
    Select Case MsgBox("Save?", vbYesNo)
      Case vbYes
        DoCmd.Close
      Case vbNo
        Cancel = True
    End Select
  End Sub

Se você entrar em Opções de acesso na página de arquivo, vá para Configurações de Cliente e a primeira configuração permitirá que você escolha onde seu foco muda para quando você pressionar enter. Pelo menos no Access 2013.

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