Home Ritorna

 

Tutorial Access - Inserire dati in maschere diverse

Questo tutorial spiega un modo diverso per inserire dati nelle caselle combinate diverso da quanto spiegato nel tutorial "Evento non in elenco".

In questo caso abbiamo una maschera in cui inseriamo dei nominativi ed a fianco di questi ultimi specifichiamo il lavoro svolto leggendo la tabella su cui è basata la casella combinata Servizio:

Se cerchiamo un lavoro che non è già stato inserito in tabella possiamo usare l'evento "non in elenco" oppure questa ulteriore soluzione:

Nell'evento Non in elenco della casella combinata Servizio inseriamo questa routine:

Private Sub Servizio_NotInList(NewData As String, Response As Integer)
MsgBox "Doppio clic per inserire nuovo dato", , "ISI s.r.l."
Response = acDataErrContinue
End Sub

Nell'evento Su doppio clic della casella combinata Servizio inseriamo questa routine:

Private Sub Servizio_DblClick(Cancel As Integer)
On Error GoTo Errore
Dim P As Long

If IsNull(Me![Servizio]) Then
Me![Servizio].Text = ""
Else
P = Me![Servizio]
Me![Servizio] = Null
End If
DoCmd.OpenForm "Categorie", , , , acFormAdd, acDialog, "Inserisci qui il nuovo dato"
Me![Servizio].Requery
If P <> 0 Then Me![Servizio] = P

Exit Sub

Errore:
MsgBox Err.Description
Exit Sub

End Sub

In pratica, se si inserisce nella casella un lavoro inesistente il sistema informa che per inserirlo è necessario fare doppio clic.

Facendo doppio clic si cancella il lavoro eventualmente scritto, si apre la maschera categorie con la casella precompilata dalla voce Inserisci qui il nuovo dato: si scrive il nuovo lavoro, si chiude la maschera e i dati aggiunti sono disponibili nella casella combinata.

Nell'esempio che potete scaricare sono state utilizzate routine per gli eventi Su Caricamento e Prima di Aggiornare.
Questi argomenti sono già stati trattati in altri tutorial: ecco quindi spiegata la routine nella maschera categorie:

Private Sub Form_Load()
If Not IsNull(Me.OpenArgs) Then Me.Categoria = Me.OpenArgs
End Sub

Scaricate il file per access 2000/XP

 

 

Ritorna