Ciao a tutti.
Ho una maschera che si collega ad una semplicissima sottomaschera continua.
La sottomaschera riporta un elenco di attività (grazie ad una query), queste possono essere flaggate come concluse con un tasto "chiudi attività" al quale è collegato il codice:
If IsNull(Me.Testo6) Then
CurrentDb.Execute "UPDATE tabella_Det SET chiuso = true, data=date() WHERE [id_det] = " & Me.Testo2
Else
CurrentDb.Execute "UPDATE tabella_Det SET chiuso = true, data=" & "#" & Format(Me.Testo6, "dd/mm/yyyy") & "#" & " WHERE [id_det] = " & Me.Testo2
End If
dove:
- Testo6: è un campo opzionale che si può compilare per indicare una data di effettuazione attività, diversa dalla data impostata con la funzione date();
- Testo2: è un campo (non visibile all'utente): che riporta la chiave primaria della tabella (tabella_Det) e mi serve per "trovare" il record.
Il codice di per se funziona, ossia aggiorna correttamente il dato. Ma se inserisco a mano una data nel campo "testo6", quando clicco sul pulsante, tutti i campi "Testo6" della maschera continua, assumono lo stesso valore. Dal punto di vista dei dati, non succede nulla, il campo "testo6" non è collegato a nessuna tabella, ma questo comportamento è un problema con gli utenti che lo devono usare, quindi prima di spedire il DB in giro, devo risolverlo.
Allego un paio di immagini.
Prima della modifica:
Dopo aver cliccato sul comando:
Di seguito il link per vedere un esempio di database:
https://drive.google.com/file/d/1pA6ir90KsKKBIz0kUzZF4pZ1tFwcbWjm/view?usp=sharing
Ho escluso la soluzione il cui codice è:
If IsNull(Me.Testo6) Then
CurrentDb.Execute "UPDATE tabella_Det SET chiuso = true, data=date() WHERE [id_det] = " & Me.Testo2
Else
CurrentDb.Execute "UPDATE tabella_Det SET chiuso = true, data=" & "#" & Format(Me.Testo6, "dd/mm/yyyy") & "#" & " WHERE [id_det] = " & Me.Testo2
End If
Me.testo6=null
perchè, anche se mi da l'effetto voluto, non mi pare molto elegante.
Grazie in anticipo a tutti.