Si ho provato i valori default sulla form ma senza risultato
nella form sopra dopo aver inserito il nuovo record su Guide (Sottomaschera tabella relazionata) con il codice VBA sopra
devo ritornare in editing e conservare Data e Istruttore
mentre Allievo Data Ora Ore i due flag e le note devono ritornare vuoti.
Ho rifatto il codice un po piu' ordinato:
Private Sub pulAggiungiGuida_Click()
On Error GoTo Err_OK_Click
' controllo dati prima di inserire il record in Guide
Dim codice, data, ORA, ore, istrutt, VOTO, brevi, pross, autos, notte, mess
' carico i valori editati dall'utente
codice = [Forms]![InserimentoGuideVeloce]![txtID]
data = [Forms]![InserimentoGuideVeloce]![txtData]
ORA = [Forms]![InserimentoGuideVeloce]![txtOra]
ore = [Forms]![InserimentoGuideVeloce]![cboOre]
istrutt = [Forms]![InserimentoGuideVeloce]![cboIstruttore]
VOTO = [Forms]![InserimentoGuideVeloce]![txtVoto]
brevi = [Forms]![InserimentoGuideVeloce]![txtNote]
pross = [Forms]![InserimentoGuideVeloce]![txtProx]
autos = [Forms]![InserimentoGuideVeloce]![flgA10]
notte = [Forms]![InserimentoGuideVeloce]![flgNotte]
If autos = "" Or IsNull(autos) Then autos = 0
If notte = "" Or IsNull(notte) Then notte = 0
If codice = "" Or IsNull(codice) Then
mess = "Inserire un allievo per la guida"
Err.Raise 0
ElseIf data = "" Or IsNull(data) Then
mess = "Inserire la data della guida"
Err.Raise 0
ElseIf istrutt = "" Or IsNull(istrutt) Then
mess = "Inserire l'istruttore della guida"
Err.Raise 0
ElseIf ORA = "" Or IsNull(ORA) Then
mess = "Inserire l'ora della guida"
Err.Raise 0
ElseIf ore = "" Or IsNull(ore) Then
mess = "Inserire la durata della guida"
Err.Raise 0
End If
' aggiungo il nuovo record
DoCmd.OpenTable "Guide", acViewNormal, acAdd
DoCmd.GoToControl "COD_ANAGRAFE"
Screen.ActiveControl.Value = codice
DoCmd.GoToControl "DATA"
Screen.ActiveControl.Value = data
DoCmd.GoToControl "ORA"
Screen.ActiveControl.Value = ORA
DoCmd.GoToControl "ORE"
Screen.ActiveControl.Value = ore
DoCmd.GoToControl "ISTRUTTORE"
Screen.ActiveControl.Value = istrutt
DoCmd.GoToControl "VOTO"
Screen.ActiveControl.Value = VOTO
DoCmd.GoToControl "BREVI"
Screen.ActiveControl.Value = brevi
DoCmd.GoToControl "PROX"
Screen.ActiveControl.Value = pross
DoCmd.GoToControl "A10"
Screen.ActiveControl.Value = autos
DoCmd.GoToControl "NOTTE"
Screen.ActiveControl.Value = notte
DoCmd.Close acTable, "Guide"
' resetto solo i valori che servono
Me!txtOra.ControlSource = ""
Me!cboOre.ControlSource = ""
Me!txtVoto.ControlSource = ""
Me!txtNote.ControlSource = ""
Me!txtProx.ControlSource = ""
Me!flgA10.ControlSource = ""
Me!flgNotte.ControlSource = ""
Me.Requery
Me.Repaint
Exit Sub
Err_OK_Click:
MsgBox mess, vbOKOnly, "Manca un dato"
End Sub