Newsgroup: it.comp.appl.access
Titolo: ricerca EOF o BOF

Vi propongo un quesito al quale non riesco a dare risposta,( essendo un
medico, e solo un apprendista di Access) ...
Ho nesessità , in una maschera di una mia applicazione, di verificare se il
record corrente è uno dei due estremi del file per rendere enabled = false i
bottoni di comando che fanno avanzare i record  un record prima di generare
errore.( lo so, sono contorto...)
La form principale contiene i dati della Tbl anagrafica (id,cognome,
nome...) e
la sub form  un campo contatore (ID), un campo numerico (id_data)
Tblanagrafica è in relazione 1 a molti tra TblAnagrafica.ID_AN e
TblDate.ID_DATA .
Questo è il codice che mi sono scritto , però non funziona al cento per
cento, perchè il record precedente all'ultimo non è detto che abbia un ID
pari a ID - 1!
Vi chiedo : è questa la strada migliore o ne conoscete altre per fare la
stessa cosa dei pusantini della barra di scorrimento record  di access (che
a me non piace..)  che prima di arrivare all'ultimo record rende impossibile
schiacciare il pulsante?
Grazie ancora....
bce...@tiscalinet.it
Sub ControllaEstremiFile() 'controlla se il record corrente è EOF o BOF
Dim dbs As Database
Dim rst As Recordset
Dim Id_Data_, Id_ As Integer
Dim StrSql As String
Set dbs = CurrentDb
Id_Data_ = Me.ID_DATA
Id_ = ID
StrSql = "SELECT * FROM TblAnagrafica LEFT JOIN TblDate ON " & _
         "TblAnagrafica.ID_AN = TblDate.ID_DATA WHERE (((TblDate.ID_data)="
& Id_Data_ & "));"
Set rst = dbs.OpenRecordset(StrSql, 2)
        rst.MoveFirst
        If rst.Fields(6) = Id_ Then
            Me.avanti.SetFocus
            Me.Indrietro.Enabled = False
        Else
            Me.Indrietro.Enabled = True
        End If
        rst.MoveLast
        If (rst.Fields(6)-1) = Id_ Then
            Me.Indrietro.SetFocus
            Me.avanti.Enabled = False
        Else
            Me.avanti.Enabled = True
        End If
rst.Close
dbs.Close
End Sub

errore.( lo so, sono contorto...)
Non e' che abbia capito molto...comunque....
 if TuoRecordset.EOF then...
oppure
 if TuoRecordset.BOF then...
sono il metodo per intercettare quello che chiedi.
SAluti.
Luciano

 Grazie ancora....
Prova con:
EVENTO: su corrente della maschera
btnIndietro.Enabled = CBOOL(Me.CurrentRecord -1)
btnAvanti.Enabled = Not Me.NewRecord



Grazie dell'aiuto ( tutto sommato è un sistema rapido e che sinceramente
ignoravo del tutto)
però .... non funziona perfettamente, perchè comunque arrivati al fine file
si genera un errore che mi manda in tilt il prg....
penso che bisognerebbe intercettare l'evento sul record corrente precedente
all'ultimo record in modo da "inabilitare " il tasto di spostamento.. oppure
ignorare l'errore....
grazie ancora
.... spero in un suggerimento


Scusa la domanda, ma la tabella/Query  della tua subform contiene solo
il contatore ID e il numerico id_data, a sua volta chiave collegata a
TblAnagrafica?
Nient' altro ? 
Forse puoi provare cosi:
Ponendo che:
i dati della subform siano filtrati da Tbl_date in base ad ID_data.
che la sorgente della Subform sia ordinata secondo l'ID (contatore)
puoi vedere se l'ID del record corrente mostrato nella subform sia il
primo della Query sorgente in base a DFirst:
if  ME![id]  =dfirst ("[ID]", "TblDate", "[ID_data]="& Id_Data_ &")
o l'ultimo in base a DLast:
if  ME![id]  =dLast ("[ID]", "TblDate", "[ID_data]="& Id_Data_ &")
-- 
Tommaso Cafini                  _...@rhein-neckar.netsurf.de_
                                _tca...@gmx.net_
PGP-KeyID       = C922A2B1 
Key fingerprint = 7C 9E 72 C5 11 06 A7 67  54 03 FF 02 4C 90 39 F5