Skip to main content

AccessTr.neT


Enterpolasyon (Ara Değer) Hesaplama

Enterpolasyon (Ara Değer) Hesaplama

Çözüldü #7
Rica ederim, sn. elmariachi,

Son isteğinizi bir If - ElseIf kontrolü ekleyerek yapabilirsiniz.

Kod:
Dim Bulunan_AltM2, Bulunan_UstM2, Bulunan_AltDeger, Bulunan_UstDeger
    
    Select Case Me.SINIF
    Case "1 Sınıf"
        Bulunan_AltDeger = DLookup("[1_Sınıf]", "PID_SORGUSU_ALT", "[YYm/BM (m2)] <=" & Me.TOPSAYI)
        Bulunan_UstDeger = DLookup("[1_Sınıf]", "PID_SORGUSU_UST", "[YYm/BM (m2)] >=" & Me.TOPSAYI)
    Case "2 Sınıf"
        Bulunan_AltDeger = DLookup("[2_Sınıf]", "PID_SORGUSU_ALT", "[YYm/BM (m2)] <=" & Me.TOPSAYI)
        Bulunan_UstDeger = DLookup("[2_Sınıf]", "PID_SORGUSU_UST", "[YYm/BM (m2)] >=" & Me.TOPSAYI)
    Case "3 Sınıf"
        Bulunan_AltDeger = DLookup("[3_Sınıf]", "PID_SORGUSU_ALT", "[YYm/BM (m2)] <=" & Me.TOPSAYI)
        Bulunan_UstDeger = DLookup("[3_Sınıf]", "PID_SORGUSU_UST", "[YYm/BM (m2)] >=" & Me.TOPSAYI)
    Case "4 Sınıf"
        Bulunan_AltDeger = DLookup("[4_Sınıf]", "PID_SORGUSU_ALT", "[YYm/BM (m2)] <=" & Me.TOPSAYI)
        Bulunan_UstDeger = DLookup("[4_Sınıf]", "PID_SORGUSU_UST", "[YYm/BM (m2)] >=" & Me.TOPSAYI)
    Case "5 Sınıf"
        Bulunan_AltDeger = DLookup("[5_Sınıf]", "PID_SORGUSU_ALT", "[YYm/BM (m2)] <=" & Me.TOPSAYI)
        Bulunan_UstDeger = DLookup("[5_Sınıf]", "PID_SORGUSU_UST", "[YYm/BM (m2)] >=" & Me.TOPSAYI)
    End Select
    
    Bulunan_AltM2 = DLookup("[YYm/BM (m2)]", "PID_SORGUSU_ALT", "[YYm/BM (m2)] <=" & Me.TOPSAYI)
    Bulunan_UstM2 = DLookup("[YYm/BM (m2)]", "PID_SORGUSU_UST", "[YYm/BM (m2)] >=" & Me.TOPSAYI)
    
    If Bulunan_UstM2 <= 500 Then
        Me.Deger = Bulunan_UstDeger
        Bulunan_AltDeger = Bulunan_UstDeger
        Bulunan_AltM2 = Bulunan_UstM2
    ElseIf Bulunan_AltM2 >= 80000 Then
        Me.Deger = Bulunan_AltDeger
        Bulunan_UstDeger = Bulunan_AltDeger
        Bulunan_UstM2 = Bulunan_AltM2
    Else
        Me.Deger = ((Bulunan_UstDeger - Bulunan_AltDeger) / (Bulunan_UstM2 - Bulunan_AltM2)) * (Me.TOPSAYI - Bulunan_AltM2) + Bulunan_AltDeger
    End If
    
    Me.AltDeger = Bulunan_AltDeger
    Me.UstDeger = Bulunan_UstDeger
    Me.AltM2 = Bulunan_AltM2
    Me.UstM2 = Bulunan_UstM2

.rar EnterpolasyonHesabi_Seruz.rar (Dosya Boyutu: 15,14 KB | İndirme Sayısı: 28)
Bildiğini bilenin arkasından git, bildiğini bilmeyeni uyar, bilmediğini bilene öğret, bilmediğini bilmeyenden kaç.
Konfüçyüs
Cevapla
Çözüldü #8
Merhaba arkadaşlar,

Seruz üstadın daha önce yardımcı olduğu bu konuda hiç hesaplamadığım bir sorunla karşılaştım. Şimdiye kadar sorunsuzca çalışıyordu ama ne zaman tamsayı yerine ondalık sayı kullanılması gerekti, rapor hata vermeye başladı.

Kod kısmında Integer tipi veri kullanılmış, sanırım sorun bundan kaynaklanıyor. Single tipi ile denedim ama sorun çözülmedi. Kod bilgim zayıf olduğu içinde maalesef çözemedim.

Bundan önceki mesajdaki dosyayı indirip, Sayılar isimli tablodaki Sayı1 veya Sayı2 alanlarındaki herhangi bir veriyi ondalık sayı ile değiştirip deneyebilirsiniz.

Selamlar...
elmariachi, 17-04-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
Çözüldü #9
tsklrrr
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task