AccessTr.neT

Tam Versiyon: Grup içerisinde kayıtları en büyükten küçüğe sıralamak
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Herkese Selam,

 
Kantin seçimi için küçük bir uygulama yapmak istedim. Oy vermeyi, sorguda kayıtları en büyükten küçüğe doğru sıralamayı da yaptım. Ancak istediğime cevap vermedi. Birkaç yol denedim ama gene olmadı.
Uygulamada;
İki tablom var Tbl_Gorev ve Tbl_Aday. Bu iki tablodan göreve göre aday listeleri formunu (Frm_KANTIN_HEYETI_ADAY_KAYITLARI) oluşturdum. Yine aynı iki tablodan, adaylara verilen oyları kayıt için bir sayım takip formu (Frm_KANTIN_SECIMI_OY_KAYIT) oluşturdum. Bu form üzerinde, hangi adaya oy verildiyse butona tıklamak suretiyle o adayın oyunu arttırabiliyorum. Buraya kadar her şey tamam.

Ancak seçim sonucunu alabilmek için bundan sonra yapmak istediğim iki şey daha var.
Birincisi, Frm_KANTIN_SECIMI_OY_KAYIT formu üzerine koyduğum bir buton (OY SIRALAMASINI GÜNCELLE) ile, Gorev_Adı veya Gorev_ID'ye göre her görev grubunun kendi içerisinde oy sıralamasını büyükten küçüğe doğru sıralayabilmek,

İkinci ve en son olarak oylama bittiğinde aynı form üzerine koyacağım bir butona tıklamak suretiyle, seçilen KANTİN HEYETİ'ni ayrı bir form üzerinde gösterebilmek. Bu heyet her grubun en yüksek oy alan adaylarından (her gruptan en yüksek oy alan bir kişi) oluşacaktır. Burada yapamadığım şey, Görev Adı, Adayın adı, Soyadı ve EN ÇOK OY alanlarını bir araya getirip gruplardan en çok oy alanları listeleyebilmek. Görev adı ile birlikte sadece oy miktarını sorgu olarak kullandığımda oluyor ama ad soyad girince maalesef grubu komple listeliyor.
hazırladığım küçük örneği ekte gönderiyorum. yardımcı olursanız sevinirim.
Sıralama yaptıramamanızın sebebi Tablodaki oymiktari alanının veri türünü Metin olarak belirlemeniz. Sayı yapsadınız şimdiye kadar kendiniz çözmüştünüz.

1-) Frm_KANTIN_SECIMI_OY_KAYIT formunun kayıt kaynağını aşağıdaki ile değiştir.



SELECT Tbl_Gorev.Gorev_ID, Tbl_Gorev.Gorev_Adi, Tbl_Aday.Aday_ID, Tbl_Aday.AdaySiraNu, Tbl_Aday.Ad, Tbl_Aday.Soyad, Tbl_Aday.OyMiktari, Val([OyMiktari]) AS İfade1

FROM Tbl_Gorev RIGHT JOIN Tbl_Aday ON Tbl_Gorev.Gorev_ID = Tbl_Aday.Gorev_ID
ORDER BY Val([OyMiktari]) DESC;


2-)"OY SIRALAMASINI GÜNCELLE" butonunun tıklandığında olayındaki
Me.Refresh

kodunu

me.requery

kodu ile değiştir.


2. soru için yeni bir sorgu oluştur, Sql kısmına aşağıdaki kodu ekle

[Resim: do.php?img=4721]

SELECT Tbl_Gorev.Gorev_ID, Tbl_Gorev.Gorev_Adi, DMax("Val(OyMiktari)","Tbl_Aday","[Gorev_ID]=" & [Tbl_Gorev].[Gorev_ID]) AS İfade1

