[Yardım]  Dosya taşıma ve kopyalama

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Dosya taşıma ve kopyalama

İleti#1)  alibuyuk66 » 20 Kas 2022 08:25

Merhaba arkadaşlar.
active.workbook dosya yolunda database.accdb adında bir access veri tabanım var. Yine bu klasörün içinde eski ve yeni adında 2 adet klasörüm var. Yeni klasörün içinde yine database.accdb adında yedek boş veri tabanım var.
Yapmak istediğim user formun üzerindeki
textboxda yazan isim ile aktif yolda olan database dosyasının adını değiştirip , eski klasörüne taşıması ve yeni klasörün içindeki databasenin aktif dosyanın bulunduğu kök dizine kopyalanması. Yani yıla yeni boş veri tabanı ile başlamak istiyorum.
Kullanıcı avatarı
alibuyuk66
Siteye Alışmış
 
Adı Soyadı:ali büyük
Kayıt: 26 Ağu 2012 00:16
İleti: 296
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: urfa

Yıllık Maaş Bordrosu Hesaplama 2022

Cevap: Dosya taşıma ve kopyalama

İleti#2)  veyselemre » 20 Kas 2022 13:02

Kod: Tümünü seç
Sub test()
    Dim pth$, fName$, fullName$, eski$, yeni$
   
    pth = ThisWorkbook.Path & "\"
    fName = "database.accdb"
    fullName = pth & fName
    eski = pth & "Eski\" & fName
    yeni = pth & "Yeni\" & fName

    If Dir(fullName) <> "" And Dir(yeni, vbDirectory) <> "" Then Name fullName As eski
   
    If Dir(yeni) <> "" Then FileCopy yeni, fullName

End Sub
Kullanıcı avatarı
veyselemre
Site Dostu
 
Kayıt: 28 Nis 2015 17:53
Meslek: SERBEST
Yaş: 107
İleti: 531
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çubuk

Cevap: Dosya taşıma ve kopyalama

İleti#3)  alibuyuk66 » 20 Kas 2022 15:23

Veysel bey teşekkür ederim Kodlar çalışıyor fakat dosya adını textboxtan alması gerekiyor.
örnek dosyayı ekliyorum.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
alibuyuk66
Siteye Alışmış
 
Adı Soyadı:ali büyük
Kayıt: 26 Ağu 2012 00:16
İleti: 296
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: urfa

Cevap: Dosya taşıma ve kopyalama

İleti#4)  veyselemre » 20 Kas 2022 16:29

Kod: Tümünü seç
fName = Eskiveritabaniadi.Text

Nacizane tavsiyemi dinlerseniz, bu işten vazgeçin. Bu tür işlemlerin manuel kontrollü yapılması, yedekli yapılması iyidir.
Yanlışlıkla eski dosya üzerine boş dosya kopyalama gibi işlemleri yaparsanız, iki dosya ismi de aynı olduğu için geri alma işlemi de yapamazsınız. İşlemler sırasında beklenmedik hatalardan dolayı kesilme olur işlemin yarısı yapılmış olur diğerinde kod kırılır vs. veri kaybı yaşayabilirsiniz. Bir kez yapılması gereken işlem tekrarlandığı zaman hatalara yol açabilir. Benden söylemesi.
Kullanıcı avatarı
veyselemre
Site Dostu
 
Kayıt: 28 Nis 2015 17:53
Meslek: SERBEST
Yaş: 107
İleti: 531
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çubuk

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Dosya taşıma ve kopyalama

İleti#5)  alibuyuk66 » 20 Kas 2022 18:24

Haklısınız fakat programı kullanan kışi ısrar ediyor. Bu komutu çalıştırmadan önce şifre ve genel uyarı ekranı çıkacaktır o aşamadan sonra işlem yapılacağı için çok sorun olmayacaktır.
Kullanıcı avatarı
alibuyuk66
Siteye Alışmış
 
Adı Soyadı:ali büyük
Kayıt: 26 Ağu 2012 00:16
İleti: 296
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: urfa

Cevap: Dosya taşıma ve kopyalama

İleti#6)  alibuyuk66 » 21 Kas 2022 09:03

Merhaba Veysel Bey.
Kodu dediğiniz gibi revize ettim fakat çalışmıyor
Kod: Tümünü seç
Sub test()
    dosyaadi = Eskiveritabaniadi.Text
    Dim pth$, fName$, fullName$, eski$, yeni$
       pth = ThisWorkbook.Path & "\"
    fName = dosyaadi
    'fName = "database.accdb"
    fullName = pth & fName
    eski = pth & "Eski\" & fName
    yeni = pth & "Yeni\" & fName

    If Dir(fullName) <> "" And Dir(yeni, vbDirectory) <> "" Then Name fullName As eski
   
    If Dir(yeni) <> "" Then FileCopy yeni, fullName

End Sub
Kullanıcı avatarı
alibuyuk66
Siteye Alışmış
 
Adı Soyadı:ali büyük
Kayıt: 26 Ağu 2012 00:16
İleti: 296
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: urfa

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Dosya taşıma ve kopyalama

İleti#7)  alibuyuk66 » 21 Kas 2022 16:28

Merhaba Sorunu deneme yanılma ile aşağıdaki şekilde çözdüm.
Teşekkürler
Kod: Tümünü seç
Private Sub btnsifirla_Click()

If eskiveritabaniadi.Value = Empty Then
MsgBox "Eski yedeklenecek veri tabanının yılını yazınız"
eskiveritabaniadi.SetFocus
Exit Sub
End If
tamad.Value = eskiveritabaniadi.Text & ".accdb"
Call sifirladata
MsgBox "Program Sıfırlandı"
Unload Me
End Sub

Sub sifirladata()
   
    Dim pth$, fName1$, fName$, fullName$, Eski$, Yeni$
     
      pth = ThisWorkbook.Path & "\"
    fName1 = tamad.Text
    fName = "database.accdb"
    fullName = pth & fName
    Eski = pth & "Eski\" & fName1
    Yeni = pth & "Yeni\" & fName

    If Dir(fullName) <> "" And Dir(Yeni, vbDirectory) <> "" Then Name fullName As Eski
   
    If Dir(Yeni) <> "" Then FileCopy Yeni, fullName

End Sub
Kullanıcı avatarı
alibuyuk66
Siteye Alışmış
 
Adı Soyadı:ali büyük
Kayıt: 26 Ağu 2012 00:16
İleti: 296
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: urfa


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: AhrefsBot, Google [Bot] ve 4 misafir

Bumerang - Yazarkafe