Impedire lo spostamento al record successivo quando colpisce Invio?
-
23-08-2019 - |
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?
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:
- Modulo di ciclo immobiliare impostato su Record corrente.
- Chiave Modulo Anteprima proprietà impostata su Sì.
-
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.