Konu Araçları | Seçenekler: | Gösterim Stili
Tarih
25/01/2014 00:14
Konu Sahibi
kaleci
Yorumlar
9
Okunma
3322
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy

kaleci

Aktif Üye
Kullanici Avatari
Aktif Üye
60
21/12/2012
0
14/04/2014,00:30
Çözüldü 
Merhaba arkadaşlar,

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

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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

alpeki99

Düşünmek en zor iştir...
Kullanici Avatari
Uzman
O....
6.090
29/10/2008
Bursa
Yazılım Geliştirici
Ofis 2010 32 Bit
31/08/2017,19:08
Çözüldü 
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

alpeki99

Düşünmek en zor iştir...
Kullanici Avatari
Uzman
O....
6.090
29/10/2008
Bursa
Yazılım Geliştirici
Ofis 2010 32 Bit
31/08/2017,19:08
Çözüldü 
3 ay önceki tarihi şu şekilde bulabilirsiniz :

Visual Basic Code
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

kaleci

Aktif Üye
Kullanici Avatari
Aktif Üye
60
21/12/2012
0
14/04/2014,00:30
Çözüldü 
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

alpeki99

Düşünmek en zor iştir...
Kullanici Avatari
Uzman
O....
6.090
29/10/2008
Bursa
Yazılım Geliştirici
Ofis 2010 32 Bit
31/08/2017,19:08
Çözüldü 
Ekte yer alan örnek proje işinizi görecektir. Mümkün mertebe yorum satırı eklemeye çalıştım:

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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


Ek Dosyalar
.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

kaleci

Aktif Üye
Kullanici Avatari
Aktif Üye
60
21/12/2012
0
14/04/2014,00:30
Çözüldü 
Alpeki hocam,

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

saygılarımla
kaleci


Cevapla


Konuyu Okuyanlar: 1 Ziyaretçi

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
Çözüldü Sorguda Önceki Aydan Devir dayko 7 451 24/06/2017, 10:51 dayko
Çözüldü Veri Silmek broiling 6 323 09/02/2017, 06:10 broiling
Çözüldü Bugünki Tarihden önceki veriler 53rize 8 578 27/11/2016, 13:18 53rize
Çözüldü Form üzerinden Klasördeki bir dosyayı silmek musteri53 2 289 20/11/2016, 08:06 musteri53
Çözüldü Kayıtlar arasında dolaşmak (Önceki / Sonraki kayıt) koruyucu 10 851 25/10/2016, 23:23 koruyucu

Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2017 MyBB Group.
Forum use Krzysztof "Supryk" Supryczynski addons.