Skip to main content

AccessTr.neT


Hatamı anlayamıyorum (Subscript out of range)

Hatamı anlayamıyorum (Subscript out of range)

Çözüldü #1
İyi geceler değerli hocalarım,

Yapmaya çalıştığım programda "alternatifleri sırala" butonuna bastığımda bir formül çalıştırmak istiyorum. Fakat tuşa bastığımda bir hata veriyor ve ben bu hatanın neden kaynaklandığını anlayamıyorum.

Kod yazmaktan anlamadığım için formülün kodları çok fazla oldu.
Eminim bir döngü yapısıyla çok daha az satır aynı işi görürdü.
Acaba hatanın sebebi fazla kodlar mı?

Bu konuda bana yardımcı olabilirseniz çok sevinirim.
.rar oss.ver08.rar (Dosya Boyutu: 82,12 KB | İndirme Sayısı: 25)
Cevapla
Çözüldü #2
Sayın lawish
ne yapmaya çalıştığınızı anlayamadım ama
hatadan kurtulamk için sırala düğmesinin hemen altına örnekteki gibi
On Error Resume Next yazısını yazmanız yeterli olacak
burada neden dizileri kullandınız ?
Private Sub sırala_Click()
On Error Resume Next
Dim a(29, 4) As Single
Dim w(29, 0) As Single

w(0, 0) = w1.Value
Cevapla
Çözüldü #3
Gerçekten çok karmaşık, bişey anlamak için baya uğraşmak lazım. İsterseniz amacınızı biraz daya açıkça ifade edin, belki yardımcı olabiliriz.
Cevapla
Çözüldü #4
hatan içlerinde hiç bir veri olmamasına rağmen metin kutularına başvuruyor olman ondanda ziyade üç beş kutuya seçilen puanın 5 altı 5 üstü puanllara sahip bölümleri yada üniversiteleri puan aralıkları ile yazmak için bu kadar koda ve hesaba gerek yoktur bir liste ile seçtiğim alanda seçtiğim ilde ve seçtiğim puan türünde 5 alt 5 üst puana sahip kayıtları listele ve bana büyükten küçüğe ilk 20 kaydı göster demek bu kadarmı zor gördüğüm kadarı ile sen zaten işin zor kısımlarını halletmişsin

ama ben daha kapsamlı bir öss tercih programı hazırlıyorum diyorsan yeni sistemin geçn sene ilk öğrencilerini aldığını varsayarsak kontenjanları bilmen geçen sene ki en son puanı ve ilk puanı bilmen bu seneki taban puanı bilmen kazanan kişi sayısını bilmen ona göre kazanalardan seçilen ve seçilen üniversitedekis seçilen bölümü tercih edeceklerin ortalama puan aralığını hesaplaman ona göre tercih edeceklerin olasılık hesabını yapman ve ona göre bu bölüme yerleşip yerleşemeyeceğni söylemen gerekirki onuda geçelim bu işlemi seçilen puan aralığında bulunan bütün kayıtlar için yapacakki buda şu anda senin yaptığın gibi ben kodun gerekli yerlerini düzelttikten sonra gördümki owerflow a düşürür

yani sana kısaca tavsiyem bu kadar derin düşünme sadece seçilen il üniversite bölüm ve puana ait bir şey düşüyorsa göstersin yoksa alta bir liste koy
orda seçilen puan aralığında yada seçilen puanın 5 üstü 5 altı olan kayıtları seçsin ve orada en yüksek kontenjana sahip olanları ayırsın ve onları büyükten küçüğe sıralasın ve ilk 23 ü göstersin burdakileride seçilenleri bir kenara at mantığı kullan ve bir temb tablosuna yazdır ondan sonra sıralamayı bir daha yaptır ve yine seçilen puan aralığında bu sfer seçilenleri devre dışı bırakarak ve seçilen sayıyıı düşerek kalan kadar tekrar bir liste çıkarsın tabi bir önceki listede seçilmeyenleride devre dışı bırakarak bu şekilde kaç tercih yapacaksa tercih sayısı dolana kadar devam etsin
meşhur çin atasözü  "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Cevapla
Çözüldü #5
Sn adnanyurdakul, mesudi ve esrefigit
Problemimle ilgilendiğiniz için çok teşekkür ederim.

Sn esrefigit

Fikirleriniz gerçekten çok doğru ve değerli. Zamanınızı ayırıp görüşlerinizi yazdığınız için çok teşekkür ederim.

Ne yapmak istediğimi daha detaylı anlatırsam sizleri daha az yoracağım heralde. Daha önce daha detaylı anlatmadığım için kusura bakmayın düşünememişim.

Benim yapmam gereken şey sıradan öss tercih robotlarından farklı olarak arka planında çok amaçlı karar verme sistemlerinden biri olan TOPSIS in çalıştığı bir öss tercih robotu yapmak. Bunu yapmak benim seçimim değil malesef bana verilen projenin konusu bu.

Basamak basamak ne yapmaya çalıştığımı şöyle anlatabilirim.

1-"Şehirler" kutusundan istediğim şehirleri seçecem ve bu şehirlerde bulunan üniversiteler "Üniversiteler" kutusunda çıkacak.

2-"Alanlar" listesinden istediğim alanı, "Puan" listesinden istediğim puan aralıklarını ve "Ünivesiteler" listesinden de istediğim üniversiteleri seçecem. Yaptığım seçimlere uygun olan bölümler "Bölümler" listesine çıkacak.

3-"Bölümler" listesinde çıkan bölümlerden istediğim 30 bölümü çift tıklayarak alternatif kutularına getirecem.

Bu kısımdan sonra belirlediğim alternatifleri Topsis yöntemine göre sıralatacam.

Topsis yönteminde alternatifler ve kriterler bulunur. Her altarnatife her kriter için puanlandırma yapılır.

Alternatif kutularının yanındaki 6 sutundan ilki kriterlere verilen ağırlıkları girmek için kullanılacak. Diğer 5 sutun kriterler için kullanılacak.

Mesela 2. sutun uzaklık kriteri olsun.
2. sutunun 1. satırına;
1. alternatif için uzaklık değerini girecem.
Böylelikle bütün kutuları rakamlarla dolduracam.

Daha sonra "Alternatifleri sırala" butonuna bastığımda Topsis yöntemi çalışacak ve her alternatif için birer sonuç bulacak. Bulduğu bu sonuçları alternatif kutularının yanındaki 1. sutuna yazdıracak.


Sn. adnanyurdakul

Neden dizileri kullandığımı sormuşsunuz.
Daha önce bu bahsettiğim Topsis yöntemini Matlab da yazmıştım. Matlabda matrisleri kullanarak çok az satırla işimi halletmiştim.
Vbde de dizileri kullanarak yapabileceğimi sandım ama beceremedim. Baştan dizi şekilinde tanımlayıp gittiğim için öyle devam ettim.
Başka herhangi özel bir sebebi yok Img-grin
Cevapla
Çözüldü #6
Sayın lawish
3 madde dahil tamam anladım ama sonrasını anlayamadım
uzaklık ağırlık sosyal vs diyorsunuz bu değerler nereden gelecek bir yerde hesaplanarak mı gelecek buraya geldikten sonra burada işlem yapılacakmı
Topsis yönteminden kasıt nedir. Tabiiki bizler konulara yabancıyız böyle olunca problemi anlamak teşhis ve tedavisini yapmak güçleşiyor
iyi çalışmalar
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task