Skip to main content

AccessTr.neT


3 aydan önceki tarihleri silmek

3 aydan önceki tarihleri silmek

Çözüldü #1
Merhaba arkadaşlar,

Aşağidaki kod, 3 aydan önceki verileri ay, ay siliyor.

Kod:
Private Sub cmdLöschen_2_Click()
'üc aydan eski tarihleri siler
Select Case MsgBox("Wollen Sie die Datensätze, die länge als 6 Monate sind, wirklich löschen?", _
              vbYesNo Or vbQuestion Or vbDefaultButton1, "Datensatz löschen")
       Case vbYes
            MsgBox "Löschen..."
CurrentDb.Execute "DELETE DateDiff('m',[Datum1],Date()) AS Ifade1, * FROM tblKfzPersDE IN '' [ms access;pwd=test;database=D:\KfzPersonenDB.accdb] WHERE (((DateDiff('m',[Datum1],Date()))>=3));"
       Case vbYes
            MsgBox "nicht Löschen..."
End Select
'Formular aktualisieren
Me.Requery
Me.untFrmKfz.Requery
End Sub

Bunu gün olarak ayarlama imkanımız varmıdır.
Yani 24.01.2014 de kodu çaliştırdıgım zaman 01.11.2013 den önceki verileri siliyor.

Benim istediğim
Kodu 24.01.2014 de çaliştırırsam 24.10.2013 tarihinden önceki verileri silsin.
Kodu 25.01.2014 de çaliştırırsam 25.10.2013 tarihinden önceki verileri silsin.
Kodu 26.01.2014 de çaliştırırsam 26.10.2013 tarihinden önceki verileri silsin.

Ben üç aydan eski verileri kaydetmek istemediğim gibi, üç aylık verilerinde kayıtlı olmasını istiyorum. Şu anda kodu çalıştırdığımda 2 ay 1,2,3….29,30. Günlük veriler kayıtta kalıyor.

Yardımcı olursanız menmun olurum

Saygılarımla
kaleci
Cevapla
Çözüldü #2
Bugünün tarihinden 90 gün çıkartın. Elde ettiğiniz tarihi Where için şart olarak kullanın. Where tarih > 90 gün önceki tarih
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
Çözüldü #3
3 ay önceki tarihi şu şekilde bulabilirsiniz :

DateAdd("m", -3, Date)

24.01.2014 isek 24.10.2013 ü tarih olarak elde edersiniz. Elde edilen tarihi Where için şart göstereceksiniz.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
Çözüldü #4
alpeki99 hocam,

hizli bir sekilde cevap verdigin icin tesekkür ederim, ama dedigini yapinca kod calismiyor. Galiba söylediginizi yanlis veya eksik uyguluyorum.

Saygilarimla
kaleci
Cevapla
Çözüldü #5
Ekte yer alan örnek proje işinizi görecektir. Mümkün mertebe yorum satırı eklemeye çalıştım:


Sub TarihleriEtiketteGoster()

lblBugun.Caption = Date
lblUcAyOncekiTarih.Caption = DateAdd("m", -3, Date)

End Sub

Private Sub btnKayitSil_Click()
Dim ucAyOncekiTarih As Date
Dim ucAyOncekiTarihSon As String

' Formu kullanırken gece yarısını geçebileceği için kullanıcıyı yanıltmayalım tarihi tekrar formda gösterelim
TarihleriEtiketteGoster

' 3 ay önceki tarihi bulalım
ucAyOncekiTarih = DateAdd("m", -3, Date)

' Türkçe tarih ile ingilizce tarih uyumu için işlem yapalım
ucAyOncekiTarihSon = Format(ucAyOncekiTarih, "dd""/""mm""/""yyyy")

DoCmd.SetWarnings False

' Üç aydan eski kayıtları silecek olan Sql cümlemiz
DoCmd.RunSQL "DELETE FROM tblMusteriler WHERE (Tarih < #" & ucAyOncekiTarihSon & "#)"

' Silinen kayıtlar olduğu için liste kutusunuda güncelleyelim
lstKayitListesi.Requery

DoCmd.SetWarnings True

End Sub

Private Sub btnTestKayitlariniEkle_Click()

DoCmd.SetWarnings False

' Formu kullanırken gece yarısını geçebileceği için kullanıcıyı yanıltmayalım tarihi tekrar formda gösterelim
TarihleriEtiketteGoster

' Tablodaki eski kayıtları silelim
DoCmd.RunSQL "DELETE FROM tblMusteriler"

' Test için tabloya yedi kayıt ekleyelim
DoCmd.RunSQL "INSERT INTO tblMusteriler (AdSoyad,Tarih) VALUES ('AccessTr.Net','" & DateAdd("m", -3, Date) & "')"
DoCmd.RunSQL "INSERT INTO tblMusteriler (AdSoyad,Tarih) VALUES ('AccessTr.Net 1','" & DateAdd("m", -1, Date) & "')"
DoCmd.RunSQL "INSERT INTO tblMusteriler (AdSoyad,Tarih) VALUES ('AccessTr.Net SİL 1','" & DateAdd("m", -5, Date) & "')"
DoCmd.RunSQL "INSERT INTO tblMusteriler (AdSoyad,Tarih) VALUES ('AccessTr.Net 102','" & DateAdd("m", -2, Date) & "')"
DoCmd.RunSQL "INSERT INTO tblMusteriler (AdSoyad,Tarih) VALUES ('AccessTr.Net Test','" & DateAdd("m", -1, Date) & "')"
DoCmd.RunSQL "INSERT INTO tblMusteriler (AdSoyad,Tarih) VALUES ('AccessTr.Net SİL 2','" & DateAdd("m", -6, Date) & "')"
DoCmd.RunSQL "INSERT INTO tblMusteriler (AdSoyad,Tarih) VALUES ('AccessTr.Net alpeki99','" & DateAdd("m", 1, Date) & "')"

DoCmd.SetWarnings True

' Tabloya eklenen verileri liste kutusunda gösterelim
lstKayitListesi.Requery

' Kullancıyı bilgilendirelim
MsgBox "Test için veritabanına 7 kayıt eklenmiştir." & vbCrLf & vbCrLf & "Şimdi ikinci butona basarak 3 aydan eski tarihli kayıtları silebilirsiniz.", vbInformation, "AccessTr.Net - alpeki99"

End Sub

Private Sub Form_Load()

' Bugünün tarihi ve üç ay öncenin tarihini form üzerinde gösterelim ki farkı görebilsin.
TarihleriEtiketteGoster

End Sub
.rar Uc_Aydan_Onceki_Kayitlari_Sil.rar (Dosya Boyutu: 26,97 KB | İndirme Sayısı: 10)
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
Çözüldü #6
Alpeki hocam,

ellerine sağlik, çok güzel de bir örnek vermişsin.

saygılarımla
kaleci
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task