Condividi tramite

Access, obbligare la compilazione di un campo

Anonimo
2022-01-11T18:17:39+00:00

Salve

nel mio DB vi è una maschera per inserire nuovo record ed un pulsante che mi apre una ulteriore maschera dopo aver salvato il nuovo record.. I campi sono semplicemente Cognome, Nome. etc...

Il record mi viene salvato comunque, anche se inserisco una sola lettera nel campo "Nome".

Io vorrei rendere obbligatorio l'inserimento del campo "Cognome" per il salvataggio, con un MsgBox che ricordi appunto l'obbligo di tale inserimento.

(Rendendo obbligatorio il campo "Cognome" nella tabella di base mi crea vari problemi come errori, debug, etc in altre maschere per cui preferisco non utilizzare questo metodo).

Il codice (che evita la visione di altri errori) del pulsante è questo:

Private Sub Comando8_Click()
On Error GoTo fine
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenForm "MasTabpazienti", acNormal, "", "[ID]=" & ID, , acNormal
DoCmd.Close acForm, "Maschera di spostamento"
DoCmd.SetWarnings True
fine:
If Err.Number = 3075 Then
Exit Sub
End If
End Sub

___________

Grazie

Microsoft 365 e Office | Accesso | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

  1. Anonimo
    2022-01-12T15:33:54+00:00

    ciao Aurelio,

    è una istruzione da impartire via VBA.

    Form.Dirty property (Access) | Microsoft Docs

    dirty è una proprietà della form che diventa true nel momento in cui è in corso una modifica, mentre è false quando non ci sono modifiche oppure sono state completate.

    Ci sono dei casi in cui è necessario forzare il salvataggio delle informazione nelle tabelle, generalmente lavorando con form bound non è comune.

    Nel tuo scenario, bisognerebbe capire meglio l'applicazione nella sua interezza e la ragione per cui lo dovresti utilizzare.

    ciao, Sandro.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2022-01-14T17:01:23+00:00

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2022-01-12T13:54:45+00:00

    Grazie Sandro

    Mi applicherò sperando di riuscirci alla tua prima soluzione. In ogni caso, e tanto per imparare, se volessi adottare la condizione "me.dirty=false" dove dovrei inserirla ? Nelle proprietà del campo come condizione prima dell'aggiornamento ? Oppure dove altro ? Grazie per la pazienza.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2022-01-12T08:16:13+00:00

    ciao Aurelio,

    potresti valutare di impostare un vincolo sul campo cognome nella tabella e gestire l'errore del dbengine in caso di mancata compilazione nella form oppure valutare l'evento before update della form e vincolare la compilazione del controllo preposto.,

    Sulla base di questo spunto dovresti riuscire a procedere, in ogni caso prova ad effettuare una ricerca nel forum con la parola chiave validazione controlli e/o evento prima di aggiornare, è un problema decisamente trattato.

    per forzare la scrittura di un dato nella tabella basta un semplice me.dirty=false.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento