otomatik yedekleme belli saatlerde

Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
bu konu işlendi aramadın mı falan demeyin lütfen çok aradım ancak bulamadım
sayın modalı yapmıştı çözümü ancak farklı bir konu içeriğinde idi ve bulamadım.
isteğim şu ki gün içinde prg. 2 saatte bir otomatik yedek alsın ve yedek adı da
yedek prg(20.07.2008 saat:15.47.25) gibi olsun ...
teşekkürler

örneğe gerek yok sadece kodları istiyorum..
 
Katılım
7 Ekim 2005
Mesajlar
180
Excel Vers. ve Dili
2002 Pro, Türkçe
sn karaayhan
modalının bu konuda bir örnek çalışması vardı. Tarihli olarak hem çalışan veritabanını hem de dosyayı yedekliyordu. Ayrıca yine modalının form timeri ile kodun tetiklenmesi şeklinde ayrı bir çalışması daha vardı. Ben son çalışmasını biraz değiştirerek mehmetdemiral'ın da yardımı ile projeme uyarladım gayet güzel çalışıyor. Bence kapanış yordamına bu kodu uyarlamanız daha iyi olur, ayrıca isterseniz form timeri ile de çalıştırabilirsiniz iki ayrı proje gibi görünüyor ama bence sizin tecrübeniz bu işi başarmaya yetebilir. Yine yapamazsanız 1 hafta sonra ben de ayrıca deneyeceğim, sonucu sizinle paylaşırım.
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Kendi kullandığım tüm çalışmalara Sayın Zeki Gürsoy un linkteki prosedürünü uyguluyorum.. Bu prosedurun en güzel özelliği veritabanınızı kendi içinde sıkıştırıp onardıktan sonra WinRAR ile sıkıştırıp yedeklemenizi sağlar..

Konu içerisindeki soru ve cevaplar olayı sizin istediğiniz yönde aydınlatacaktır..

http://www.accessforumlari.com/showthread.php?tid=128
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
sayın taruz, uygulamayı biliyorum aslında sayın zeki gürsoy'la görüştüm zamanla ilgili ayarlamayı orda da bahsetmiş aslında timer ile yapılır diye
ama örnek yok sadece bir ipucu var
********************kodlar burdan başlar *****************
Private Sub Form_Timer()
If Time = "16:00:00" Then _
Call Yedekle("c:\..\*_be.mdb")
End Sub
********************kodlar burda biter********************

bu kodlardan yola çıkarsak sayın taruz hocam, istediğim tam olarak şudur ki

Ağda tanımlı, ağ altında çalışan data dosyasını yanı tabloları ayrılmış bir dosyayı belirttiğim bir yere D:\Yedek\ altına günün belli saatlerinde
10-12-14-16-18 saatlerinde otomatik olarak yedeklemesini istiyorum
yedek formatı şöyle;("Yedek (22.07.2008 saat:10:00:00) ama winrar olmadan direkt olarak dosyayı açık yedeklemesini istiyorum..

umarım istediğimi tam olarak anlatabilmişimdir ve yine umarım sayın taruz basit kod yazarak bu işi çözer ...

teşekkürler ,
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Sayın Zeki Gürsoy'un kodu üzerinde birkaç değişiklik yaptım.. Şöyleki;
WinRar ile sıkıştırma olayını askıya alıp dosyayı .mdb olarak yedekleme safhasında bıraktım.. Dosyanın ismi YEDEK(Tarih)(Saat) birleşiminden oluşuyor..

Kod:
'*******************************
'*******************************
'****    Zeki Gürsoy ©  ********
'****       2008        ********
'*******************************
'*******************************
'17.03.2008 => Güncelleme : 10 Mb lık birimler halinde kopyalama hızı artırıldı.
Option Base 1
Sub Yedekle()
Dim BackUpFile      As String
Const tmpBackUpFile As String = "C:\tmpBackUp.mdb"
 
BackUpFile = "D:\Yedek\" & "YEDEK" & Format$(Date, "yyyymmdd") & "saat" & Format$(Time, "hhmmss") & ".mdb"
 
WinRARX$ = Environ$("ProgramFiles") & "\WinRAR\rar.exe"
    '// Yedekleme proseduru..
    Yedek_Proc CurrentProject.FullName, BackUpFile
 
    '// Veritabanı sıkıştırma ve onarma.. _
        Ver. 2000 - 2002 - 2003 için !!!
    DBEngine.CompactDatabase _
            BackUpFile, tmpBackUpFile
 
    '// İlk yedeği sil..
    Kill BackUpFile
 
    '// Sıkıştırma işlemi için geçici dosyanın _
        adına orjinal ismini ver..
    While Dir(tmpBackUpFile) = ""
        DoEvents
    Wend
'
    Name tmpBackUpFile As BackUpFile
 
    '// WinRAR ile sıkıştırma...
   ' Shell WinRARX & _
        '" M -ep " & Chr(34) & Left$(BackUpFile, Len(BackUpFile) - 4) & ".rar" & _
               ' Chr(34) & " " & Chr(34) & BackUpFile & Chr(34)
    'MsgBox "Yedekleme işlemi tamamlandı.", vbInformation
End Sub
Sub Yedek_Proc(Kaynak_Dosya As String, Hedef_Dosya As String)
On Error GoTo Hata
'// 10485760 Byte = 10 MB
Dim s(10485760) As Byte, X As Long
Dim T() As Byte, i As Integer
    Open Kaynak_Dosya For Binary Access Read As #1
    Open Hedef_Dosya For Binary Access Write As #2
 
    '// Döngünün kaç kez çalışması gerektiğini _
        toplam dosya boyutunun 10 MB ile bölümün _
        tamsayı değeri ile buluruz.
    For i = 1 To Int(LOF(1) / 10485760)
        Get #1, , s
        Put #2, , s
    Next
 
    Erase s
 
    '// Eğer kalan Byte 10 MB dan küçükse _
        kalan Byte aşağıdaki yapı ile eklenir.
    X = LOF(1) - LOF(2)
    If X > 0 Then
        ReDim T(X) As Byte
        Get #1, , T
        Put #2, , T
        Erase T
    End If
 
Cikis:
    Close #1
    Close #2
 
  Exit Sub
 
Hata: MsgBox "Hata olustu." & Chr(10) & Err.Description
    GoTo Cikis
End Sub
Açık olan formun(Bu gizli bir formda olabilir..) Timer olayına da


Kod:
If Time = "10:10:00" Or Time = "12:00:00" Or Time = "14:00:00" Or Time = "16:00:00" Or Time = "18:00:00" Then
Call Yedekle
End If
yazarsanız tetiklemeyi yapar.. Timerinterval de 1000 olsun..

Düzeneği bu şekilde kurarsanız sessizce yedekleme yapacaktır..
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
Sayın Taruz hocam mükemel sona doğru geldik , ancak
kaynak dosyayı nasıl belirliyoruz hangi satırda yani dedim ya kaynak dosyamız ağ üzerinde bir yerlerde bizimki ortak kallanıma açık yani o yüzden yerini benim belirtmem lazım...

teşekkürler mükemmel bir dizayn.. olmuş ellerine sağlık hocam..
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
yedeklenecek yol burada sanırım;

Yedek_Proc CurrentProject.FullName, BackUpFile

benim yedeklenecek dosyam ise;

\\Yardimci\şirketim\DATABASE\Data.mdb

tam olarak burada bu dosyayı ağdan yedeklemek istiyorum kendi pc 'ime

teşekkürler..
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Evet o bölümü

Kod:
  Yedek_Proc "C:\YEDEKLENECEKDOSYA.mdb", BackUpFile
olarak değiştirin..

Bir ayrıntı daha var..

Değiştirdiğimiz düzenekte yedeklenmiş dosyaların ismi saat ve tarihlerden dolayı farklı olduğu için üstüne yazılmayacak ve birikecek.. Elle mi sileceksiniz?
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
Merhaba..

Evet o bölümü

Kod:
  Yedek_Proc "C:\YEDEKLENECEKDOSYA.mdb", BackUpFile
olarak değiştirin..

Bir ayrıntı daha var..

Değiştirdiğimiz düzenekte yedeklenmiş dosyaların ismi saat ve tarihlerden dolayı farklı olduğu için üstüne yazılmayacak ve birikecek.. Elle mi sileceksiniz?
Sayın Üstad, program C:\ dizininde değil
\\Yardimci\şirketim\DATABASE\Data.mdb ' dizininde kopyalı yani ağda başka bir bilgisayarda kopyalı ama siz

Kod:
  Yedek_Proc "C:\YEDEKLENECEKDOSYA.mdb", BackUpFile
olarak belirtmişiniz anlayamadım, program kendini değil başka -bağlı datayı- yedekleyecek... ve sadece o satır benim dediğim gibi mi olmalı deneme yaptıramıyorum şu an o yüzden soruyorum...

Kod:
  Yedek_Proc "\\Yardimci\şirketim\DATABASE\Data.mdb ", BackUpFile
şeklinde mi olmalı


saat dakika ve saniye olarak yedekleyecek çünki access veritabanı her an çökebiliyor bu yüzden en yakındaki yedekten devam edilecek yani gün içinde yedek almayı unuttuk bahanesi olmasın diye otomatik yedek alsın istedim belirli saatlerde

teşekkürler...
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Düzenek bu hali ile çalıştırıldığı dosyayı değil konumunu belirttiğiniz dosyayı yedekler.. C:\ diye başlayan yolu örnekleme olması açısından yazmıştım.. Yedeklenecek dosyanın yolu ne ise oraya siz onu yazın..

Diğer hususta benim anlatmak istediğim, günde 4 defa haftada 28... diye sayısı artacak yedeklenmiş dosyaların hepsini mi arşivde tutacaksınız? Ben yerinizde olsam yedeklemeden önce mevcut yedek dosyayı sildirir ondan sonra yedekleme yapardım.. Böylece son yedek dosya öncesinde yedeklenmiş dosyaları biriktirmemiş olurduk..
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
teşekkürler sayın taruz,

sanırım bu silme işi için saat ve tarih formatını silmemiz yeterli olacaktır. Yani;
Kod:
BackUpFile = "D:\Yedek\" & "YEDEK" & Format$(Date, "yyyymmdd")".mdb"
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Eğer tarih saat formatı kalsın isterseniz Kill kullanın..

Kod:
On Error GoTo Hata
.
..
Kill BackUpFile
[COLOR=darkslateblue]Kill ("C:\Desktop\YEDEK[COLOR=red]*[/COLOR].mdb")[/COLOR]
...
....
Hata:
gibi..
 
Katılım
17 Temmuz 2007
Mesajlar
294
Excel Vers. ve Dili
access
Sayın Taruz hocam
örnek mükemmel,ve çalışıyor ancak tek sorun acces dosyasını açmadan otomatik yedekleme olmaması,bu mümkünmü,yani ben porğramı açmasım bile günün belli saatlerinde kendini otomatik yedekleme yapabilse,bu konuda bilginizden faydanamak isetirm

yada

Private Sub Form_Timer()
If Time = "10:10:00" Or Time = "12:00:00" Or Time = "14:00:00" Or Time = "17:14:00" Or Time = "18:00:00" Then
.......Buraya örnek: open form " ANAFORM" gibi ANAFORM açıldığında veya ANA FORM kapandığında Timer'i çalıştıramazmıyız.Call Yedekle
End If
End Sub

kolay gelsin
 
Son düzenleme:
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın Celoy,

Elbette olabilir ancak çalışan bir uygulamanın olması gerekiyor bilgisayarda. Saati kim ve nasıl sayacak ve gerekli zamanda olayı tetikleyecek.

İyi çalışmalar
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Sayın modalı'nın açıklamasının devamında konunun daha da anlaşılır olması açısından yedekleme düzeneğinin elemanlarından oluşan bir klasör ekliyorum..

Siz Modül içerisindeki dosya yollarının bilgisayarınızdaki dosya yerleşimine göre değiştirin sadece..

Tetiklemeyi istediğiniz şekilde (bir olaya bağlayarak) yapabilirsiniz.. Sn. Zeki Gürsoy'a tekrar teşekkürler..

İyi akşamlar..
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
sayın taruz ağ altındaki dosyayı yedeklemiyor , ve sizin uygulama da dosyanın kabuğunu alıyor ancak içeriğini bire bir yedeklemiyor

özellikle ağ altındaki data dosyasını yedeklemesi çok önemli çünki ağdaki kullanıcılar tablolara ağ altındaki data dosyası aracılığı ile erişiyorlar ve data dosyası yedeklenmedikten sonra bir anlamı olmayacak bu otomatik yedek işinin

teşekkürler kolay gelsin :)
 
Katılım
17 Temmuz 2007
Mesajlar
294
Excel Vers. ve Dili
access
Sayın Taruz ve Modalı hocam ilgi ve bilgileriniz için ayrı ayrı çok teşekkürler
 
Katılım
17 Temmuz 2007
Mesajlar
294
Excel Vers. ve Dili
access
Sayın Karaayhan kardeş önemli birşey yok,:)
Ben istediğim cevabı yani açılmadın olurmu sorusuna Modalıdan (olmayacağını)cevabı aldım,
ayrıca taruz ise bir yedekleme örneği eklemiş,bunun için teşekkür etmiştim,ayrıca önemli bir gelişme bulursam sized haber veririm :mrgreen: , kolay gelsin
 
Üst