AccessTr.neT

Tam Versiyon: Yedek Alma Uygulaması
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
mevcut Access dosyasının yedeğini alır.

sn ozanakkaya hocamın eklediği kod ile dosya güncellenmiştir. 
teşekkür ederim.


[Resim: do.php?img=9251]
Paylaşımınız için teşekkürler.
Kod içerisindeki

KopiaDB = InputBox("Veritabanı yedeklenecek, dizin aşağıdaki gibi:" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Dosyanın oluşturulacağı yol:.", "Değiştirmeden onaylayınız.", Left(CurDB, Len(CurDB) - Len(Dir(CurDB))) & Me.dosyaadi) '"deneme.mdb")

Şeklinde kod mevcut. Butona bastığınızda metin kutusunda yazılan isim ne ise uzantısız olarak yedek alıyor.

Uzantılı kaydedilmesi ve mdb ise accdb olarak kaydedilmemesi için bu kod;

Şeklindeki kodun

KopiaDB = InputBox("Veritabanı yedeklenecek, dizin aşağıdaki gibi:" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Dosyanın oluşturulacağı yol:.", "Değiştirmeden onaylayınız.", Left(CurDB, Len(CurDB) - Len(Dir(CurDB))) & Me.dosyaadi & "." & Mid(CurrentProject.Name, InStr(1, CurrentProject.Name, ".") + 1)) '"deneme.mdb")

olarak değiştirilmesi daha doğru olur. Uygulama "test.mdb" ise ve metin kutusuna deneme yazıldıysa alınacak yedeğin adı deneme.mdb olacaktır.
(18/10/2019, 13:42)ozanakkaya yazdı: [ -> ]Kod içerisindeki

KopiaDB = InputBox("Veritabanı yedeklenecek, dizin aşağıdaki gibi:" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Dosyanın oluşturulacağı yol:.", "Değiştirmeden onaylayınız.", Left(CurDB, Len(CurDB) - Len(Dir(CurDB))) & Me.dosyaadi) '"deneme.mdb")

Şeklinde kod mevcut. Butona bastığınızda metin kutusunda yazılan isim ne ise uzantısız olarak yedek alıyor.

Uzantılı kaydedilmesi ve mdb ise accdb olarak kaydedilmemesi için bu kod;

Şeklindeki kodun

KopiaDB = InputBox("Veritabanı yedeklenecek, dizin aşağıdaki gibi:" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Dosyanın oluşturulacağı yol:.", "Değiştirmeden onaylayınız.", Left(CurDB, Len(CurDB) - Len(Dir(CurDB))) & Me.dosyaadi & "." & Mid(CurrentProject.Name, InStr(1, CurrentProject.Name, ".") + 1)) '"deneme.mdb")

olarak değiştirilmesi daha doğru olur. Uygulama "test.mdb" ise ve metin kutusuna deneme yazıldıysa alınacak yedeğin adı deneme.mdb olacaktır.

Üstad peki farklı bir dosya yoluna nasıl kaydedebiliriz? Örn. Dir ("C:\Yedek") gibi..
Komut butonunun tıklandığında olayındaki kodun aşağıdaki gibi değiştirilmesi gerekli.

On Error Resume Next
Dim CurDB As String, KopiaDB As String, LenDB As Long, Plik As String, NrPliku As Long
Dim YedekDizini As String

YedekDizini = "C:\Yedek"

DoCmd.Hourglass -1
CurDB = CurrentDb.Name
Err = 0
Plik = Space(FileLen(CurDB))
NrPliku = FreeFile
Open CurDB For Binary Access Read Shared As #NrPliku
Get #NrPliku, 1, Plik
Close #NrPliku
If Err = 52 Then
MsgBox "Kopyalanamadı. " & CurDB & "Kopyalama işlemi başarısız.", 48, "Kopyalanıyor."
ElseIf Err Then
MsgBox Err.Description
Else
KopiaDB = InputBox("Veritabanı yedeklenecek, dizin aşağıdaki gibi:" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Dosyanın oluşturulacağı yol:.", "Değiştirmeden onaylayınız.", YedekDizini & "\ " & Me.dosyaadi & "." & Mid(CurDB, InStr(1, CurDB, ".") + 1)) '"deneme.mdb")
If KopiaDB & "" <> "" Then
Kill KopiaDB
Err = 0
NrPliku = FreeFile
Open KopiaDB For Binary Access Write Shared As #NrPliku
Put #NrPliku, 1, Plik
Close #NrPliku
If Err = 0 Then
MsgBox "Yedek Dosyanız Alınmıştır."
Else
MsgBox Err.Description
End If
End If
End If
DoCmd.Hourglass 0
'DoCmd.Quit


Koddaki;
YedekDizini = "C:\Yedek" 

kısmını değiştirebilirsiniz
(21/10/2019, 11:47)ozanakkaya yazdı: [ -> ]Komut butonunun tıklandığında olayındaki kodun aşağıdaki gibi değiştirilmesi gerekli.

On Error Resume Next
Dim CurDB As String, KopiaDB As String, LenDB As Long, Plik As String, NrPliku As Long
Dim YedekDizini As String

YedekDizini = "C:\Yedek"

DoCmd.Hourglass -1
CurDB = CurrentDb.Name
Err = 0
Plik = Space(FileLen(CurDB))
NrPliku = FreeFile
Open CurDB For Binary Access Read Shared As #NrPliku
Get #NrPliku, 1, Plik
Close #NrPliku
If Err = 52 Then
MsgBox "Kopyalanamadı. " & CurDB & "Kopyalama işlemi başarısız.", 48, "Kopyalanıyor."
ElseIf Err Then
MsgBox Err.Description
Else
KopiaDB = InputBox("Veritabanı yedeklenecek, dizin aşağıdaki gibi:" & Chr(13) & Chr(10) & Chr(13) & Chr(10) & "Dosyanın oluşturulacağı yol:.", "Değiştirmeden onaylayınız.", YedekDizini & "\ " & Me.dosyaadi & "." & Mid(CurDB, InStr(1, CurDB, ".") + 1)) '"deneme.mdb")
If KopiaDB & "" <> "" Then
Kill KopiaDB
Err = 0
NrPliku = FreeFile
Open KopiaDB For Binary Access Write Shared As #NrPliku
Put #NrPliku, 1, Plik
Close #NrPliku
If Err = 0 Then
MsgBox "Yedek Dosyanız Alınmıştır."
Else
MsgBox Err.Description
End If
End If
End If
DoCmd.Hourglass 0
'DoCmd.Quit


Koddaki;
YedekDizini = "C:\Yedek" 

kısmını değiştirebilirsiniz
sn ozanakkaya hocamın yaptığı düzeltmelerle ilgili son dosya ektedir.
[Resim: do.php?img=9251]

teşekkürler.
Sayfalar: 1 2