• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Veri tabanındaki kayıtların sıralaması

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,400
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,
Veri tabanındaki verilerin sıralamasını tablodaki kayıt sırasına göre almak istiyorum. "MoveFist" komutunun kullanımı nasıl olmalı.

Kod:
Sub xxx()
    Dim dbs As Database, rst As Recordset
    
    Set dbs = OpenDatabase("C:\Documents and Settings\zgry\Desktop\vt1.mdb")

    Set rst = dbs.OpenRecordset("SELECT * FROM Tablo1")
    
    rst.MoveFirst ' İlk kayıta geçemiyoruz.
    
    Do While Not rst.EOF
    s = s + 1
    Cells(s, 1) = rst!Ad
    Cells(s, 2) = rst!tut
    rst.MoveNext
    Loop

    dbs.Close


End Sub
 
rst.MoveFirst en başa gitmek istediğiniz tablonuz boşsa hata vermesi muhtemeldir fakat bunun dışında bir hata ile karşılaşıyorsanız aldığınız hatanın ne olduğunu numarası ile birlikte söylerseniz yardımcı olmaya çalışırım.
 
Hata almıyorum. Verileri, tablodaki sıra düzeniyle almak istiyorum sadece.
 
Özür dilerim ben MoveFirst ile ilgili bir probleminiz olduğunu sanmıştım.
Öncelikle şunu söyleyeyimki sizin probleminizin MoveFirst ile ilgisi yok çünkü bu komut imleci tablonuzun başına konumlandırır.

Probleminizin çözümü için aklıma bir tek şey geliyor, tablonuzu oluştururken alfabetik sıralama yaptırmış olabilirsiniz. Tablonuzu tasarım görünümünde açın ve özellikler penceresinden sıralama yapılıp yapılmadığını kontrol edin eğer sıralama yapılmışsa kaldırın.
 
İlginiz için teşekkürler.
Dediğiniz özelliği kontrol ettim, sıralı değil. Ayrıca tablom da sıralı değil. Neden en son kayıttan başlayarak geriye doğru veri getirdiğini hala çözemedim.
 
Sayın Anemos gerçekten ilginç bir şey

o zaman bizde işlemi tersten yaparak çözmeye çalışalım

MoveFirst yerine MoveLast

MoveNext yerine MovePrevious deneyin bakalım ne olacak.
 
Hata iletisi geldi. İçeriği : "Run-time error '1004' Geçerli kayıt yok."

Sanırım en iyi sayfaya getirdikten sonra sıralama olacak. Ama bir çözümü varsa da onu da merak ediyorum.
 
Sayın Anemos
Son bir önerim daha var. Access dosyanız bozulmuş olabilir mi?
Access dosyanızdaki verileri yeni bir access dosyasına alın ve deneyin.

Olmuyorsa
Access dosyanızı sıkıştırarak eklerseniz elimden geleni yapmaya çalışırım.
 
Sorun çözüldü.

Sayın Anemos
Son bir önerim daha var. Access dosyanız bozulmuş olabilir mi?
Access dosyanızdaki verileri yeni bir access dosyasına alın ve deneyin.

Çok teşekkür ederim. Öneriniz işe yaradı ve sorun çözüldü.
 
Set rst = dbs.OpenRecordset("SELECT * FROM Tablo1")
buraya şunu ekliyoruz order by ... asc

Set rst = dbs.OpenRecordset("SELECT * FROM Tablo1 order by SIRALAMAK_İSTEDİĞİN_SUTUN_İSMİ ASC")
 
Geri
Üst