Access tablolarımdaki verileri nasıl silerim?

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Arkadaşlar merhaba;

Access dosyamın tablolarındaki verilerimi silip 2008 yılı için aynı şablonu hazırlamak istiyorum.

Tablolarım arasında ilişki bulunduğunda, bu verileri silemezsiniz iletisi alıyorum.

Bana nasıl bir yol önerirsiniz.

Yanıt verecek dostlara önceden teşekkürler.
 
Katılım
14 Ocak 2007
Mesajlar
68
Excel Vers. ve Dili
Excel XP Türkçe
Dim db As Database
Set db = CurrentDb

soru = MsgBox("Kayıt silme fonksiyonunu çalıştırdınız!" & Chr(10) & "Bu işlem sonunda programda kayıtlı tüm bilgiler silinecektir!" & Chr(10) & "Devam etmek istiyorsanız Evet deyiniz.", vbExclamation + vbYesNo, "KAYIT SİLME!!!")

If soru = vbYes Then

db.Execute ("delete from tbla")
db.Execute ("delete from tblb")
db.Execute ("delete from tblc")
db.Execute ("delete from tbld")
db.Execute ("delete from tble")
MsgBox "Veritabanındaki tüm dosyalar silindi.", vbInformation, "İŞLEM TAMAMLANDI..."

Else
Exit Sub
End If


Bu kodları bir düğmeye atayarak deneyin. tbla, tblb ...tble varsayılan tablo isimleri. Siz kendi veritabanınızda silmek istediğiniz tabloları (istediğiniz kadar) buraya yazarsınız. Verilerin tümünü siler. Veritabanızın içi boşalır. İyi günler.
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Doğrular mısınız?

Sn. Tuncerg;

Bir yanlış anlamaya yer vermemek için konuya açıklık getirir misiniz?

Bu kodlar sonrası tablo tasarım yapısı değil, sadece tablonun verileri siliniyor değilmi?

İlginiz ve kısa süredeki yanıtınız için bir kez daha teşekkürler ve iyi akşamlar.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Evet, sadece tablo içinde yer alan veriler silinir.. Üstelik denemekten niye korktunuz ki? Dosyanın bir kopyasında deneyebilirdiniz..
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Haklısınız

Sn. beab05;

İyi akşamlar ve hafta sonları. Evet, haklısınız kopya yaratıp deneyebilirdim.

Sitedeyken, bir an için bir kaç satır yazdım. Fena da olmadı. Hocamın gönül sesini duydum.

Yanıtınız için teşekkürler. Sevgi ve saygılar.
 
Katılım
14 Ocak 2007
Mesajlar
68
Excel Vers. ve Dili
Excel XP Türkçe
Ayrıca tablolarınız arasındaki ilişkilere ve birleştirme özelliklerinede bir zarar gelmez. Veri girmeye devam ettiğinizde programınızı yeni gibi kullanırsınız. Sadece tablonuzda otomatik sayı varsa, bildiğiniz gibi silinen sayılar geri gelmiyor. İyi akşamlar.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Aslında çok zamandır içimde hep sıkıntı olan bir konuyu bana hatırlattınız. Ticari programı müşteriye veriyoruz. Bir yıl içinde kullanıyor. Yıl başında devir yapma işi çıkınca da telefon açıp "Hoca, nasıl devredeceğiz yeni yıla" diyor. Ben de " Gerek yok ki.. Devam et.. Yıl mıl yok.." diyorum. Aslında profesyonel programlarda bununla ilgili seçenek var. İstersen devirli muhasebe istersen de devirsiz muhasebe kullanılıyor. Ben çok ısrar eden olursa elimle verileri düzelterek devri yapıyorum. Oldukça da zor oluyor..

Aklıma şöyle bir çözüm geliyor. Beab05 sen mutlaka bunu da en fazla 10 dakikada çözersin :)

Bu yöntemden önce yıl sonu toplamları alınıp devreden veriler olarak geçici bir mdb'ye aktarılır. Daha sonra veriler yıl adındaki bir yedek klasörüne gönderilerek tüm veriler silinip geçici dosyadaki toplamlar 01.01.20** itibariyle devreden olarak silinen tabloya aktarılabilir. Böylece eski yıl verileri mesela 2007 olarak klasör içinde data.mdb adıyla saklanırken yeni veriler ana klasörde silinmiş temizlenmiş olarak yeni veriler girmeye hazır hale gelir. Bu arada önceki yılın verileri de aktarılmış olur.. Bunun en kolay yolu nasıl olabilir?
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Bu arada asıl soru için başka bir öneride de bulunayım. Aslında çok kolay bir öneri.. Bir sorgu tasarlayıp sorguyu silme sorgusu olarak düzenleyip silinecek alanları sorgu ekranında seçerseniz aynı işi kod yazmadan da yapabilirsiniz. Bu sorguyu da istediğiniz yerden çalıştırırsınız. Tabii ki her tablo için ayrı sorgu hazırlayacaksınız. Bu arada hepsini birden çalıştırmak isterseniz bu işi de kod yazmadan yapmanın yolu bir makro yapıp makro eylemi olarak sorgu çalıştır seçersiniz. Tüm sorguları seçerek makroyu çalıştırırsanız bir harekette hepsini silersiniz. (Bu arada sorgu onayları rahatsız etmesin diye ilk başta uyarı belirleyi seçip hayır demelisiniz)
 

