Oh iya ya saya kurang teliti, nah kalo kaya gitu ribet nih rumit emang. 
Yg terpikir oleh saya cuman cara ini :
1. mesti buat temp tbl yg isinya seluruh data yg mau di pilih, lalu 
tambahkan kolom nourut jenis number byte
2. buat coding vba utk isi nourut masing2 jenis grup, contoh :
a. open recordset tbl-temp order by group (ascending) dan orderby nilai 
(descending)
b. looping through all record lalu looping through group (kan group tadi 
udah di order) jd langsung aja isi kolom nourut 1,2,3,4 sejalan dengan 
looping group kalo kode group  A ada 10 maka nourut sampe 10 dan kalo 
ketemu group baru mulai urut dari 1 lagi.
3. nah kalo kolom nourut utk masing2 group sdh terisi kan masing2 group 
pasti ada nourut 1-3
4. nah tinggal delete deh yg nourut > 3, jdnya yg tersisa kan semua 
group yg punya urut 1-3

dari sini tbl-temp tinggal dipake deh utk create report/form, isi sudah 
top 3

mungkin ada cara yg lebih mudah ?

---------------------------------------------------------------------------
This message contains confidential information and is intended only for the 
individual named. If you are not the named addressee you should not 
disseminate, distribute or copy this e-mail. Please notify the sender 
immediately by e-mail if you have received this e-mail by mistake and delete 
this e-mail from your system. E-mail transmission cannot be guaranteed to be 
secure or error-free as information could be intercepted, corrupted, lost, 
destroyed, arrive late or incomplete, or contain viruses. The sender therefore 
does not accept liability for any errors or omissions in the contents of this 
message, which arise as a result of e-mail transmission. If verification is 
required please request a hard-copy version.

Kirim email ke