Butonla kayıt silmek.

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba ben bir tane silme amaçlı bir buton oluşturdum.Aşağıdaki kodlar oluştu.Ama ilk kaydı siliyor.Ben ise listboxta seçili satırdaki kaydı silmek istiyoru.
Idno listboxta ilk sütunda bulunuyor.
Kod:
Private Sub Sil_Click()
On Error GoTo Err_Sil_Click


    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

Exit_Sil_Click:
    Exit Sub

Err_Sil_Click:
    MsgBox Err.Description
    Resume Exit_Sil_Click
    
End Sub
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Kod:
Private Sub Sil_Click()
 
If MsgBox("Kayıt Silinmek Üzere. Emin misiniz?", vbYesNo, "   Evren Gizlen") = vbYes Then
Me.Listem.Recordset.Delete
Me.Listem.Requery
End If
End Sub
olarak düğmenin olay yordamına uygulayabilirsiniz..
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Kod:
Private Sub Sil_Click()
 
If MsgBox("Kayıt Silinmek Üzere. Emin misiniz?", vbYesNo, "   Evren Gizlen") = vbYes Then
Me.Listem.Recordset.Delete
Me.Listem.Requery
End If
End Sub
olarak düğmenin olay yordamına uygulayabilirsiniz..
Başka kayıtları silyor galiba taruz bey.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Şimdi fark ettim ilk kaydı siliyor
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Evren Gizlen,

Anladığım kadarıyla, web uygulamalarında Admin panellerine benzeyen bir şey yapmak istiyorsunuz.

Bunun yapmanın iki yolu var.

1. Yol Formu Sürekli form şeklinde düzenlemek. Bu şekilde bütün veriler alt alta gelirler. Siz formu düzenlerken metin kutularını formun ayrıntı kısmına, etiketleri ise form başlığına koyup form tasarım görünümündeyken sağ üst köşedeki siyah noktayı çift tıklarsanız o zaman form özellikleri penceresi açılacak ve form özelliklerinden Biçim sekmesinin Görünüm Ayarlarını sürekli forma çevirirseniz tüm kayıtları alt alta görürsünüz. Şimdi en sağa bir düğüme ekleyip sihirbaza kayıt sil kodlarını eklemesini söylerseniz (ki sizin kodlar oraya ait) tüm kayıtların en sağında silme düğümesi belirir. Bü düğüme bulunduğu sıaranın kaydını siler.

2. Yapmak istediğiniz şekilde liste den seçip bir düğümeyle kaydı silmek için:

Yine accessin olanaklarından faydalanacağız.

Öncelikle bir sorgu hazırlayacağız, sorgular sekmesini seçip Yeni sorgu oluşturu tıklayınca size hangi tabloyu veya sorguyu ekleyeceğinizi soran bir pencere çıkacaktır. Buradan ilgili tablonuzu ekleyin. Sorgu oluşturma penceresinin üst kısmında tablonuzu ve alanları göreceksiniz, öncelikle en üstdeki * çift tıklayınca aşağıya taşındığını göreceksiniz. * seçmemizin nedeni oluşturacağımız sorgunun tüm alanları seçmesini sağlayacağız. Üsteki alana sağ tılayınca açılan pencereden Sorgu Türü- Silme sorgusunu seçiyoruz daha sonra anahtar alanımız olan genelde ID gibi bir alanı sorguya ekliyoruz bu anahtar alanlarda benzersiz kayıtlar bulunur. yani 1 sadece bir kez kullananılabilir. Bu alanı eklememizin sebebi sileceğimiz kaydın koşulunu belirtmek istememiz.

Bu alanın en ölçüt satırına sağ tıklayıp sihirbaz sopası ikonunu tıklıyoruz (Amma marifetli değil mi:tongue::tongue:) karşımıza deyim oluşturucu çıkıyor. Bunu biraz kurcalayın çok marifetli ve hataları en eza indiriyor. Yazım hatası oluşmuyor en azından.
Buradan en soldaki listeden formlar, oradan da listemizin bulunduğu formu buluyoruz çift tıkladığımızda ikinci listeye bu formun alanları beliriyor, buradan listemizi bulup çift tıklıyoruz alanın kodları yukarıda beliriyor tamama tıkladığımızda ölüçüt kısmımızda liste nin yazıldığı görülüyor. Biz sorgumuza listede hangi kayıt seçilmiş ise onu sil diyoruz.

Sorgumuzu kaydedip forma geliyoruz, forma bir düğme ekliyoruz ve sihirbazda çeşitli den sorgu çalıştırı seçiyoruz sihirbaza kaydettiğimiz sorgumuzu gösterip Tamam a tıklıyoruz.

Uygulamamız tamam şimdiye kadar hiç kod yazmadık access bütün işi kendisi yaptı.

Gönlümüz kalmasın bizde elle iki satır eklememiz gerekiyor:

Me.Liste0.Requery

Bu kodu sorgutu çalıştır komutunun altına ekliyoruz ki anında silinen veri listeden kalksın. Kodun anlamı Me (yani ben yani çalıştığımız form) bunu neden ekliyoruz? Kod yazma benceresine Me yazıp bir . koyduğumuzda daha sonra yazabileceğimiz tüm komutlar belirir. Benim üstümdeki Liste0 alanını tekrar sorgula demek.

Aynı kodu ilk formumuza da ekledik:

Me.Requery

Burada kayıtlar formda olduğu için formumuz yeniliyoruz.

Bir de örnek ekledim. İnceleyin

İyi çalışmalar
 

Ekli dosyalar

Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Bu şekilde de deneyebilirsiniz..

