Allora, puoi fare una cosa molto poco elegante ma che funziona.
codice:
RS.MoveFirst()
For i = 1 to RS.RecordCount
Printer.Print(RS("Mese e anno") + " " + RS("Entrate") + " " +RS("Uscite")) 'Insomma questo è il concetto, poi te lo formatti come ti pare e piace.
RS.MoveNext()
Next i
Non è elegante ma funziona (l'ho usato un sacco di volte). Puoi stampare tutti i record nel recordset, che corrispondono alle voci della DataGrid
Per l'ordinamento, se stai usando una query SQL sul tuo DataBase, puoi mettere un campo ID, contatore crescente, e lo usi come chiave primaria. Poi nella query ci metti:
codice:
[...] ORDER BY ID DESC
Così i record sono ordinati in modo che quello scritto per ultimo sia mostrato in cima.
Se stai usando una "Table", ti consiglio di passare a comando SQL che è molto più flessibile (devi mettere "Dynaset" nel campo "RecordSetType" se stai usando un controllo Data, se stai usando un controllo Adodc devi scegliere "Text" nel campo "CommandType").
Per fare una query equivalente ad un Table devi fare:
codice:
SELECT * FROM [NomeTable]
Se vuoi escludere un campo, per esempio vuoi fare alcuni campi ed altri no allora fai
codice:
SELECT [Campo1], [Campo2], [Campo3], [Campo4] FROM [NomeTable]
Naturalmente tutto senza "[" e "]".
Puoi fare anche altre cose con SQL, se mastichi inglese ti consiglio questa guida rapida:
http://www.w3schools.com/sql/