Newsgroup: it.comp.appl.access
Titolo: Posizionarsi sull'ultimo record inserito

Ciao, nel mio database quando un utente ha finito di inserire un nuovo
record e chiude la maschera dell'inserimento, torna alla maschera
chiamante ritrovandosi sempre al primo record.
Gli utenti, invece, vorrebbero posizionarsi proprio sull'ultimo record
appena inserito.
Ho dato un'occhiata alla guida in linea, al metodo MoveLast. Credo faccia
al caso mio ma non so come usarlo. A parte che la guida dice che usare
MoveLast così rallenta un casino le prestazioni, ma poi non saprei come
utilizzare i bene il metodo.
Praticamente da frmSchedaPrimoContatto-->>subSchedaPrimoContatto si apre
frmAggiungiUtente. Si inserisce il nuovo utente, poi si chiude
frmAggiungiUtente e ci si ritrova in
frmSchedaPrimoContatto-->>subSchedaPrimoContatto (la sottomaschera è
contenuta nella form).
Ora io vorrei che sul pulsante di chiusura in frmAggiungiUtente fosse
possibile specificare che quando torno in
frmSchedaPrimoContatto-->>subSchedaPrimoContatto ci si deve posizionare
sull'ultimo record inserito.
Mi potete dare una mano per favore?
Grazie :)
-- 
Non avere mai paura dei momenti bui perchè, facci caso, anche le stelle
hanno bisogno della notte per brillare - Non aver paura d'esser debole
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

[CUT]
Dim rst As Recordset
Set rst = NomeMaschera.RecordsetClone
if rst.RecordCount >0  then rst.MoveLast
rst.Close
Set rst= Nothing

:D
Ho risolto in altro modo riadattando il codice preso dalla FAQ 4.5 di Don
Karl, che ha fatto PROPRIO al caso mio :)
Il problema del codice che avevi postato era che faceva riferimento alla
stessa maschera frmSchedaPrimoContatto, mentre io dovevo fare in modo che
da *un'altra* maschera il codice VBA obbligasse frmSchedaPrimoContatto a
posizionarsi sul proprio ultimo record.
Non ho usato MoveLast. Ecco il codice completo (per chi può servire):
Private Sub cmdEsci_Click()
On Error GoTo Err_cmdEsci_Click
Dim dbFreebase As DAO.Database
Dim rsUtenti As DAO.Recordset
Dim stDocName As String
Dim stLinkCriteria As String
Dim lngstore As Long
lngstore = Me!idUtente
If MsgBox("Salvare i dati?", vbQuestion + vbYesNo, "Inserimento nuovo
utente") = vbYes Then
    If IsNull(Nome) Or (Nome = "") Then
        MsgBox "Inserisci un nome valido", vbExclamation, "ATTENZIONE"
        Forms![frmAggiungiUtente]![Nome].SetFocus
    ElseIf IsNull(Cognome) Or (Cognome = "") Then
        MsgBox "Inserisci un Cognome valido", vbExclamation, "ATTENZIONE"
        Forms![frmAggiungiUtente]![Cognome].SetFocus
    Else
 
        'Questo codice serve per far si che la maschera
frmSchedaPrimoContatto mostri i record se
        'si è al primo inserimento. Senza queste quattro righe di codice,
al primo inserimento
        'la maschera frmSchedaPrimoContatto risulterà vuota.
 
        Set dbFreebase = CurrentDb
        Set rsUtenti = dbFreebase.OpenRecordset("tblUtenti")
        Me.Requery
        dbFreebase.Close
        stDocName = "frmSchedaPrimoContatto"
        Application.Echo False
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        Forms!frmSchedaPrimoContatto.SetFocus
        Forms!frmSchedaPrimoContatto.Requery
        Forms!frmSchedaPrimoContatto.RecordsetClone.FindFirst "idUtente =
" & lngstore
        Forms!frmSchedaPrimoContatto.Bookmark =
Forms!frmSchedaPrimoContatto.RecordsetClone.Bookmark
        DoCmd.Close acForm, "frmAggiungiUtente"
        Application.Echo True
    End If
Else
    Me.Undo
 
    DoCmd.SetWarnings False
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
 
    If DCount("*", "tblUtenti") > 0 Then
        Application.Echo False
        DoCmd.OpenForm "frmSchedaPrimoContatto"
        Forms!frmSchedaPrimoContatto.SetFocus
        Forms!frmSchedaPrimoContatto.Requery
        DoCmd.Close acForm, "frmAggiungiUtente"
        Application.Echo True
    Else
        MsgBox "Nessun contatto presente nel database." & Chr(13) &
Chr(10) & "Clicca su OK per tornare al Pannello Comandi", vbInformation,
"ATTENZIONE"
        Application.Echo False
        DoCmd.Close acForm, "frmAggiungiUtente"
        DoCmd.OpenForm "frmPannelloComandi"
        Application.Echo True
    End If
End If
Exit_cmdEsci_Click:
    Exit Sub
Err_cmdEsci_Click:
    MsgBox Err.Description
    Resume Exit_cmdEsci_Click
End Sub
========================================
HO AGGIUNTO LE RIGHE:
Dim lngstore As Long
lngstore = Me!idUtente
Forms!frmSchedaPrimoContatto.RecordsetClone.FindFirst "idUtente = " &
lngstore
Forms!frmSchedaPrimoContatto.Bookmark =
Forms!frmSchedaPrimoContatto.RecordsetClone.Bookmark
============================================



Ciao Giulio
oltre che la guida in linea ti consiglio di fare anche delle ricerche su
google gruppi
ed in particolare
http://groups.google.it/group/it.comp.appl.access?hl=it
cercando
"Spostamento su ultimo record inserito"
SunRex

Ciao :) tra l'altro nel codice che ho postato bisogna fare una verifica
sul valore di idUtente...