assenucler

Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,552
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 Home Single Language x64 TR
Altın Üyelik Bitiş Tarihi
29-05-2025
Teşekkürler.

Sn. mehmetdemiral,

Günaydın, yardım ve katkınız için tekrar teşekkürler. Sağolun.

Her şey gönlünüzce olsun.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Aslında çok zamandır içimde hep sıkıntı olan bir konuyu bana hatırlattınız. Ticari programı müşteriye veriyoruz. Bir yıl içinde kullanıyor. Yıl başında devir yapma işi çıkınca da telefon açıp "Hoca, nasıl devredeceğiz yeni yıla" diyor. Ben de " Gerek yok ki.. Devam et.. Yıl mıl yok.." diyorum. Aslında profesyonel programlarda bununla ilgili seçenek var. İstersen devirli muhasebe istersen de devirsiz muhasebe kullanılıyor. Ben çok ısrar eden olursa elimle verileri düzelterek devri yapıyorum. Oldukça da zor oluyor..

Aklıma şöyle bir çözüm geliyor. Beab05 sen mutlaka bunu da en fazla 10 dakikada çözersin :)

Bu yöntemden önce yıl sonu toplamları alınıp devreden veriler olarak geçici bir mdb'ye aktarılır. Daha sonra veriler yıl adındaki bir yedek klasörüne gönderilerek tüm veriler silinip geçici dosyadaki toplamlar 01.01.20** itibariyle devreden olarak silinen tabloya aktarılabilir. Böylece eski yıl verileri mesela 2007 olarak klasör içinde data.mdb adıyla saklanırken yeni veriler ana klasörde silinmiş temizlenmiş olarak yeni veriler girmeye hazır hale gelir. Bu arada önceki yılın verileri de aktarılmış olur.. Bunun en kolay yolu nasıl olabilir?

Ben de şöyle olması gerektiğini düşünüyorum.. Ana dosyamızdan istediğimiz tarih aralığındaki verileri diğer bir Access dosyasına export etmeyi (tablodan silinerek) ve yine ana dosyamızdan istediğimiz tarih aralığındaki verileri bir sorgu yardımıyla bağlı ya da bağlı olmadan diğer Access dosyasından sorgulayabilmeyi.. Hatta istenirse eski tarihli kayıtların istenilen parametler dahilinde ana dosyamızdaki tabloya importu da yapılabilmeli..Gerekirse sonra tekrar diğer tarafa taşınır istenirse...
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Elbette ki her yiğidin bir yoğurt yiyişi vardır. Senin önerin de güzel. Ama daha önce de bahsettiğimiz ve bana gönderdiğin, "geçmiş yıl datalarını program içinden çağırma" ile ilgili kodlar zaten eski yıllara ihtiyaç duyulduğunda kullanılacak. Ama farklı yıl verilerinin aynı anda kullanılma şansları olamaz. Çünkü örneğin Ahmet Yıldırım isimli müşteriye ait satışları görmek istediğimde doğal olarak geçmiş yıldan gelen hesaplar aktarım olarak görülecek ve aktif yıl içindeki hesaplar ayrıntılarıyla verilecek. Diyelim ki adamın geçen yılki hesabının ayrıntıları isteniyor. O zaman işte daha önceki konuda bahsedilen geçmiş yıl datalarının istenmesi ve o yılki arşivin çağırılması gerekecek. Bu durumda benim ilk söylediğim gibi bir bat dosyası çalıştırılıp mevcut dosyanın adının ya da uzantısının değiştirilmesi ve eski dosyanın kopyalanarak bu klasöre getirilmesi olabilirdi. Bu öneri ayrıntılı düşünüldüğünde sıkıntı yaratabilir. Çünkü bunun iş bittikten sonra silinmesi ve herşeyin eski haline döndürülmesi aşaması riskli olabilir. Kazayla bu dosya önceki işlemden sonra silinirse ana dosya silinebilir falan filan.... O yüzden bu işi kodlarla yapmak ve verileri modalının dediği gibi ADO ile ya da senin önerinde olduğu gibi kodlarla bağlı tabloların bağlantılarının farklı klasördeki dosyalara aktarılması şeklinde yapılması daha akıllıca ve profesyonelce... O zaman örneğimize dönersek; Ahmet Yıldırım'ın eski hareketlerine bakmak istendiğinde bir düğmeye basarak yıl seçimi yapılacak ve veriler eski bir yıla ait bir başka klasördeki aynı yapıda olan bir başka access dosyasına bağlanacak. Yapı değişmezse - ki değişmemeli- aynı adı taşıyan veriler bağlanacak ve problemsiz çalışacak. Tabii bu arada veriler salt okunur da olmalı.. Değiştirilmesi tüm devreden bakiyeleri geçersiz kılacaktır çünkü.. Daha sonra normal arşive dönerek işlemlere kaldığı yerden devam edebilir. Tüm bunlar için klasik bir yapı oluşturmalı ve arşiv klasörlerine veriler aktarılmalı. Tabii bu iş sadece yılbaşlarında yapılacak, bu arada tüm rakamlar devredilecek ve yeni yıla ait devir işlemleri bittiğinde yeniyıl kullanıma açılmış olacak. Tüm bu işlemler için Logo alınterini incelemek lazım aslında.. Anlattıklarım aşağı yukarı orada var. Eee.. Kafanda bir ışık yandı mı beab05 :)
 
Üst