Massimiliano
Gianni Grosso <lu...@softstudio.it> scritto nell'articolo
<7er5bf$o2i$1...@fe1.cs.interbusiness.it>...
A parte che l'azione requery è più lenta del metodo requery, quindi è
meglio eseguire un bel Me.Requery...
Che tipo di aggiornamenti fai sui record?
Perchè a seconda di quello che fai forse non c'è bisogno di fare un
requery, ma basterebbe un recalc della maschera...
Altrimenti un modo stile quello suggerito da Max andrebbe bene...
Antonio
si', in linea di massima andrebbe bene, ma se usi il la proprieta'
currentrecord prima del requery non ri serve nemmeno controllare l'id.
-----------------------------------
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport
-----------------------------------
togliete NOSPAM. per rispondermi via email
remove NOSPAM. to answer me via email
-----------------------------------
il sito comune di it.comp.database.access:
http://members.xoom.com/it_db_access
solo con le macro non lo risolvi, dovrai scrivere del codice.
quando esegui un requery su una maschera o su un controllo, la
maschera o il controllo si posizionano sul primo dei loro valori.
requery funziona proprio cosi', non c'e' niente da fare.
le maschere dispongonpo di una proprieta', currentrecord. questa
proprieta' ti dice il "numero" del record correntemente selezionato
nella maschera.
quindi, *prima* di eseguire il requery salvi il currentrecord in una
variabile, esegui il requery, sai gia' che automaticamente verrai
riposizionato sul primo record e usi il valore precedentemente
immagazzinato del currentrecord per spostarti, tramite il metodo
gotorecord, alla posizione di prima. occhio che gotorecord mi pare
parta da zero, per cui dovrai sottrarre 1 dall'argomento di
gotorecord.
il codice, se eseguito dall'interno della maschera, potrebbe essere
una cosa simile:
dim posizione as long
Posizione=me.currentrecord
me.requery
docmd.gotorecord , , acgoto, posizione-1
(le due virgole indicano che non sono stati immessi due parametri
opzionali. non ricordo bene questa storia del gotorecord che parte da
0 e quindi del -1, vedi tu).
ad esempio potresti farlo eseguire in seguito al clic di un pulsante.
se proprio ci tieni ad usare le macro puoi usare un escamotaggio (ma a
questo punto non vedo a cosa ti possa servire la macro): scrivi il
codice in una funzione, crei una macro che esegua il comando
EseguiCodice e fai eseguire quella funzione. EseguiCodice funziona
solo con le funzioni, non con le sub. la funzione la dovrai mettere
in un modulo.
Dal mio Access-FAQ:
-----
On Error GoTo BookmarkError
Dim x As Long
x = Me!ID
Me.Requery
Me.RecordsetClone.FindFirst "ID = " & x
Me.Bookmark = Me.RecordsetClone.Bookmark
Exit Sub
BookmarkError: ' not a valid bookmark
If Err = 3159 Then Resume Next
-----
Il methodo con CurrentRecord (o anche con Bookmark --> Bookmark)
non funziona se c'è un cambio nel ordine di record.
HTH
Karl
Access-FAQ http://members.eunet.at/donkarl/ (ma tedesco)
Per rispondermi rimuovere XDELETEX dall'indirizzo email.