Saltare record in uso

di il
4 risposte

Saltare record in uso

Salve ,

Sempre nel mio db di gestione anagrafica ho messo un pulsante che premuto passa al record successivo.
Nella stessa maschera ho inserito un campo si/no con etichetta anagrafica in lavorazione in modo da far capire agli altri utenti di non usare quell’anagrafica in quanto gia in uso! Ora ho pensato ma non so come farlo si potrebbe fare che quando l’anagrafica è fleggata in uso gli altri utenti premendo il pulsante di passaggio al record successivo e se c’è quindi il flag in uso saltasse quel record? In modo da saltare al prossimo record non in uso? Grazie

4 Risposte

  • Re: Saltare record in uso

    Nel pulsante inserisci una cosa tipo
    
    Do
        'passa al successivo
    While Not recordsuccessivo.flag
    Temo un sacco per la gestione della concorrenza però... Se in due finiamo su uno stesso recod non flaggato e cominciamo ad editarlo?
    Il solo saltare il flag, non è sufficiente a garantire il blocco del record in multiutenza. Risparmi solo la fatica all'utente di verificare se c'è o meno una spunta.
  • Re: Saltare record in uso

    In caso di multiutenza prima di tutto si deve rieseguire la query... altrimenti non capisci lo stato reale dei record bloccati... che risulta non aggiornato.
    Per passare al successivo non in uso io farei cosi:
    
    Dim id as long
    Id=me.idpk
    Me.requery
    With Me.RecordsetClone
         .findfirst "id=" & id
         Me.Bookmark = .Bookmar
       
        .findNext "nomecampoflag=false"
        if not .Nomatch then
            Me.Bookmark=.Bookmark
        Else
            MSGBOX "Nessun record"
        end if
    End with
    
    Fai attenzione alla gestione dei reset di quei flag.

    Il sistema è molto rischioso
  • Re: Saltare record in uso

    Questo codice dovrei associarlo cm evento al flag?

    E la cosa del reset effettivamente è rischiosa se non si fa ma come? Sto superando il livello delle mie conoscenze grazie mille
  • Re: Saltare record in uso

    La gestione che hai pensato di fare non è assurda ma meno banale di come pensi... ed a mio avviso serve tu abbia le idee molto ben chiare di come funziona un sistema in MultiUtenza altrimenti prendi delle grosse cantonate.

    Ad esempio il concetto di maschera aperta in contemporanea devi pensare a come bloccare il record in modo sicuro, a come sbloccarlo in modo certo, ma soprattutto a come fare ij modo che gli altri vengano aggiornati subito... altrimenti uno lo modifica e mette il flag ma gli altri non lo sanno che lo stato è cambiato perché hanno la maschera aperta da prima che venisse editato il record comune... quindi dal momento che nulla vieta la modifica contemporanea, quello che hai fatto rischia di non contare nulla.
    Peggio ancora quando finisci di editare per qualche motivo non liberi il flag di blocco... nessuno lo potrà più modificare.

    Insomma se non hai una solida visione di come sono le dinamiche fai attenzione rischi di fare un disastro.
Devi accedere o registrarti per scrivere nel forum
4 risposte