saya juga blm nangkap dengan fungsi rank yang anda buat.
Option Compare Database
Dim ctr, INTVAL As Integer
Dim CustID As String
Public Function R(Id As String, INTVAL As Integer) As Integer
If CustID <> Id Then
ctr = 1
CustID = Id
Else
ctr = ctr + 1
End If
R = ctr
End Function
CustID , ctr, intval bukan variabel statik jadi nilai nya pasti kosong/nul
setiap kali fungsi dipanggil, artinya custid selalu tidak sama dengan id,
sehingga hanya blok pertama saja yang dijalankan, ctr pun pasti kembali 1.
sebenarnya apa yang mau dikerjakan fungsi ini ? apa kembaliannya ?
untuk perkara query kemarin saya sarankan dengan sub query, sekarang melihat
kasusnya, bisa disederhanakan lagi dengan membentuk query average per group
dari luar:
SELECT NILAI.GROUP, Avg(NILAI.NILAI) AS AvgOfNILAI
FROM NILAI
GROUP BY NILAI.GROUP;
simpan sebagai qsAvg.
dan berikut hasil query yang memodifikasi fungsi dvag semula, minus fungsi
rank (saya tunggu penjelasannya):
SELECT NILAI.NIK, NILAI.GROUP, NILAI.NILAI, NILAI.PENAMBAHAN,
qsAvg.AvgOfNILAI AS Penyesuaian1, [Nilai]/[AvgOfNilai]*70 AS
PenyesuaianPlus, [Nilai]/[AvgOfNilai]*70+[Penambahan] AS PenyesuaianPlus1
FROM NILAI INNER JOIN qsAvg ON NILAI.GROUP = qsAvg.GROUP;
aksan kurdin
2009/1/13 diki wahyudin <[email protected]>
> ada yg terlewat, rumus yang sebenarnya yaitu :
> PENYESUAIAN_PLUS = [NILAI]/[RATA2 GROUP] * 70
> RATA2 GROUP tsb diambil dari DAVG atau SELECT AVG dari sql
>
> ------------------------------
> *Dari:* diki wahyudin <[email protected]>
> *Kepada:* [email protected]
> *Terkirim:* Selasa, 13 Januari, 2009 11:08:19
> *Topik:* Bls: [belajar-access] rank
>
> Nilai 70 itu memang angka default untuk menyamakan standar penilaian
> agar berkisar pada angka tersebut. Karena ada penilai yg pelit dan ada juga
> yg royal.
> Maaf rata2 AABC emang 70,75, karena dvagnya belum jalan, maka saya tulis
> manual.
>
> Kalau untuk rata2nya dulu sudah bisa, dihitung dulu pake crosstab. Cuman
> saya pengen coba cara lain kali aja ada yang lebih cepet.
>
> Groupnya memang banyak sekitar 150-an.
> Yang masih jadi masalah itu yaitu fungsi rank-nya, mungkin Bang Aksan punya
> metode lain.
>
> Terima kasih.
>
> Diki W
>
> ------------------------------
> *Dari:* aksan kurdin <aksan.kurdin@ gmail.com>
> *Kepada:* belajar-access@ yahoogroups. com
> *Terkirim:* Senin, 12 Januari, 2009 18:40:54
> *Topik:* Re: [belajar-access] rank
>
> lupa2 ingat masalah statistik, udah lama :)
>
> jangan pake davg, :
> PENYESUAIAN_ 1: DAvg("[NILAI] ","NILAI" ,"[GROUP] = " & "[" & [GROUP] &
> "]")
>
> coba ganti dengan subquery:
> Penyesuaian1: (SELECT Avg(Nilai) FROM [Nilai] WHERE [Group] = Nilai!Group)
>
>
> Terus yang ini coba terangkan:
> PENYESUAIAN_ PLUS: IIf([GROUP]= "AAAB",([ NILAI]/71. 17*70)+[PENAMBAH
> AN],([NILAI] /71*70)+[ PENAMBAHAN] )
>
> Nilai 71.17 adalah rata2 AAAB
> Nilai 71 ? apakah rata2 AABC (70.75)
> Terus nilai 70 dapat dari mana ?
> Bagaimana kalau ada data lain ABCD, BCDE, CDEF, ..... WXYZ ? Nested IIF di
> banyakin ?
>
>
> aksan kurdin
>
>
>
> 2009/1/12 diki wahyudin <pangestu_cx@ yahoo.com <[email protected]>>
>
>> Maaf mohon bantuannya lagi nih buat para pakar semuanya.
>>
>> Sebetulnya dulu pernah saya tanyakan. Belum juga ketemu masalahnya.
>> Berikut contoh file terlampir.
>>
>> Yang menjadi permasalahan :
>> 1. menggunakan fungsi davg di query, masih error.
>> 2. fungsi rank yang saya buat hasilnya tidak bisa digunakan untuk
>> perhitungan, karena nilainya berubah sendiri. Jika field NILAI_H pada query
>> PENGHITUNGAN dihapus maka hasil rangkingnya benar. sebenarnya dari hasil
>> rank tsb saya akan melalukan banyak penghitungan. Tetapi semakin banyak
>> penghitungan menggunakan hasil rank, maka hasilnya semakin kacau. Malah pada
>> saat kita pindah kursor di field RANK, nilainya bisa berubah otomatis.
>>
>> Mohon solusinya.
>>
>> Terima kasih
>>
>> diki w
>>
>> ____________ _________ _________ _________ _________ _________ _
>> Dapatkan nama yang Anda sukai!
>> Sekarang Anda dapat memiliki email di @ymail.com dan @rocketmail.com.
>> http://mail. promotions. yahoo.com/ newdomains/
>> id/<http://mail.promotions.yahoo.com/newdomains/id/>
>>
>
>
>
> --
> Aksan Kurdin
>
> ------------------------------
> Coba emoticon dan skin keren baru, dan area teman yang luas. Coba Y!
> Messenger 9 Indonesia
> sekarang.<http://sg.rd.yahoo.com/id/messenger/maxwell/*http://id.messenger.yahoo.com>
>
> ------------------------------
> Apakah demonstrasi turun ke jalan itu hal yang wajar?
> <http://id.answers.yahoo.com/question/index;_ylt=ArVePPHO1ZycmPLF76FARzLJRAx.;_ylv=3?qid=20080413223411AAeeuR2>
> Temukan jawabannya di Yahoo! Answers!
>
>
--
Aksan Kurdin