[SORGU] Gruplama Işlemi
#1
Merhaba arkadaşlar, 

bir konuda yardım isteyecektim.

Örneğin;
*10 kişilik bir öğrenci gurubu, 7 adet sınıf , sınıfların belirli kontenjanları,  her öğrencinin puanı ve bu sınıflara yerleşmek için tercihi var. 
*Puan sıralaması yapılan öğrenciler tercihine göre sınıflara yerleştirilecektir.
*Öğrenciler sınıf kontenjan bazında en yüksek puan alan öğrenciden başlanarak tercihi olan sınıflara dağıtılacak,  birinci tercihi dolu olan sınıfın dolması halinde ikinci tercihine oda doluysa 3 üncü tercihine ... bu şekilde devam edecek.
*Örneğin herhangi bir öğrencinin tercih ettiği bütün sınıflar doldu ise o öğrenci açıkta kalacak.

Not: öğrenci sayısı, sınıf sayısı, sınıf kontenjanı değişebilir. Yapacakları tercih ise en az bir en fazla sınıf sayısı kadar olabilir.

2 adet tablo oluşturdum. tercih ve siniflar diye. Öğrenci dağıtma sonuçlarını tercih sayfasında sonuc sütünü olarak ayarladım.

örnek access dosyası: https://yadi.sk/d/LCQVsrSje7H09g

ekran görüntülerini de eklenti olarak ekledim. 
teşekkürler ,,,


Eklenti Dosyaları
.png   tercih.PNG (Boyut: 24,87 KB / İndirilme: 8)
.png   sinif.PNG (Boyut: 8,33 KB / İndirilme: 7)



  Alıntı
Bu mesajı beğenenler:
#2
tercih tablosunun yapısını değiştirip alanları sınıf1, sınıf2, sınıf3... yerine tercih1,tercih2, tercih3.... değiştirilse yada
tercihler tamamen farklı 3. bir tabloda yapılsa daha kullanışlı olmaz mı?



  Alıntı
Bu mesajı beğenenler:
#3
forma ekleyeceğiniz bir butonun olayına ekleyerek deneyebilirsiniz
sadece tercihler tablosunun sonuç alanı boş olan kayıtlarda yerleştirme yapıyor
dilerim işinize yarar
Visual Basic
  1. Dim TercihSira() As String
  2. Dim SiraRS As New ADODB.Recordset
  3. Dim SiraSql As String
  4. Dim i, x, xArr As Integer
  5.  
  6. 'REDIM PRESERVE TercihSira(i) As String  'REDIM PRESERVE... eski değerleri koruyarak dizinin boyutunu değiştirir
  7. 'REDIM  TercihSira(i) As String          'REDIM ... eski değerleri silerek  dizinin boyutunu değiştirir
  8.  
  9. SiraSql = "select * from tercih order by [puan] desc" ' öğrencileri puana göre sırala
  10. SiraRS.Open "tercih", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  11. If SiraRS.RecordCount < 1 Then Exit Sub 'tablo boşsa çık
  12. SiraRS.MoveFirst
  13. Do While Not SiraRS.EOF
  14. i=0
  15. For x = 0 To SiraRS.Fields.Count - 1 '
  16.    If SiraRS.Fields(x).Name Like "sinif*" And (Not IsNull(SiraRS.Fields(x))) Then i = i + 1
  17. Next x
  18. ReDim TercihSira(i)
  19.  
  20. For x = 0 To SiraRS.Fields.Count - 1 '
  21.     If SiraRS.Fields(x).Name Like "sinif*" And (Not IsNull(SiraRS.Fields(x))) Then
  22.        TercihSira(SiraRS.Fields(x)) = SiraRS.Fields(x).Name
  23.    End If
  24. Next x
  25.  
  26. For xArr = 1 To i
  27. If SiraRS.Fields(2) <> "" Then Exit For
  28. If DCount("*", "tercih", "sonuc='" & TercihSira(xArr) & "'") >= DLookup("kontenjan", "sinif", "sinif='" & TercihSira(xArr) & "'") Then GoTo 10
  29. CurrentDb.Execute "update tercih set sonuc='" & TercihSira(xArr) & "' where AdayTC=" & SiraRS.Fields(0)
  30. 10
  31. Next xArr
  32.  
  33. SiraRS.MoveNext
  34. Loop
  35.  
  36. SiraRS.Close: Set SiraRS = Nothing





  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] Tarih işlemi Ahmet51 5 198 20-02-2019, 12:00
Son Mesaj: Ahmet51
  [FORM] Form üzerinde çıkarma işlemi kalabakli 2 179 03-02-2019, 10:46
Son Mesaj: dsezgin
  [FORM] Formda Toplama İşlemi habatay 7 651 01-12-2018, 09:00
Son Mesaj: habatay
  [FORM] Form Da Yapmış Olduğum Hesaplama İşlemi #tür! Hatası Veriyor kursun 1 444 23-08-2018, 03:14
Son Mesaj: dsezgin
  [FORM] Liste Kutularında Gruplama keremm 0 240 25-07-2018, 10:54
Son Mesaj: keremm
  [RAPOR] Raporda Aynı Günleri Toplama İşlemi ferda23 3 528 30-05-2018, 01:59
Son Mesaj: dsezgin
  [TABLO] Açılışta Veritabanı şifresi açma kapama işlemi. pelitt 4 1.718 31-03-2018, 13:26
Son Mesaj: accesali
  [FORM] Alan içinde yeniden sorgulama işlemi atyaty 1 576 12-03-2018, 23:53
Son Mesaj: dsezgin

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi