Merhabalar,
2 tane access veritabanım mevcut. Birinde aktif tablolarım mevcut diğeri ise backup için tutuyorum. Aktif kullandığım veritabanından backup olan veritabanına tablomu VBA ile timer ile kopyalama sağlıyorum fakat, aynı isimde bir tablo varsa "yedek (1)" veya "yedek (2)" gibi yapmasını istiyorum. varolan tablonun üstüne kayıt yapıp eski tabloda ki verileri yok etmesini istemiyorum. bunu Excel çıktısında başarılı VBA düzenledim fakat iki access arasında yaparken hatalar alıyorum.
Size aşağıda örnek bir kodlamamı bırakıyorum. Biraz karışık veya mantıklarımda hatalar olabilir
Ayrıca bu kod umarım ihtiyacınızı da giderir.
Geri dönüşlerinizi ve yardımlarınızı bekliyorum
2 tane access veritabanım mevcut. Birinde aktif tablolarım mevcut diğeri ise backup için tutuyorum. Aktif kullandığım veritabanından backup olan veritabanına tablomu VBA ile timer ile kopyalama sağlıyorum fakat, aynı isimde bir tablo varsa "yedek (1)" veya "yedek (2)" gibi yapmasını istiyorum. varolan tablonun üstüne kayıt yapıp eski tabloda ki verileri yok etmesini istemiyorum. bunu Excel çıktısında başarılı VBA düzenledim fakat iki access arasında yaparken hatalar alıyorum.
Size aşağıda örnek bir kodlamamı bırakıyorum. Biraz karışık veya mantıklarımda hatalar olabilir
Ayrıca bu kod umarım ihtiyacınızı da giderir.
Geri dönüşlerinizi ve yardımlarınızı bekliyorum
Visual Basic
- Function m1()
-
- ' Yedek alınacak veritabanı yolu
- strKaynakPath = CurrentProject.Path & "\database\DBkaynak.accdb"
-
- ' backup veritabanı konumu
- strYedekDB = CurrentProject.Path & "\backup\backup_db.accdb"
-
- ' Oluşturulan Yedek DB bilgisi
- strYedekTbl = Format(Date, "dd") & "_" & Format(Date, "mmmm") & "_" & "kayit"
-
- ' Yedekleme işlemi
- Set objAccess = CreateObject("Access.Application")
- objAccess.OpenCurrentDatabase strKaynakPath
- objAccess.DoCmd.CopyObject strYedekDB, strYedekTbl, acTable, "kayit"
- objAccess.CloseCurrentDatabase
- objAccess.Quit
-
- ' -------------------------------------
- ' Excel Prosedürü
- Dim BTkayit As String
- Dim BTexcel As String
- Dim btName As String
- Dim btNameWithoutExt As String
- Dim btExtension As String
- Dim counter As Integer
-
- ' Tablo
- BTkayit = "kayit"
-
- ' Kaydedilecek konum
- BTexcel = Environ("USERPROFILE") & "\Desktop\"
-
- ' Çıktı bilgisi
- btNameWithoutExt = Format(Date, "mmmm") & " " & "-" & " " & Format(Date, "dd.mm.yyyy")
- btExtension = ".xls"
- btName = BTexcel & btNameWithoutExt & btExtension
-
- ' Kopya kontrolü
- counter = 1
- Do While Dir(btName) <> ""
- counter = counter + 1
- btName = BTexcel & btNameWithoutExt & " güncel " & counter & btExtension
- Loop
-
- ' Excel çıktı komutu
- DoCmd.OutputTo acOutputTable, BTkayit, acFormatXLS, btName
-
- ' Ana tabloyu sıfırlama
- CurrentDb.Execute "DELETE FROM kayit;"
-
-
- ' İşlem tamamlandı mesajı
- MsgBox "Yedekleme tamamlandı. EXCEL dosyası masaüstüne kayıt edildi." & vbNewLine & vbNewLine & vbNewLine & "...OTOMASYONU KAPATIP AÇINIZ...", vbApplicationModal + vbInformation, "BeyTor"
- End Function


