Aggiornamento maschera continua

di il
3 risposte

Aggiornamento maschera continua

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:
prima.JPG
prima.JPG

Dopo aver cliccato sul comando:
dopo.JPG
dopo.JPG

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.

3 Risposte

  • Re: Aggiornamento maschera continua

    Perchè non associ il controllo Testo6 al campo Data? in quel modo potresti tranquillamente fare ciò che chiedi senza bisogno di update-are, poi nel codice del pulsante invece di fare l'update metti me!chiuso=true (e se non c'è la data anche me!data = date(). poi aggiorni la subform (immagino debba scomparire la riga?!)

    altre cose (non significative per la risoluzione del problema):
    Testo2 e Testo6 sono già piuttosto brutti come nomi, difficilmente ne potevi scegliere dei meno significativi ma a mio parere la cosa peggiore è chiamare data un campo data, che ok access gestisce ma ...
  • Re: Aggiornamento maschera continua

    Ciao!
    Grazie per la risposta.
    La sottomaschera non è agganciata ad una tabella ma ad una query, quindi non riesco ad associare i dati ai controlli come hai suggerito.
    Questo è un database di prova che ho preparato al volo, in quello che sto usando i controlli hanno dei nomi che, in teoria, ricordano il tipo di dato a cui vengono associati, anche se poi dopo pochi giorni me lo dimentico ...
  • Re: Aggiornamento maschera continua

    Che sia agganciato ad una query non significa per forza che non sia aggiornabile, dipende dall'SQL
Devi accedere o registrarti per scrivere nel forum
3 risposte