Mükerrer kayıtlardan bir adet kalacak şekilde silme. | AccessTr.neT
25/08/2013, 19:26 (Son Düzenleme: 26/08/2013, 23:21, Düzenleyen: direnist.)
Benim çalışmamda kimisi 3 defa kimisi 2 defa tekrarlanan kayıtların olduğu bir tablom var. Kayıt adedi bir milyondan fazla ve bu kayıtlat içerisinde mükerrer olan kayıtlardan bir tane kalacak şekilde silmek istiyorum. Fakat bu bir milyon kayıt içindeki mükerrer kayıtlarda birini diğerinde farklı kılacak benzersiz bir alan yok. Ozan hocamızın http://www.accesstr.net/konu-mukerrer-ka...rgusu.html isimli örneğinde Kişi No adında bir benzersiz alanı var ve buna göre benimde istediğim gibi bir adet kayıt kalcak şekilde silme işlemi yapılıyor.
Ben kendi örneğimde yeni bir alan eklemeden bunu nasıl uygulayabilirim. Ozan hocamızın ilk örneğini KişiNo alanını silip mükerrer kayıtlar ekleyerek ekliyorum. Bu örnekte mükerrer kayıtlardan sadece 1 tane kalacak şekilde nasıl silerim.
direnist-mükerrerkayitsil.rar (Dosya Boyutu: 11,74 KB / İndirme Sayısı: 14)
26/08/2013, 00:56 İstediğinizi bir form üzerinden yaptım ancak döngülerle ilgili bir hata yaptığım için her çalıştırmada benzer kayıtlardan birer tane silebiliyorum. En sonunda artık silinecek kayıt olmadığı için duruyor. Şİmdi bu işi de döngü ile hiç benzer kayıt kalmayacak duruma gelene kadar döndüreceğim. Az kaldı geliyor ))
26/08/2013, 09:37 Sponsor Reklam
Mehmet hocam çok teşekkür ederim.
26/08/2013, 13:42 Örneğiniz hazır. BUyrun.
direnist-mükerrerkayitsil_demiral.rar (Dosya Boyutu: 55,89 KB / İndirme Sayısı: 34)
26/08/2013, 22:10 Sponsor Reklam
Mehmet Hocam algoritmanıza hayran kaldım.
Zor oldu benim için ama çözdüm. Çözdüm derken anladım yani nasıl işlediğini. Döngü 1 den tablodaki isim adedi kadar dönecek
Geçerli kayıttaki TCKN bilgisini TCNO değişkenine al
Bir sondaki kayda geç
Bu kayıttaki TCKN bilgisi TCNO değişkeni içindeki bilgiye eşit ise sil ve sonraki kayda geç.
Aynı işlemleri tekrarla.
Peli hocam silme işlemindeki komular nedir diye sorsam çokmu olurum?
Yani; DoCmd.RunCommand acCmdSelectRecord komutu kaydı seçili halemi getiriyor.
Neden direk DoCmd.RunCommand acCmdDeleteRecord ile silme işlemini yapmadık.
26/08/2013, 22:57 Aslında ilk başta sonraki kayda gitme olayını silme anında yapmayı düşünmüştüm. Oldu da. Ama şimdi hatırlayamadığım bir hata oluşuyordu. Bu nedenle sonraki kayda gitmek için DoCmd.GoToRecord , , acNext kullandım. Aslında silme kodunu accessin normal silme sihirbazındaki kodlardan kopyaladım. Ben pek ezber yapamam da )) Senin dediğin şekilde daha mantıklı. Gözümden kaçmış. Gereksiz bir komut olarak kalmış orda. Eeee, döngüye odaklanmaktan gözümüz diğer yerleri görmemiş.
gruplara göre sıralamakaçılan kutudan seçilen krtitere göre başka tabloya veri ekleme