Aggiornamento casella di controllo

di il
8 risposte

Aggiornamento casella di controllo

Buonasera, volevo chiedere se qualcuno mi aiuta ad aggiornare tramite query sql una casella di controllo.

In pratica devo aggiornare questa casella al valore False se il campo A all'interno di una tabella risulta vuoto, con condizione che un campo B sia uguale alla parola ADMIN. La difficoltà che ho incontrato è che il controllo deve essere effettuato su tutti i record. Quindi se solo un record ha il campo A non vuoto, allora la casella di controllo non deve mutare il suo stato attuale.

Ho provato a scrivere qualcosa del genere, ma ovviamente senza risultati positivi:
Private Sub btnChiudi_Click() 
Dim rs as DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT MsgAdmin FROM operatori")
While Not rs.EOF
If rs(0) = Null Then
Dlookup("da_leggere", "operatori", "ruolo = 'ADMIN'") = False
rs.MoveNext
End If
Wend
End Sub
Capisco che è un pastrocchio ma di più non riesco.
Grazie.

8 Risposte

  • Re: Aggiornamento casella di controllo

    alexps81 ha scritto:


    ... aggiornare tramite query sql una casella di controllo.
    Devi aggiornare una casella di controllo, quindi un controllo in una maschera, o un campo sì/no (boolean)?
    Se sei in una maschera, questa casella di controllo è associata o no? Maschera singola o maschera continua?
  • Re: Aggiornamento casella di controllo

    Questa casella di controllo non è in maschera. Attraverso l'evento click di un button vorrei che questa casella mutasse il suo stato (da True a False) se i campo MsgAdmin è vuoto in tutti i suoi record.
    Se questa casella di controllo non è spuntata allora un'altra maschera non si aprirà, viceversa qualora fosse spuntata si provocherà l'apertura della maschera (ma questo ultimo passaggio già l'ho fatto. Mi manca il primo)
  • Re: Aggiornamento casella di controllo

    Che ne pensate? Si riesce....non so spero di aver esposto bene il mio problema.
  • Re: Aggiornamento casella di controllo

    Si può far tutto e basta un Dlookup senza aprire un inutile recordset....
    Il problema non è se si può fare ma se ha senso quello che fai...

    Phil ti ha chiesto se il controllo di cui vuoi cambiare stato sia o meno associato per un motivo preciso... è questo che contribuisce a capire se abbia o meno senso quello che fai... e se non è associato non ne ha perché si perde l'info e forse sarebbe meglio una variabile ambiente...
  • Re: Aggiornamento casella di controllo

    Il controllo non è associato.
    Se questo campo SI/NO rimane valorizzato su False, allora (attraverso altro codice sull'eventuale open di un'altra maschera) non va ad aprire la maschera che ho accennato tra parentesi. Viceversa se questo campo SI/NO è valorizzato a True allora questa maschera si aprirà. Però tutto questo non credo importi. Io volevo solo capire come fare a mutare lo stato in False di un campo SI/NO di una tabella tenendo conto il campo MsgAdmin si vuoto in tutti i suoi record.
  • Re: Aggiornamento casella di controllo

    Scusate, forse ci sono riuscito. Chiaramente con il vostro aiuto.

    Ho scritto
    Private Sub btnChiudi_Click
    If IsNull(DLookup("MsgAdmin", "operatori")) Then
        CurrentDb.Executive "UPDATE operatori SET da_leggere = False WHERE ruolo = 'ADMIN'" 
    End If
    End Sub
    Pare funzioni. Vorrei un vostro parere.
  • Re: Aggiornamento casella di controllo

    Pardon....non ho risolto nulla. Fa il controllo solo del primo record. Se il campo MsgAdmin è nullo allora aggiorna a False la casella SI/NO se non è nullo allora la lascia al suo stato attuale. Se invece il primo record è nullo e gli altri non sono nulli allora la casella SI/NO va a False.
  • Re: Aggiornamento casella di controllo

    Personalmente non ho ancora capito cosa nello specifico devi fare ... perché scrivi cose che confondono molto chi legge.

    Un esempio è quel codice che dici funzionare... ed è ovviamente IMPOSSIBILE, non solo non può funzionare ma deve restituire un errore bello grande, questo contribuisce a rendere impossibile anche distinguere se le cose che dici siano veramente connesse a quelle che poi fai... oppure sei un po maldestro nel riportare il codice... e questo a scapito della chiarezza.

    Boh...
Devi accedere o registrarti per scrivere nel forum
8 risposte