Skip to main content

AccessTr.neT


Kritere Göre Hesaplama (Yardım)

Kritere Göre Hesaplama (Yardım)

Çözüldü #1
Merhaba değerli arkadaşlar.

Besyö öğrencilerine yapılacak olan test için bir uygulama hazırlamamız gerekiyor. Uygulamanın içeriği kısaca şu şekilde olacak;

- Cinsiyetine göre, örneğin 40 şınavın 16-20 yaş aralığında bir erkek öğrenci için puanı 70 iken, 24 yaşından büyük bir erkek öğrenci için puanı 82 olacak.
Bu 40 şınavın 16-20 yaş aralığında bir bayan öğrenci için ise puanı  100 iken 24 yaşından büyük bir bayan öğrenci için puanı 88 olacak.

Programdaki kriter mantığı kısaca yukarıdaki anlattığım şekilde olacak. Kaç gündür işin içinden çıkamadık, türlü türlü hesaplama yöntemi diyoruz ancak tecrübesizliğimizden ve bilgisizliğimizden olsa gerek, düzgün bir mantık kuramadık.

Yazımın ekinde eklediğim programda ŞınavErkek ve ŞınavBayan isimli 2 tablo oluşturdum. Orada erkekler için şınav tekrar sayısı ve yaş aralığına göre alacağı puan ile aynı işlemin bayanlar için yapılan puanlaması mevcut.

Form üzerinde şınav hesabını yapmamız için yardımcı olabilir misiniz? Yapacak olan arkadaşımın sadece şınav hesabını yapması yeterli, oradaki mantığa göre biz mekik, barfiks ve koşu için hesaplamaları yaparız.

Şimdiden çok teşekkür ediyorum arkadaşlar, saygı ve selamlarımla.
.zip BesyoTakip.zip (Dosya Boyutu: 49,52 KB | İndirme Sayısı: 4)
Son Düzenleme: 10/01/2020, 02:01, Düzenleyen: sancaktar.
Cevapla
#2
if lerle kolayca yapılabilecek bir uygulama gibi gözüküyor.


Visual Basic Code
if(kadin ise)
   if(16 ya eşit veya daha büyük ve 20 ye eşit veya daha küçükse)
         puan = 100
   elseif(24 den daha büyükse)
          puan = 88
    end if
else
    if(16 ya eşit veya daha büyük ve 20 ye eşit veya daha küçükse)
         puan = 70

   elseif(24 den daha büyükse)
          puan = 82

    end if
end if

mesela bu neden işinizi görmesin
Cevapla
#3
belki de sıkıntı 20-24 yaş arasındaki grubu görmezden geldiğiniz içindir
Cevapla
#4
Erkek öğrenci için:

Visual Basic Code
Dim GYas As Integer

GYas = DateDiff("yyyy", Me.dogum_tarihi, Now()) + Int(Format(Now(), "mmdd") < Format(Me.dogum_tarihi, "mmdd"))

Me.sinav_puani = "0"

If Me.cinsiyeti = "Bay" Then

    If GYas > "15" And GYas < "21" Then

        Me.sinav_puani = DLookup("[16-20Yas]", "SinavErkek", "[SinavSayisi]= " & Me.sinav_tekrar_sayisi)
    
    ElseIf GYas > "24" Then

        Me.sinav_puani = DLookup("[24tenBuyuk]", "SinavErkek", "[SinavSayisi]= " & Me.sinav_tekrar_sayisi)
    
    End If

End if

Üstteki kod, 09.01.2000 doğumlu öğrenciyi 20, 11.01.2000 doğumlu öğrenciyi 19 yaşında hesaplar. 

(10/01/2020 08:08)accessman Adlı Kullanıcıdan Alıntı: belki de sıkıntı 20-24 yaş arasındaki grubu görmezden geldiğiniz içindir


Üstteki mesajı da gözardı etmeyin.
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#5
Çok teşekkür ediyorum değerli hocalarım, hemen kontrol edip geri dönüş sağlayacağım.
Cevapla
#6
sayın sancaktar diğer alanlarında hesaplama yöntemi aynı mı olacak daha tablolarını eklemediğiniz mekik_puanı gibi alanlar?
eğer öyle ise temel bir şablon oluşturabiliriz
aşağıdaki çalışmada yapılacak ufak bir kod değişimiyle genişletilip diğerleri içinde kullanılabilir
.rar BesyoTakip_hy.rar (Dosya Boyutu: 62,72 KB | İndirme Sayısı: 7)
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da