Veritabanı yedekleme kodu

1 2
02/09/2015, 18:12

atoz112

sayın ustaoglu,

ilgili butonun içeriğini aşağıdaki ile değiştiriniz lütfen.bilginize.

Kod:
'1-)klasör oluşturmak için

Dim klasoryeri As String
klasoryeri = CurrentProject.path & "\" & "ydk"
If Len(Dir(klasoryeri, vbDirectory)) = 0 Then
MkDir (klasoryeri)
MsgBox ("KLASÖR oluşturuldu"), vbInformation, "KLASÖR OLUŞTURMA BİLGİSİ"
End If

'2-)Dosyayı,oluşturulan klasöre kopyalamak için

Dim dosyakopyala As Object
If Len(Dir(CurrentProject.path & "\" & "ydk\" & "yedek-" & Format(Date, "dd.mm.yyyy") & ".accdb", vbDirectory)) = 0 Then
   Set dosyakopyala = CreateObject("Scripting.FileSystemObject")
   dosyakopyala.copyfile CurrentProject.path & "\" & "KlasoreYedekle-ATOZ.accdb", CurrentProject.path & "\" & "ydk" & "\yedek-" & Format(Date, "dd.mm.yyyy") & ".accdb"
   MsgBox ("DOSYA kopyalandı"), vbInformation, "DOSYA KOPYALAMA BİLGİSİ"
Else
   MsgBox ("DOSYA zaten mevcut"), vbInformation, "DOSYA KOPYALAMA BİLGİSİ"
End If

iyi çalışmalar,saygılar.
02/09/2015, 18:15

emir ustaoğlu

(02/09/2015, 18:12)atoz112 yazdı:
Kod:
'1-)klasör oluşturmak için

Dim klasoryeri As String
klasoryeri = CurrentProject.path & "\" & "ydk"
If Len(Dir(klasoryeri, vbDirectory)) = 0 Then
MkDir (klasoryeri)
MsgBox ("KLASÖR oluşturuldu"), vbInformation, "KLASÖR OLUŞTURMA BİLGİSİ"
End If

'2-)Dosyayı,oluşturulan klasöre kopyalamak için

Dim dosyakopyala As Object
If Len(Dir(CurrentProject.path & "\" & "ydk\" & "yedek-" & Format(Date, "dd.mm.yyyy") & ".accdb", vbDirectory)) = 0 Then
    Set dosyakopyala = CreateObject("Scripting.FileSystemObject")
    dosyakopyala.copyfile CurrentProject.path & "\" & "KlasoreYedekle-ATOZ.accdb", CurrentProject.path & "\" & "ydk" & "\yedek-" & Format(Date, "dd.mm.yyyy") & ".accdb"
    MsgBox ("DOSYA kopyalandı"), vbInformation, "DOSYA KOPYALAMA BİLGİSİ"
Else
    MsgBox ("DOSYA zaten mevcut"), vbInformation, "DOSYA KOPYALAMA BİLGİSİ"
End If

sayın attoz112;

çok teşekkür ederim yardımlarınız için sayenizde bir sorunum daha ortadan kalktı ve bu örnekleriniz sayesinde hem Access hemde kod bilgimi geliştiriyorum tekrar teşekkür ederim
09/09/2015, 18:02

emir ustaoğlu

(02/09/2015, 18:12)atoz112 yazdı: sayın ustaoglu,

sayın atoz112;

öncelikle yapmış olduğunuz yardımlarınızdan dolayı çok teşekkür ederim.

bana vermiş olduğunuz yedekleme kodu çok işime yarıyor ve stabil olarak çalışıyor. Ancak dün yaşadığım bilgisayarla ilgili problem den dolayı firmaya ait ufak yedeklerin alındığı bulut sunucu mevcut (yandex disk) buraya yedeklerimi almak istiyorum ancak kodta yaptığım düzeltme olmuyor yaptığım düzeltme şu şekilde;

1-)klasör oluşturmak için

Dim klasoryeri As String
klasoryeri = CurrentProject.Path & "C:\Users\Muhasebe2\YandexDisk\STS" & "STS Yedekleri"
If Len(Dir(klasoryeri, vbDirectory)) = 0 Then
MkDir (klasoryeri)
MsgBox ("STS Yedekleri Klasörü Oluşturulmuştur."), vbInformation, "STS [Bilgi]"
End If

'2-)Dosyayı,oluşturulan klasöre kopyalamak için

Dim dosyakopyala As Object
If Len(Dir(CurrentProject.Path & "C:\Users\Muhasebe2\YandexDisk\STS" & "STS Yedekleri\" & "STS-" & Format(Date, "dd.mm.yyyy") & ".accdb", vbDirectory)) = 0 Then
Set dosyakopyala = CreateObject("Scripting.FileSystemObject")
dosyakopyala.copyfile CurrentProject.Path & "\" & "STS.accdb", CurrentProject.Path & "C:\Users\Muhasebe2\YandexDisk\STS" & "STS Yedekleri" & "\STS-" & Format(Date, "dd.mm.yyyy") & ".accdb"
MsgBox ("Programın Yedeği Başarıyla Alınmıştır."), vbInformation, "STS [Bilgi]"
Else
MsgBox ("Programın Bugün Yedeği Alınmıştır." & Chr(10) & "Yeni Yedek İçin Lütfen Önce Eski Yedeği Silin"), vbCritical, "STS [Uyarı]"
End If

kodunda orjinal hali şöyle;

'1-)klasör oluşturmak için

Dim klasoryeri As String
klasoryeri = CurrentProject.Path & "/" & "STS Yedekleri"
If Len(Dir(klasoryeri, vbDirectory)) = 0 Then
MkDir (klasoryeri)
MsgBox ("STS Yedekleri Klasörü Oluşturulmuştur."), vbInformation, "STS [Bilgi]"
End If

'2-)Dosyayı,oluşturulan klasöre kopyalamak için

Dim dosyakopyala As Object
If Len(Dir(CurrentProject.Path & "\" & "STS Yedekleri\" & "STS-" & Format(Date, "dd.mm.yyyy") & ".accdb", vbDirectory)) = 0 Then
Set dosyakopyala = CreateObject("Scripting.FileSystemObject")
dosyakopyala.copyfile CurrentProject.Path & "\" & "STS.accdb", CurrentProject.Path & "\" & "STS Yedekleri" & "\STS-" & Format(Date, "dd.mm.yyyy") & ".accdb"
MsgBox ("Programın Yedeği Başarıyla Alınmıştır."), vbInformation, "STS [Bilgi]"
Else
MsgBox ("Programın Bugün Yedeği Alınmıştır." & Chr(10) & "Yeni Yedek İçin Lütfen Önce Eski Yedeği Silin"), vbCritical, "STS [Uyarı]"
End If

nerde hata yapıyorum ?? klasör yolunu değiştirince click yordamı iptal oluyor kod görünüyor ancak tıklama da bir işlem yapmıyor.

yardımlarınız için şimdiden teşekkürler.
09/09/2015, 19:40

atoz112

Sayın ustaoglu,

İlgili kodları aşağıdaki ile değiştiriniz.

Kod:
'1-)klasör oluşturmak için

Dim klasoryeri As String
klasoryeri = "C:\Users\Muhasebe2\YandexDisk\STS" & "\" & "STS Yedekleri"
If Len(Dir(klasoryeri, vbDirectory)) = 0 Then
MkDir (klasoryeri)
MsgBox ("STS Yedekleri Klasörü Oluşturulmuştur."), vbInformation, "STS [Bilgi]"
End If

'2-)Dosyayı,oluşturulan klasöre kopyalamak için

Dim dosyakopyala As Object
If Len(Dir("C:\Users\Muhasebe2\YandexDisk\STS" & "\" & "STS Yedekleri\" & "STS-" & Format(Date, "dd.mm.yyyy") & ".accdb", vbDirectory)) = 0 Then
   Set dosyakopyala = CreateObject("Scripting.FileSystemObject")
   dosyakopyala.copyfile CurrentProject.Path & "\" & "STS.accdb", "C:\Users\Muhasebe2\YandexDisk\STS" & "\" & "STS Yedekleri\" & "\STS-" & Format(Date, "dd.mm.yyyy") & ".accdb"
   MsgBox ("Programın Yedeği Başarıyla Alınmıştır."), vbInformation, "STS [Bilgi]"
Else
   MsgBox ("Programın Bugün Yedeği Alınmıştır." & Chr(10) & "Yeni Yedek İçin Lütfen Önce Eski Yedeği Silin"), vbCritical, "STS [Uyarı]"
End If

Bahsettiğiniz soruna maruz kalmanızın nedeni;

CurrentProject.path kod ifadesini hatalı kullanmanızdan kaynaklanmaktadır.çünkü;bu ifadenin anlamı,uygulama hangi klasörde ise o klasör içerisine kodlarda yer alan klasörün açılması ve bu klasördeki dosyanın kontrolünün yapılması demektir.

Fakat, CurrentProject.Path & "C:\Users\Muhasebe2\YandexDisk\STS" & "STS Yedekleri" şeklinde yazarsanız,hem uygulamanın olduğu klasör hem de c sürücüsündeki yol çakışacaktır.dolayısı ile de hata oluşacaktır.

bilginize…iyi çalışmalar,saygılar.
 
09/09/2015, 19:45

emir ustaoğlu

(09/09/2015, 19:40)atoz112 yazdı: Bahsettiğiniz soruna maruz kalmanızın nedeni;

CurrentProject.path kod ifadesini hatalı kullanmanızdan kaynaklanmaktadır.çünkü;bu ifadenin anlamı,uygulama hangi klasörde ise o klasör içerisine kodlarda yer alan klasörün açılması ve bu klasördeki dosyanın kontrolünün yapılması demektir.

Fakat, CurrentProject.Path & "C:\Users\Muhasebe2\YandexDisk\STS" & "STS Yedekleri" şeklinde yazarsanız,hem uygulamanın olduğu klasör hem de c sürücüsündeki yol çakışacaktır.dolayısı ile de hata oluşacaktır.

bilginize…iyi çalışmalar,saygılar.
 

Sayın atoz112;
cevabınız ve kodtaki düzenlemeniz için teşekkür ederim.

sayenizde bir bilgi daha öğrendim teşekkürler tekrar.
1 2