Kod:
Private Sub Komut8_Click()
If MsgBox("Kayıt Silinmek Üzere. Emin misiniz?", vbYesNo, "   Evren Gizlen") = vbYes Then
With DoCmd
.SetWarnings False
.RunSQL "delete from tablom where id=forms.formum.listem"
.SetWarnings True
End With
Me.Listem.Requery
End If
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Taruz bey aşıdaki kodlarda,forms,formum,listem nelerdir ?açılımını yazarmısınız?
.RunSQL "delete from tablom where id=forms.formum.listem"
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Evren Gizlen,

RunSql Sql cümlesini çalıştır demek.

"delete from tablom where id=forms.formum.listem"
Çalıştırılacak sql cümlesi

Delete sil nereden tablom adlı tablodan neyi silecek id si forms koleksiyonunun (formlar) formum formunun listem adlı listede seçili olan kayıt.

Arada bende geri bildirim bekliyorum.:frown:

İyi çalışmalar
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Evren Gizlen,

RunSql Sql cümlesini çalıştır demek.

"delete from tablom where id=forms.formum.listem"
Çalıştırılacak sql cümlesi

Delete sil nereden tablom adlı tablodan neyi silecek id si forms koleksiyonunun (formlar) formum formunun listem adlı listede seçili olan kayıt.

Arada bende geri bildirim bekliyorum.:frown:

İyi çalışmalar
Modalı bey sizin dedikleriniz yapamadım.Taruz beyin kodlarını yazdım ama oda vt yi tamamen silid silinecek id sordu bende girdim ama hepsini sildi.:agla:
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Modalı bey sizin dedikleriniz yapamadım.Taruz beyin kodlarını yazdım ama oda vt yi tamamen silid silinecek id sordu bende girdim ama hepsini sildi.:agla:
Önce eklediğim uygulamayı inceleyin, sonra adım adım dediklerimi yapın zor değil. Takıldığınızı sorun.

2 çözüm birden var.

İyi çalışmalar
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Evren Gizlen,

RunSql Sql cümlesini çalıştır demek.

"delete from tablom where id=forms.formum.listem"
Çalıştırılacak sql cümlesi

Delete sil nereden tablom adlı tablodan neyi silecek id si forms koleksiyonunun (formlar) formum formunun listem adlı listede seçili olan kayıt.

Arada bende geri bildirim bekliyorum.:frown:

İyi çalışmalar
Ama burada ıd nosu girilmemiş.Zaten silmeye kalkıştığınızda id nosunu soruyor.Id nosunuda listedeki SIRA adlı sütundan alacağını söylememmiz gerekmiyormu.Birde şimdi aklıma geldi Id nosu için ben otomatik no verdirmedim elle giriyorum.Vtye
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Evren Gizlen,

Yukarıda eklediğim uygulamadaki sorgunun kodlarını da ekleyeyim bir fikir verebilmek için:

DELETE kisiler.*, kisiler.id
FROM kisiler
WHERE (((kisiler.id)=[Formlar]![Form1]!
[Liste0]));

kişiler tablosunun kişiler id kaydının formlar koleksiyonunun Form1 adlı formun üstündeki Liste0 listesinin seçili kaydını sil diyor.

Veritabanında benzersiz kayıt bulunan bir alan olmalı. elle girdiğiniz alan da benzersiz verileri barındırabilir.

İyi çalışmalar
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Modalı bey sizin sihirbazla oluştırduğunuz sorguyu tasrım modunda açtığımda
üstten aşağı doğru sırasıyla
sizin sorgunuz benim sorgu
--------------- -----------------
Alan alan
Tablo Tablo
Sil Sırala
ölçüt Göster
Veya Ölçüt
Buradad göründüğü gibi sizde sil varken bende Sırala var .Burada bir terslik var.Sorguyu oluşturmaya kalktığımda otomatikman sırala amacı ile oluşuyor.Oysa biz silme amacı ile yapacaktık.Bunu aşarsak olacak üstadım.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Evren Gizlen,

Dikkatli okusaydınız görecektiniz:

Sorguyu oluşturdunuz üst alanda (tabloların eklendiği) boş bir yere sağ tıklayın orada sorgu türü var oradan Silme sorgusunu seçin.

İyi çalışmalar
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Oldu oldu şükürler olsun sonunda silebildim.
Modalı beyin Sihirbaz sorgusu ile oldu.Teşekkürler arkadaşlar.
Yalnız silme işleminden sonra textboxlarda silindi ibaresi oluşuyor.
Listbox seçilemiyor.
Ancak aşağıdaki kayıt numaratörüne tıklayınca listboxta seçim olabiliyor.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Evren Gizlen,

Listeyi tekrar sorgulamanız gerekir. Sorguyu çalıştırdığınız kodların içine:
Kod:
On Error GoTo Err_Komut4_Click

    Dim stDocName As String

    stDocName = "Sorgu1"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
    
    [COLOR=Red]Me.Liste0.Requery[/COLOR]

Exit_Komut4_Click:
    Exit Sub

Err_Komut4_Click:
    MsgBox Err.Description
    Resume Exit_Komut4_Click
Kırımızı ile yazılan satırı ekleyin. Liste0 yerine kendi liste adınızı yazın.

İyi çalışmalar
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Yeni komut düğmesi ekleyip çeşitliyi seçtikten sonra ileri ye basıyoruz sonra oluşturduğumuz sorguların listelenmesi gerekiyor ama benim oluşturduğum sorgu listelenmedi orada.Bu konuda yardımınızı bekliyorum.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sorgunuzu kaydettiğinize emin misiniz?

Sorgular bölümünde görülen tüm sorgular ilgili yerlerde görünmesi gerekiyor.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sorgu sorgu bölümünde gözüküyordu.
 
Üst