Riportare barra di scorrimento nella posizione precedente

di il
8 risposte

Riportare barra di scorrimento nella posizione precedente

Salve a tutti!

Ho un piccolo problema.
In una maschera ho una sottomaschera con molti record.

1) Questa sottomaschera è dotata della barra di scorrimento verticale ed orizzontale.
2) In ogni record c’è un CommandButton che esegue al Click una modifica sulla tabella collegata alla sottomaschera.

Il problema è questo:
se io mi trovo in un determinato record che si trova nel fondo della sottomaschera e poi premo il CommandButton succede che la barra di scorrimento torna in cima perché il command button a fine operazione esegue il Requery della sottomaschera.
Questo è abbastanza fastidioso perché mi tocca ogni volta ritornare nella posizione in cui mi trovavo prima del Click.

Esiste un modo per riportare la barra di scorrimento verticale ed orizzontale nella posizione precedente?

Grazie a tutti per l’aiuto!

8 Risposte

  • Re: Riportare barra di scorrimento nella posizione precedente

    Non riuscirai a gestire la commandBar e secondo me stai sbagliando approccio.
    Nella sostanza devi tornare al record prima del requery.
    Memorizza la PK prima del requery poi risposti il Bookmark sulla PK memorizzata usando il FindFirst membro dell'oggetto Recordsetclone.
  • Re: Riportare barra di scorrimento nella posizione precedente

    Ciao Alex!
    Credo di aver capito
    Appena posso provo e ti aggiorno.

    Grazie per l’aiuto
  • Re: Riportare barra di scorrimento nella posizione precedente

    Ciao Alex!

    Seguendo il tuo consiglio ho scritto questo:
    
                Dim rs As Object
                Dim PkNum As Long
                PkNum = Me.IDInserimento.Value
                Set rs = Me.RecordsetClone
                
                Form_Frm_AssegnaSeriali.Requery
                Form_Frm_Ordini2.Requery
                
                rs.FindFirst "IDInserimento=" & PkNum
                If Not rs.EOF Then Me.Bookmark = rs.Bookmark
                Set rs = Nothing
    Non sono pienamente soddisfatto perchè anche se in questo modo torno a vedere il record comunque la maschera si sposta, però è sempre meglio che non avere alternative...

    Grazie per l'aiuto!!
  • Re: Riportare barra di scorrimento nella posizione precedente

    La gestione della barra si può fare ma servono le API ed è meno semplice, oltretutto nel.caso in cui venisse eventualmente cancellato un record... ci sarebbe da imementare un bel po di codice.
  • Re: Riportare barra di scorrimento nella posizione precedente

    Ciao Alex!
    (grazie ancora per il supporto)

    Navigando un po' su internet ho trovato questo articolo moolto interessante.
    Ha in allegato anche un file di esempio.
    Ovviamente non ho capito granchè ma sono riuscito ad adattarlo alle mie esigenze e funziona alla grande.
    Usa due moduli di classe ma non ho capito per niente quello che sostanzialmente fanno...

    Tu che ne pensi?
    https://www.experts-exchange.com/articles/11515/Reposition-requery-with-positioning-to-the-recent-record.html
  • Re: Riportare barra di scorrimento nella posizione precedente

    Lo conosco ma non mi piace, mi pare sia tratto da un esempio di Lebans.
    Tuttavia se pensi soddisfi la richiesta...
    P.s. io non userei codice di cui non ho padronanza, in caso di malfunzionamenti o bugs...
  • Re: Riportare barra di scorrimento nella posizione precedente

    Buongiorno Alex,

    a funzionare funziona bene.
    La macro del mio pulsante (che si trova in una sottomaschera) esegue modifiche sulla tabella della sottomaschera e poi viene eseguito un Requery della maschera principale in quanto devono aggiornarsi dei calcoli.
    La sottomaschera rimane (o torna) esattamente dov’era.

    Il problema è che, come giustamente dici, non ho una padronanza del codice scritto nei moduli di classe...

    Al primo Bug torno al metodo precedente

    P.s. non voglio allungare troppo il brodo. Se potessi dirmi cosa non ti piace di quell’esempio potrebbe essermi utile in futuro in caso di problemi...
    Se ad uno come te quel codice non piace bisogna stare in guardia
    Se mi dicevi il contrario stavo molto più tranquillo

    Ad ogni modo grazie per il supporto!!
  • Re: Riportare barra di scorrimento nella posizione precedente

    No ma personalmente per fare quello per cui servr, lo ritengo eccessivo... negli anni ho pensato che meno codice si usa meglio è...
Devi accedere o registrarti per scrivere nel forum
8 risposte