FROM Tbl_Gorev RIGHT JOIN Tbl_Aday ON Tbl_Gorev.Gorev_ID = Tbl_Aday.Gorev_ID
GROUP BY Tbl_Gorev.Gorev_ID, Tbl_Gorev.Gorev_Adi, DMax("Val(OyMiktari)","Tbl_Aday","[Gorev_ID]=" & [Tbl_Gorev].[Gorev_ID])
ORDER BY Tbl_Gorev.Gorev_ID;
Sayın ozanakkaya, çok teşekkür ederim hızlı cevabınız için, vermiş olduğunuz kodları söylediğiniz yerlere uyguladım. OyMiktari alanını sayıya çevirdim. Bu durumda en büyükten küçüğe doğru sıralama yapılıyor, ancak Görevleri gözetmeden tüm oyları en büyükten küçüğe doğru sıralıyor. Benim istediğim birinci soruda istediğim; Kantin Bşk.larını kendi içinde en büyük oy miktarından en aza doğru, diğer görevleri de aynı şekilde kendi içinde sıralaması. Bunu ben zaten yaptım daha önce. Ama her görevi kendi içerisinde sıralayamadım.
ikinci sorumda ise, sadece her görevin en büyük oyunu alanları listelemek istedim. Tbl_Gorev'den Görev_Adi, Tbl_Aday'dan ise OyMiktarini alıp sorguda EnCok diye istediğimde her grubun sadece en büyük oylarını da sıralıyor, ama Tbl_Aday'dan ad soyad yazılamadığı zaman o şekilde listelemenin de bir faydası olmuyor. Çünkü seçimi kimlerin kazandığı görülemiyor. Gönderdiğim örnek üzerinde uygulamanız mümkün mü acaba...Meşgul ettiğim için kusura bakmayın. (Ben de uğraşıyorum nasıl yapabilirim diye)
(11/12/2014, 02:31)alpertunga65 yazdı: [ -> ]Bu durumda en büyükten küçüğe doğru sıralama yapılıyor, ancak Görevleri gözetmeden tüm oyları en büyükten küçüğe doğru sıralıyor. Benim istediğim birinci soruda istediğim; Kantin Bşk.larını kendi içinde en büyük oy miktarından en aza doğru, diğer görevleri de aynı şekilde kendi içinde sıralaması. Bunu ben zaten yaptım daha önce. Ama her görevi kendi içerisinde sıralayamadım.


Ekte bulunan düzenlenmiş örneği inceleyiniz.

Konunun dağılmaması ve Site Kuralları açısından 2. sorunuz için yeni konu açınız.
(11/12/2014, 18:59)ozanakkaya yazdı: [ -> ]
(11/12/2014, 02:31)alpertunga65 yazdı: [ -> ]Bu durumda en büyükten küçüğe doğru sıralama yapılıyor, ancak Görevleri gözetmeden tüm oyları en büyükten küçüğe doğru sıralıyor. Benim istediğim birinci soruda istediğim; Kantin Bşk.larını kendi içinde en büyük oy miktarından en aza doğru, diğer görevleri de aynı şekilde kendi içinde sıralaması. Bunu ben zaten yaptım daha önce. Ama her görevi kendi içerisinde sıralayamadım.


Ekte bulunan düzenlenmiş örneği inceleyiniz.

Konunun dağılmaması ve Site Kuralları açısından 2. sorunuz için yeni konu açınız.

Sayın ozanakkaya, çok teşekkür ederim. Konuya usta dokunuşu farklı bir şey...ikinci soru için biraz uğraşacağım. Eğer çözemezsem dediğiniz gibi kurallara uymak gerekir. içinden çıkmaz isem tekrar sitemize, siz ustalarımıza danışacağım...
(11/12/2014, 19:48)alpertunga65 yazdı: [ -> ]Sayın ozanakkaya, çok teşekkür ederim. Konuya usta dokunuşu farklı bir şey...ikinci soru için biraz uğraşacağım. Eğer çözemezsem dediğiniz gibi kurallara uymak gerekir. içinden çıkmaz isem tekrar sitemize, siz ustalarımıza danışacağım...

Aslında 2. sorunuzun cevabını 2. mesajda belirtmiştim.

SELECT Tbl_Gorev.Gorev_ID, Tbl_Gorev.Gorev_Adi, DMax("Val(OyMiktari)","Tbl_Aday","[Gorev_ID]=" & [Tbl_Gorev].[Gorev_ID]) AS İfade1

FROM Tbl_Gorev RIGHT JOIN Tbl_Aday ON Tbl_Gorev.Gorev_ID = Tbl_Aday.Gorev_ID
GROUP BY Tbl_Gorev.Gorev_ID, Tbl_Gorev.Gorev_Adi, DMax("Val(OyMiktari)","Tbl_Aday","[Gorev_ID]=" & [Tbl_Gorev].[Gorev_ID])
ORDER BY Tbl_Gorev.Gorev_ID;
Sayfalar: 1 2