Newsgroup: it.comp.appl.access
Titolo: tot record e numero record in maschera

ciao ho provato questo codice in access 2007 in formato access 2007 ma
non funziona nelle texbox o non da nulla o da 1 di 1 2 di 2 etc avete
consigli
grazie
Codice:
Private Sub Form_Current()
    Call RefreshCount(Me.NewRecord)
 End Sub
Private Sub RefreshCount(fNew As Integer)
'Rigenera le txtBox del Conteggio e Posizione Records
   Dim rstRefresh As DAO.Recordset
   Dim RecCount As Long
   Dim RecPos As Long
   Set rstRefresh = Me.RecordsetClone
   'Forza l'indice di Posizione corrente=1
   RecPos = 1
   'Esegue il conteggio del numero di Records
   RecCount = fRstCount(rstRefresh)
   'Se il conteggio <>1 aggiorna la posizione corrente reale
   If RecCount <> 1 Then RecPos = Me.CurrentRecord
   txtNumRec = RecPos
   txtTotalRecs = RecCount
   rstRefresh.Close
   Set rstRefresh = Nothing
End Sub
Private Function fRstCount(ByVal rs As DAO.Recordset) As Long
   On Error GoTo Err_fRstCount
    Dim add As Integer
    'Imposta il contatore di Records=1
    fRstCount = 1
    'Se la FrmMain si trova sul Nuovo Record setta add=1
    add = (0 - Me.NewRecord)
    'se il Recordset non è vuoto effettua il conteggio corretto
    If Not fRstEmpty(rs) Then
        rs.MoveFirst
        rs.MoveLast
        'Restituisce il N° di Records considerando
        'l'eventuale New Record
        fRstCount = rs.RecordCount + add
    End If
Exit_fRstCount:
    rs.Close
    Set rs = Nothing
    Exit Function
Err_fRstCount:
    fRstCount = 1
    Resume Exit_fRstCount
End Function
Private Function fRstEmpty(ByVal rs As DAO.Recordset) As Boolean
   On Error Resume Next
   'Si muove avanti indietro per verificare i limiti
   'del Recordset e ottenere BOF-EOF
      rs.MovePrevious
      rs.MoveNext
      fRstEmpty = rs.EOF And rs.BOF
      rs.Close
      Set rs = Nothing
End Function


Così, a naso: le istruzioni seguenti:
   RecCount = fRstCount(rstRefresh)
   'Se il conteggio <>1 aggiorna la posizione corrente reale
   If RecCount <> 1 Then RecPos = Me.CurrentRecord
siccome hai n record misurati da fRstCount, RecCount è <>1, quindi
RecPos = Me.CurrentRecord, ma la fRstCount fa un rs.MoveLast
e quindi ti posiziona sempre sull'ultimo record. Forse fRstCount
dovrebbe usare un'altro recordset ottenuto dallo stesso set di
rstRefresh, in modo da poterlo posizionare dove vuoi senza modificare
la posizione di Me.CurrentRecord.
Buon lavoro.
Riccardo Baldinotti

 - Mostra testo citato -
Cortese Riccardo,
qual'è la via più facile per mostrare in 2 caselle di testo il totale
record e in record corrente , grazie e saluti

 ha scritto nel messaggio 
news:fb5d72bf-4ef6-4975...@r6g2000vbo.googlegroups.com...


-----------------------------------
Forse non ho capito bene ma mi sembra un grande spreco di energie per 
contare i record. Se è solo questo hai altre strade.
Ti segnalo che la variabile "add" (Dim add As Integer) va immediatamente 
cambiata perchè Add è parola riservata per Access.
Ciao, Carlo

 wrote:

Ciao!
Così al volo (e fatti salvi eventuali errori di battitura!) mi
verrebbe da dire cosi'.
Private Sub RefreshCount(fNew As Boolean)
'Rigenera le txtBox del Conteggio e Posizione Records
    Dim rstRefresh As DAO.Recordset
    Set rstRefresh = Me.RecordsetClone
    if (rstRefresh.eof=true)then
        'La tabella è vuota
        txtTotalRecs =0
        txtNumRec =1
    else
        if (fNew=false) then
            rstRefresh.bookmark=me.bookmark
            txtNumRec =rstRefresh.absoluteposition+1
        endif
        rstRefresh.movelast
        rstRefresh.movefirst
        txtTotalRecs=rstRefresh.recordcount
        if (fNew=true) then
            txtNumRec =txtNumRec +1
        endif
    Set rstRefresh = Nothing
End Sub
Può andare bene?
Popi

 wrote:

Questo codice mi pare conosciuto, molto conosciuto... ma come ha ben
detto Carlo è eccessivo.
Era dedicato ad altro... ad un DEMO di SubForm per la gestione dei
Records nella quale ci sono anche i Button di spostamento e molto
altro...!!!
In sostanza hai usato una Bomba Atomica per uccidere una mosca....
@Alex

 - Mostra testo citato -
Vero, il post dove ho trovato questo codice indicava che era usato in
una demo del sitocomune di access , a l'i gnoranzità e la frettola ti
portano a fare copia incolla senza valutare le conseguenze..
ho provato il codice popi ma non riesco a farlo girare....,ciriprovo
grazie a tutti

 ho provato il codice popi ma non riesco a farlo girare....,ciriprovo
"Non riesci" significa che:
1) segnala errore di compilazione
2) segnala errore a runtime
3) non va in errore ma non scrive niente nelle textbox
4) non va in errore e scrive dati errati nelle textbox
5) si blocca l'applicazione
Quale tra i casi sopra si verifica?
O succede qualcosa d'altro?
Popi