Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Comando "selezione/deseleziona tutte" le checkbox di una maschera continua

  1. #1
    maxs84 non è in linea Scribacchino
    Premetto che prima di aprire un 3d faccio abbondati ricerche su santo google e dei test, ma spesso, partendo da zero da solo arrivo a metà strada o prendo strade che alla fine NON mi portano dove voglio.

    Ho una maschera continua dove per ogni record c'è una spunta da selezionare.

    Ovviamente sarebbe comodo avere a piè di pagina un'altra checkbox o un comando per selezionare o deselezionare tutte le caselle...

    Ho quindi creato una query di aggiornamento che come criterio sulla checkbox ha questo iif:
    IIF(NomeCheckBox=true;false;true)
    
    Poi sulla maschera continua ho creato un comando che al click esegue:
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "NomeQuery"
    DoCmd.SetWarnings True
    Me.Requery
    
    All'apertura della maschera, se clicco il comando, va tutto bene.

    Il problema nasce nel momento in cui io tolgo o metto qualche spunta manualmente e poi uso il comando "selezione/deseleziona tutti".

    Infatti, ottengo 2 effetti indesiderati:
    1-messaggio di errore di modifica contemporanea dei record
    2-non avrò più la possibilità di selezionare/deselezionare tutti i controlli, ma potrò solo invertire il loro stato da "true" a false" e viceversa!

  2. #2
    maxs84 non è in linea Scribacchino
    Allora, per quanto riguarda il problema 2 ho risulto facendo 2 query di aggiornamento diverse, una per selezionare tutto e una per deselezionare tutto e le ho associate al "dopo aggiornamento" di una checkbox dove se la stessa viene portata a true, parte la query di aggiornamento che seleziona tutti e viceversa.

    Rimane il problema che, se spunto alcune caselle a mano, ho l'errore 1.

  3. #3
    maxs84 non è in linea Scribacchino
    Apparentemente ho risolto anche l'errore 1, aggiungendo questo comando sul dopo aggiornamento del checkbox "tutti":
    DoCmd.RunCommand accmdSaveRecord
    
    Sempre online, però, ho trovato una seconda soluzione, ovvero impostare questa riga sull'evvento errore della maschera:
    If DataErr = 7787 Then Response = acDataErrContinue
    
    Cosa cambia?
    Una delle 2 è la via corretta?

    Grazie

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Non sto nemmeno a leggere tutto quello che hai scritto perchè mi pare siamo fuori strada.
    Il concetto è solo 1.
    Se hai delle CheckBox in una Maschera Continua DEVONO essere associate ad un CAMPO nella Tabella.
    Per forzarle tutte a Vero/Falso devi solo eseguire una Query DI AGGIORNAMENTO o UPDATE sui Records..., quindi eseguire il Requery della Maschera.
    ℹ️ Leggi di più su @Alex ...

  5. #5
    maxs84 non è in linea Scribacchino
    Infatti è quello che ho fatto!

    Adesso vorrei solo sapere se, per evitare l'errore di modifica contemporanea dei record è meglio usare:
    DoCmd.RunCommand accmdSaveRecord
    
    sul dopo aggiornamento della checkbox "tutti"

    oppure
    If DataErr = 7787 Then Response = acDataErrContinue
    
    sull'evvento errore della maschera

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Riconoscere utenti multipli con il comando Environ("USERNAME"
    Da paoloderigo nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 30-09-2020, 11:42
  2. Il corrispettivo VBA di "Arresta Tutte Le Macro"
    Da nman nel forum Microsoft Access
    Risposte: 13
    Ultimo Post: 24-10-2015, 11:42
  3. Risposte: 11
    Ultimo Post: 14-05-2015, 21:40
  4. Problema maschera continua e "sottomaschera"
    Da CESABAS nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 09-09-2014, 08:40
  5. Risposte: 4
    Ultimo Post: 22-05-2014, 14:04