Domanda

Ho una forma in Access 2003 che dovrebbe lavorare solo con un singolo record. Posso impostare la proprietà Cycle a Current Record, ma la forma salta ancora al record successivo quando si preme Invio. Il mio primo pensiero era una proprietà KeyPreview, ma io non sto vedendo uno. L'altro mio pensiero è forse il KeyPress o KeyUp evento, ma ho pensato di chiedere in caso di conseguenze non intenzionali. Tutte le idee?

È stato utile?

Soluzione

La struttura del ciclo influisce solo il tasto TAB.

Per controllare il comportamento del tasto Enter che è una proprietà globale.

Vai su Strumenti / Opzioni - scheda Tastiera su "mossa dopo Invio" selezionare "Avanti Campo"

Non ci sono eventi di pressione e KeyDown che è possibile utilizzare per intercettare il tasto Invio troppo, ma questo è più lavoro.

Altri suggerimenti

Questo può essere fatto anche in 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

I tasti momento come TAB , Alt , PgUP , PgDn , Invio vengono premuti alla fine di aggiungere il record (dopo l'ultimo campo per lo più), l'automatico del database salva tutte le informazioni inserite nel modulo e spazza via i campi in modo che è possibile inserire il valore successivo. Quindi, quello che succede è che i dati vengono salvati ma la forma sembra vuota.

3 le cose da fare:

  1. Modulo di ciclo immobiliare impostato su Record corrente.
  2. Chiave Modulo Anteprima proprietà impostata su Sì.
  3. Aggiungi seguente codice al Evento KeyDown del modulo:

    '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
    

    Ho trovato questo mentre perlustrando il web e non prendo credito / responsabilità per il codice, ma non so dove l'ho trovato. Lavora per me!

La proprietà ciclo funziona solo con il tasto Tab.

Ci sono due opzioni si potrebbe perseguire.

Si potrebbe intrappolare il tasto Invio in TastoGiù / KeyUp / keyPressed
- OPPURE -
Si potrebbe filtrare l'origine dati per il record che si desidera modificarli, e disabilitare l'aggiunta di nuovi record attraverso quella forma.

È possibile aggiungere il codice di seguito al form evento 'PrimaDiAggiornare'. Se l'uso vuole passare al record successivo, chiederà all'utente di salvare quindi chiudere il modulo prima di poter passare ad un altro 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 vai in Opzioni di Access sulla pagina del file, andare su Impostazioni client e la prima impostazione vi permetterà di scegliere dove le modifiche di messa a fuoco a quando si preme INVIO. Almeno in Access 2013.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top