Ed allora questa query come base di partenza va bene:

codice:
sqlcount = "SELECT TOP 30 * FROM Messaggio where ID='" & rsM("id")& "' ORDER BY id"
Set RScounts = Conn3.Execute(sqlcount)
Il tuo problema potrebbe essere che nonostante tu desideri visualizzarne solo 30 in realtà te li fa vedere tutti...
Il problema nasce dal fatto che la query non riesce a fermarsi non avendo un altro termine di paragone.
Dovresti aggiungere, nell'order by, un altro campo attraverso il quale ordinare.

Roby