Blocco aggiornamento campo con condizione

di il
12 risposte

Blocco aggiornamento campo con condizione

Buongiorno a tutti, ho una maschera dove ho 8 campi in cui immetto una valuta chiamata valuta1-2-..8, a fianco a questocampo ho una spunta che chiameremo v1-v2 -….v8. La spunta detta la condizione perciò se questa spunta è settata a “vero” il campo non deve essere aggiornato, ho provato con Enabled e Locked ma ogni volta che la query fa l'aggiornamento il campo valuta viene sempre aggiornato.Premetto che il campo viene aggiornato in automatico attraverso due query diverse in due maschere anch'esse diverse da  quella dove si trova il campo valuta. E' possibile una soluzione ? grazie

12 Risposte

  • Re: Blocco aggiornamento campo con condizione

    Usiamo la punteggiatura completa, PUNTO ACCAPO è tra le opzioni ed è utile a rendere più leggibile il messaggio.

    1. Non si chiama SPUNTA si chiama CheckBox o Casella di Controllo.
    2. Nella Maschera NON ci sono CAMPI, ci sono CONTROLLI potenzialmente associabili a Campi.
    3. Non si capisce se, la CheckBox è associata ad un campo in Tabella o meno.
    4. Non si capisce se e come gestisci il codice che va a gestire lo stato dei Controlli da condizionare con lo stato della CheckBox

    Insomma cerca di essere più ordinato e chiaro, siamo in un Forum Tecnico ed è indispensabile essere quanto meno allineati nella terminologia e nell'esposizione.

  • Re: Blocco aggiornamento campo con condizione

    20/11/2023 - nerofumo ha scritto:


    Buongiorno a tutti, ho una maschera dove ho 8 campi in cui immetto una valuta chiamata valuta1-2-..8, a fianco a questocampo ho una spunta che chiameremo v1-v2 -….v8. La spunta detta la condizione perciò se questa spunta è settata a “vero” il campo non deve essere aggiornato, ho provato con Enabled e Locked ma ogni volta che la query fa l'aggiornamento il campo valuta viene sempre aggiornato.Premetto che il campo viene aggiornato in automatico attraverso due query diverse in due maschere anch'esse diverse da  quella dove si trova il campo valuta. E' possibile una soluzione ? grazie

    Mumble mumble… su due piedi, alla carlona…

    Come fai ad aggiornare il campo?

    Nel controllo al focus:

    Se check=false sposti il focus sulla checkbox relativa al controllo così non puoi scrivere nulla.

  • Re: Blocco aggiornamento campo con condizione

    Grazie a Alex e sihsandrea per le risposte . Alex ho sempre timore quando mi rispondi, mi dai sempre lavate di capo,ma purtroppo hai ragione da vendere, provo spiegarmi…se riesco. La CheckBox è associata alla tabella dove il campo valuta1 viene aggiornato, questo dato viene aggiornato da due query distinte in due diverse maschere. Nella prima maschera dopo un aggiornamento di un dato viene lanciata la query che aggiorna la valuta1,nella seconda maschera alla chiusura di questa viene lanciata la seconda query che oltre ad aggiornare sempre valuta1 aggiorna anche la CheckBox a “vero”.Da questo momento valuta1 non dovrebbe essere piu aggiornabile ma questo non avviene perche se nelle due maschere immetto un valore diverso le query modificano con il nuovo valore valuta1.Tengo a precisare che ci sono due query e due maschere che modificano valuta1 per motivi di calcolo ben precisi. Grazie 

  • Re: Blocco aggiornamento campo con condizione

    Che il booleano sia un campo o meno non importa. Il punto è che devi impedire all'utente di sostituire al campo 1 il valore da 10 a 5 (per esempio). Cosa che potresti fare annullando il post del record, ma, se campo 2 deve passare da valore 6 a valore 7 e l'utente ha inserito sul campo 1 un valore che non deve cambiare e sul campo 2 il valore che deve cambiare, puoi solo annullare tutta l'operazione di modifica, a meno che non setti a readonly il campo1

    Campo1.rnabled (o readonly)=not(check.checked)

    Oppure campo1.tabstop=not(bla bla)…

    In questo caso se il check è flaggato il campo è sola lettura (o viene saltato in tabulazione).

    Io consiglierei i check come consenti modifica così puoi scrivere direttamente

    Campo1.enabled=(checkbox.checked)

  • Re: Blocco aggiornamento campo con condizione

    La checkbox non può essere associata al campo Valuta…. Quindi non ho capito perché e come lavori…. Come fai ad aggiornare lo stato della checkbox…?

    Di base eseguire query di aggiornamento come fai tu non è un buon metodo…. o meglio va eventualmente gestito bene se si aprono maschere in cascata che si condizionano e temo tu non abbia aperto la 2° come MODALE per poi tornare alla prima…

    Purtroppo quando ci si confronta con chi non usa logica strutturata solida, non si può dare per scontato nulla soprattutto nel metodo.

    Quindi devi descrivere meglio a livello operativo le dipendenze e come le risolvi.

  • Re: Blocco aggiornamento campo con condizione

    Concordo con quasi tutto quello che ha detto alex, infatti ho premesso che la risposta era alla carlona.

    Per i check, puoi inserirli come campi booleani, quando visualizzi il record avrai la memoria dei flag.

    Quando editi vai a visualizzare lo stato del controllo non del record. Puoi togliere il flag, entrare nel campo da modificare, riflaggare il checkbox.

    Devi distinguere due momenti:

    Il primo è il valore passato al controllo dal database, il secondo è quello che il controllo rilascia al database. Fra questi due momenti puoi cancellare tutti i campi, riscriverli, o lasciarli intatti. Infatti la scrittura dei dati avviene con il post del record. Fino ad allora puoi annullare la modifica o confermarla.

    Ciò significa che se il controllo del campo1 valorizzato a 10 puoi modificarlo col valore 5. Anche prima del postrecord puoi prendere il valore del controllo (non del campo in tabella) e leggerlo.

    Se lanci un messaggio mentre stai editando, per esempio passando da un controllo all'altro, ti da il valore inserito, non quello che al momento hai nel database. Quindi puoi togliere la spunta, modificare il campo e rimettere la spunta. Al post avrai il nuovo valore del campo e il flag sempre in sola lettura.

    Al post devi attribuire al campo il valore visualizzato nel controllo.

    Banalmente, per completezza hai un terzo momento, lo capisci scrivendo un valore sul campo e senza uscire dal controllo premere esc. Ti annulla quanto appena digitato.

    Il concetto nella scrittura dei dati sul database è analogo, senza post equivale a premere escape.

    In ogni caso, io rivedrei la logica che stai applicando, supposto che i dati nessuno se li inventa ma li prende da qualche parte.

    A titolo di esempio, se carico l'articolo bagnoschiuma mi accorgo di aver sbagliato se leggo la fattura di carico con dicciaschiuma.

    Questo rende i flag solo una perdita di tempo. Poi non so per quale motivo stai usando questa soluzione, magari è necessaria.

  • Re: Blocco aggiornamento campo con condizione

    Oramai sono andato in tilt vi allego un esempio di quello che vorrei fare anche se sò che Alex mi insulterà

    https://uploadnow.io/f/qLsbMlN

  • Re: Blocco aggiornamento campo con condizione

    20/11/2023 - nerofumo ha scritto:


    Oramai sono andato in tilt vi allego un esempio di quello che vorrei fare anche se sò che Alex mi insulterà

    https://uploadnow.io/f/qLsbMlN

    In tilt per così poco?

    All'enter se fleggato=no altrocontrollo.setfocus

  • Re: Blocco aggiornamento campo con condizione

    Grazie sihsandrea puoi farmi un esempio sul db che ho mandato?

  • Re: Blocco aggiornamento campo con condizione

    21/11/2023 - nerofumo ha scritto:


    Grazie sihsandrea puoi farmi un esempio sul db che ho mandato?

    !!!???

    Non ho bisogno di scaricare il db.

    Private Sub valuta1_Enter() 

      If Me.v1 = True Then

           Me.valuta2.setfocus 

        End If

    End Sub

    Se non togli la spunta non puoi entrare nel dbedit per modificare il valore altrimenti (se non c'è la spunta) puoi entrare nel dbedit e scrivere quello che vuoi.a

  • Re: Blocco aggiornamento campo con condizione

    Ti ringrazio provo e poi ti faccio sapere

    saluti

  • Re: Blocco aggiornamento campo con condizione

    Buongiorno rispondo ora dopo la lavata di capo di Alex ma non me ne vogliate ci sono motivi seri perche non ho aggiornato i post. Ho risolto con l'input di sihsandrea.

    Grazie a tutti

Devi accedere o registrarti per scrivere nel forum
12 risposte