Newsgroup: it.comp.appl.access
Titolo: OT Traduzione FAQ 6.17

*******************
6.17 Count Records
Problem
You want to determine if a table, query or recordset is empty
or how many records it has.
Solution
There are various methods to achieve this and it's not always
clear what may be the fastest way. So you should test with
the actual object and with different amounts of records.
For tables and queries there's the Domain Function DCount:
MsgBox DCount("*", "MyTableOrQuery")
Another method is the aggregate function Count of SQL.
(see Online Help for "Count Function")
If the table/query gets opened as recordset or generally
for DAO recordsets there's the RecordCount property:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("MyTable", dbOpenDynaset)
If Not rs.BOF Then  ' if there are recods
    rs.MoveLast ' necessary to get the actual amount of records
    MsgBox rs.RecordCount
End If
In case you only want to know if a recordset has any records
at all e.g. to stop code that would loop through the records,
you simply can test the BOF property like already shown above.
If you open a DAO recordset that has no records BOF is True.
So you can use code like this:
If rs.BOF Then Exit Sub ' get out of here if rs is empty
ADO also has a RecordCount property but it depends on
the cursor type and the type of the record source.
(see Online Help for the ADO "RecordCount property")
*********************

 *********************
Anche ADO ha una proprietà RecordCount, ma dipende dal tipo di cursore e
dal tipo di origine record.
(Cerca "RecordCount ADO" sulla guida in linea)
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:2sq552F...@uni-berlin.de...

*******************
6.17 Contare i records
Problema
Si vuole determinare se una tabella, una query o un recordset siano vuoti
oppure quanti records contengono.
Soluzione
Ci sono molti modi per realizzare questo e non è sempre chiaro quale sia il
metodo più sicuro. Così si dovrebbe provare con quanto qui è scritto e con
un numero diverso di records.
Per le tabelle e per le queries c'è la Funzione di Aggregazione sui Dominii
DCount:
MsgBox DCount("*", "MiaTabellaOQuery")
Un altra soluzione è quella di usare la funzione di aggregazione  Count di
SQL.
(vedi l'Help in linea relativamente all'argomento Funzione Count).
Se la tabella/query viene aperta come recordset o generalmente come
recordset DAO, esiste la proprietà RecordCount:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("MiaTabella", dbOpenDynaset)
If Not rs.BOF Then  'se ci sono record nel recordset
    rs.MoveLast ' necessario per determinare l'attuale numero di records
    MsgBox rs.RecordCount
End If
Nel caso in cui si voglia conoscere soltanto se un recordset contiene almeno
un record , ad esempio per non eseguire il codice che ciclerebbe su tutti i
records, si può testare semplicemente la proprietà BOF come appena mostrato
nelle righe di codice precedenti.
Se si apre un recordset DAO che non abbia records, la proprietà BOF assume
il valore True.
Così si può usare il seguente codice:
If rs.BOF Then Exit Sub ' esci dalla sub se il recordset è vuoto
Anche ADO ha una proprietà RecordCount ma il suo funzionamento è
condizionato dal tipo di cursore e dal tipo di origine record.
(vedi l'Help in linea relativamente all'argomento ADO "Proprietà
RecordCount")
*********************
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Solution










6.17 Conta dei record
Problema
Vuoi determinare se una tabella, query o recordset siano vuoti
o quanti record abbiano.
Soluzione
Ciò si ottiene in vari modi, ma non sempre è chiaro quale sia quello più
veloce. Così dovresti testarli con l’attuale aggetto e con differenti
quantità di record.
Per le tabelle e le query c'è la funzione di aggregazione sui domini
DCount: MsgBox DCount("*", "MiaTabellaOQuery")
Un altro metodo è la funzione di aggregazione Count di SQL.
(vedi sull’Help in linea la "Funzione Count ")
Se la tabella/query viene aperta come recordset (or ???), esiste
generalmente la proprietà RecordCount per i recordset DAO:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("MiaTabella", dbOpenDynaset)
If Not rs.BOF Then 'se vi sono record 
rs.MoveLast  'necessario per ottenere l'attuale numero di records
MsgBox rs.RecordCount
End If
Se vuoi soltanto conoscere se un recordset abbia per caso dei record, ad
esempio per bloccare il codice che ciclerebbe attraverso i record, puoi
semplicemente testare la proprietà BOF come già vista precedentemente.
Se apri un recordset DAO che non ha alcun record, BOF è TRUE.
Così puoi utilizzare un codice del tipo:
If rs.BOF Then Exit Sub ' esci se rs è vuoto
ADO ha anche una proprietà RecordCount, ma dipende dal tipo di cursore e
dal tipo di origine record.
Vedi sulla Guida in linea "Proprietà RecordCount " per ADO)
--
rgrds
SC
-- 


 6.17 Count Records
tnx per le traduzioni.
Solo per essere siccuro (come straniero):
Il risultato delle discussioni precenti era che in italiano non
esistono gli "s" nel plurale per le parole dal inglese come
"link", "bug" e in questo caso "record".
Siete d'accordi o non è univoco?
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it

 Karl
Sono d'accordo.


 Roberto
Io li ho visti scritti in entrambi i modi.
Non so se ci sia una precisa regola grammaticale, ma anch'io preferisco
senza 's':
i link, i bug, i record, ecc... anziché i links, i bugs, i records
Namor

 Siete d'accordi o non è univoco?
D'accordo, anche perchè l'italiano utilizza gli articoli che, a differenza
dell'inglese, hanno il singolare ed il plurale.
Si scrive infatti: " il record " ed " i record ", "la query" e "le query"
etc.


 Namor
Me too.
MAssimiliano


Sono d'accordo su tutto, ma "le query" proprio non mi piace, quindi
continuerò a scrivere "le queries".
