• DİKKAT

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

Access işlem gören kayıt.

  • Konbuyu başlatan Konbuyu başlatan Yitik
  • Başlangıç tarihi Başlangıç tarihi
Katılım
23 Ekim 2011
Mesajlar
31
Excel Vers. ve Dili
2003 Türkçe
Merhaba arkadaşlar, herkese iyi yıllar.
Aşağıda ki kod satırları ile access veritabanında en son işlem görmüş olan kaydı listview1 nesnesine almak istiyorum. Kayıt değiştirme işleminde de kullanacağım için, en son kayıt değil, en son işlem görmüş kayıt seçilmeli. Kırmızı renkli kod satırını ne şekilde yazacağımı bilemedim.





Kod:
[COLOR="Sienna"]rs.Open "select * from kayit order by No desc", con, 1, 1 [/COLOR]
With ListView1.ListItems.Add , , rs(0).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(1).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(2).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(3).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(4).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(5).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(6).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(7).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(8).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(9).Value
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(10).Value
End With
 
En son işlem gören kayıt nasıl tespit edilecektir. Eğer veri yeni kaydedilmiş bir veri ise mutlaka bu en son veri olacaktır.
 
Belkide veritabanı mantığını değiştirmem gerekiyor Levent bey, yukarıda ki kodlarda "No" ifadesi access te, "Kayit" tablosunda veri türü "otomatik sayı" olarak ayarlanmış bir alan. Bu sayılar yardımıyla veri değiştirme işleminde en son işlem görmüş satırı bulabiliyorum.Fakat yeni kayıtlarda, yukardaki kodlar bana en son veriyi getirmiyor. Örneğin en son kayıt no 46 iken bana 32 nolu kaydı getiriyor.Bu noktayı çözemedim.
 
En son işlem gören kayıt, daha önce kaydedilmiş ve tekrar düzenlenen kayıt da olabilir.

Bunun tespit etmenin en iyi yolu, her ekleme veya değiştirme işleminde başka alana o anki tarih ve saati kaydettirmek.
 
Tarihi zaten kaydettiriyorum Zeki bey, fakat saat aklıma gelmemişti.En son işlem gören kayıt satırını bulmak için güzel düşünce. Veritabanı excel olsa bu işleri kolayca yapabiliyorum, ama acces te "son dolu satır" nasıl bulunur, yada sütundaki en yüksek sayının olduğu satır nasıl bulunur.Bunları öğrenmeye çalışıyorum.
 
"dd.mm.yyyy hh:mm:ss" formatında alan olduğunu varsayın.

Sorgu da şunun gibi olabilir:

Kod:
select max(alan) from tablo
 
Belkide veritabanı mantığını değiştirmem gerekiyor Levent bey, yukarıda ki kodlarda "No" ifadesi access te, "Kayit" tablosunda veri türü "otomatik sayı" olarak ayarlanmış bir alan. Bu sayılar yardımıyla veri değiştirme işleminde en son işlem görmüş satırı bulabiliyorum.Fakat yeni kayıtlarda, yukardaki kodlar bana en son veriyi getirmiyor. Örneğin en son kayıt no 46 iken bana 32 nolu kaydı getiriyor.Bu noktayı çözemedim.

Merhaba..

Bu yaşadığınız sorun ile ilgili bir kaç ipucu vereyim.. Alan adı olarak kullandığınız No kelimesi Accesste rezerv sözcüklerden biridir.. (Diğer sözcükleri buradan inceleyebilirsiniz..).. Dolayısıyla sorgunuzda kullandığınız bu ifade Access tarafından alan adı olarak tanınmıyor..

Bu sorunu gidermek için ya alanın adını değiştirmelisiniz ya da ifadeyi köşeli parantez içerisinde kullanmalısınız..:

rs.Open "select * from kayit order by [No] desc", con, 1, 1
 
"dd.mm.yyyy hh:mm:ss" formatında alan olduğunu varsayın.

Sorgu da şunun gibi olabilir:

Kod:
select max(alan) from tablo

Zeki bey, access tede, excel de kullandığımız kodları kullanabildiğimizi görmem açısından, bu mesajınız çok faydalı oldu. Bu durumda xlup gibi komutlarıda kullanabiliriz sanırım.
Diğer sayı içerikli alanlarda "order by" ve "desc" komutlarını çalıştırabiliyorum. Sadece No isimli alanda çalışmıyorlar. Taruz bey'in verdiği ipuçları sorunu ortadan kaldıracak gibi görünüyor. Şimdi deneyeceğim.
 
Taruz bey öneriniz işe yaradı.
Zeki bey'in önerdiği "max" yada "xlup"gibi yöntemlerle alternatif kodlar yazılabilir sanırım. Onlarıda denemek üzere heyecanla vba sayfama dönüyorum:).
İlgilenen arkadaşlara teşekkür ederim.
 
Geri
Üst