Quanti record ci sono nella mia tabella?
In access, questa è decisamente un’operazione banale. Se però dobbiamo interrogare una tabella in VBA, la questione può darci qualche grattacapo. Il codice che vi propongo non è il più veloce di tutti ma, dal momento che spesso è vecessario integrare il conteggio in una operazione di lettura dei record, allora conviene tenere sott’occhio questo sistema che svolge poche ed essenziali operazioni:
- apre la connessione al db e apre la tabella;
- si sposta al primo record;
- si sposta all’ultimo record;
- conta quanti record, per così dire, ha “attraversato” e ci restituisce il valore in una variabile (numero_clienti);
- chiude la connessione al DB
Immaginiamo dunque di avere una tabella “clienti” nella quale uno dei campi è denominato “id_cliente” (va benissimo qualunque tipo di campo).
Se lo scopo è esclusivamente quello di contare è sufficiente utilizzare la funzione DCOUNT inserito in un qualunque evento (per esempio il click di un pulsanteI:
quanticlienti = DCount("id_cliente", "clienti")
Ecco il codice esteso, comodo quando si voglia manipolare la tabella:
Sub numeroclienti()
strSQL = "SELECT id_cliente FROM clienti;"
Set mioDB = CurrentDb
Set tabellaclienti = mioDB.OpenRecordset(strSQL, dbOpenDynaset)
tabellaclienti.MoveFirst
tabellaclienti.MoveLast
numero_clienti = tabellaclienti.RecordCount
tabellaclienti.Close
End Sub