Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Contare record duplicati

305 views
Skip to first unread message

Lorenzo Bolognini

unread,
Jul 8, 2002, 11:02:25 AM7/8/02
to
Ciao a tutti,

ho questo problema: ho una colonna di una tabella che può contenere
duplicati e devo contare il numero di volte che ciascun dato compare.
Es. Tabella 1. La mia colonna IDRec contiene 0001, 0001, 0002, 0003, 0002,
0004, 0002, 0004, 0003 devo sapere quante volte compare lo "0001", quante lo
"0002", ecc...

La difficoltà che incontro è nell'usare un recordset. Devo creare tante
tabelle temporanee per ciascun IDRec e poi fare un recordcount su ognuna
oppure esiste un modo meno macchinoso via codice?

Quella che vi ho incollato è lo scheletro della funzione che mi serve ma che
funziona solo con il primo IDRec presente nella tabella mentre dovrei
estenderlo per farlo funzionare ricorsivamente con tutti i dati contenuti
nella colonna IDRec.

Uso DAO per accedere ai dati.

Grazie,
Lorenzo

---------------------8<-----------------------
Public Sub Pippo()

Dim rst As Recordset
Dim dbs As Database


Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Tabella1")


a = rst!IDrec
contatore = 0

Do While Not rst.EOF

b = rst!IDrec

If a = b Then
contatore = contatore + 1
End If

rst.MoveNext

Loop

MsgBox ("L'IDRec " & a & " è ripetuto " & contatore & " volte!")


End Sub
---------------------8<-----------------------


Roberto da casa

unread,
Jul 8, 2002, 12:46:05 PM7/8/02
to

"Lorenzo Bolognini" <fa...@email.com> ha scritto nel messaggio
news:5QhW8.10910$7N3.2...@twister2.libero.it...

> Ciao a tutti,
>
> ho questo problema: ho una colonna di una tabella che può contenere
> duplicati e devo contare il numero di volte che ciascun dato compare.
> Es. Tabella 1. La mia colonna IDRec contiene 0001, 0001, 0002, 0003, 0002,
> 0004, 0002, 0004, 0003 devo sapere quante volte compare lo "0001", quante
lo
> "0002", ecc...
>
> La difficoltà che incontro è nell'usare un recordset. Devo creare tante
> tabelle temporanee per ciascun IDRec e poi fare un recordcount su ognuna
> oppure esiste un modo meno macchinoso via codice?
>
> Quella che vi ho incollato è lo scheletro della funzione che mi serve ma
che
> funziona solo con il primo IDRec presente nella tabella mentre dovrei
> estenderlo per farlo funzionare ricorsivamente con tutti i dati contenuti
> nella colonna IDRec.
>
> Uso DAO per accedere ai dati.
>
> Grazie,
> Lorenzo
[CUT]

Usando VBA mi sembra che ti stai complicando inutilmente la vita; prova a
crearti una query di raggruppamento che abbia un codice SQL simile a questo:

SELECT Tabella1.IDRec, Count(Tabella1.IDRec) AS ConteggioDiIDRec
FROM Tabella1
GROUP BY Tabella1.IDRec;

--
Roberto

---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Lorenzo Bolognini

unread,
Jul 8, 2002, 3:16:52 PM7/8/02
to

"Roberto da casa" <r.ma...@libero.it> ha scritto nel messaggio
news:hljW8.9402$K_4.2...@twister1.libero.it...

> crearti una query di raggruppamento che abbia un codice SQL simile a
questo:
> SELECT Tabella1.IDRec, Count(Tabella1.IDRec) AS ConteggioDiIDRec
> FROM Tabella1
> GROUP BY Tabella1.IDRec;

Grande! Proprio quello di cui avevo bisogno!

Grazie,
Lo


0 new messages