Skip to main content

AccessTr.neT


Klasör içine dosyayı kopyalama

Klasör içine dosyayı kopyalama

Çözüldü #1
Merhaba Arkadaşlar,

Aşağıdaki kodla sipariş formumda bulunan bir buton ile firma adıyla klasör oluşturup klasörün olup olmadığını kontrol edebiliyorum.


Visual Basic Code
If Len(Dir("C:\Users\sony\Documents\deneme\" & [FirmaAdi] & "", vbDirectory)) = 0 Then
MkDir "C:\Users\sony\Documents\deneme\" & [FirmaAdi] & ""
Else
MsgBox "Firmaya ait klasör zaten önceden beri var."
End If

Sorum şu: sipariş formumda ek veri alanını kullanıyorum. O alana eklenen dosyayıda ilgili firmanın klasörünün içine kopyalamak istiyorum. Ek veri alanının adı "MusteriBelgesi" dir. "MusteriBelgesi" içine eklenen dosyayı nasıl klasör içine kopyalayabilirim.

Saygılarımla,
Son Düzenleme: 05/08/2014, 18:43, Düzenleyen: mengene2.
Cevapla
#2
Merhaba Arkadaşlar,

Kodu aşağıdaki gibi düzenledim ama çalışmıyor nedense nerede yanlışlık yapıyorum acaba? Ayrıca dosyanın ismini de SiparisID & FirmaAdi ile isimlendirmek istiyorum. Yardımcı olabilirseniz çok sevinirim.

Visual Basic Code
Private Sub Komut96_Click()
Dim Yer As String
Yer = "C:\Users\sony\Documents\deneme\" & [FirmaAdi] & ""
If Len(Dir(Yer, vbDirectory)) = 0 Then
MkDir Yer
FileCopy Yer, Yer & Me.MusteriBelgesi.CurrentAttachment
MsgBox "Kopyalanmıştır"
Else
MsgBox "Firmaya ait klasör zaten önceden beri var."
End If
End Sub

Saygılarımla
Cevapla
#3
Merhaba Arkadaşlar,

Kullandığım veri tabanında MusteriBelgesi alanına gömülü yani ek veri alanındaki varsayılan dosyayı klasör içine kopyalamak istiyorum. Dolayısıyla dosya yolu diye bir şey yok. Bende kodu aşağıdaki gibi yaptım ama herhangi bir aksiyon yapmıyor. Hatada vermiyor ama işde görmüyor. Yardımcı oabilirseniz çok seviniirm.

Dosya MusteriBelgesi alanında saklıdır. şağıdaki kodla varsayılan ekli dosyayı almayı planladım. Yanlışda düşünmüş olabilirim.

Dosya=Me.MusteriBelgesi.CurrentAttachment

Tepki vermeyen ve iş görmeyen kodum aşağıdaki gibi.

Visual Basic Code
Private Sub Komut96_Click()
Dim Yer As String
Dim Dosya As String
Dosya = Me.MusteriBelgesi.CurrentAttachment
Yer = "C:\Users\sony\Documents\deneme\" & [FirmaAdi] & ""

If Len(Dir(Yer, vbDirectory)) = 0 Then
MkDir Yer
FileCopy Yer, Yer & "\" & Me.MusteriBelgesi.CurrentAttachment
MsgBox "Kopyalanmıştır"
If Len(Dir(Yer, vbDirectory)) > 0 Then
FileCopy Yer, Yer & "\" & Me.MusteriBelgesi.CurrentAttachment
MsgBox "Kopyalanmıştır"
End If
End If

End Sub
Cevapla
#4
Bunun için küçük bir örnek hazırlasanız daha kolay destek bulursunuz. Biz örnek üzerinde kendimiz yapıp da çözümü öyle göstermeyi seven bir grubuz. Bu arada bu tür klasör işleri için CurrentProject.path olayını kullanın derim. Projenizle beraber bir klasör olsun, onun içine gönderin dosyayı. Bu nedenle c:\User\Ali\.... gibi bir değişken yol yerine, Access dosyanızın bulunduğu yeri direk bulan bu yöntemi kullanın derim. Sitede aratırsanız örnekleri vardır. Yeni eklediğim 3lü resim gösterme örneğinde de yeni kullandım bu komutu.
İnadına, ille de Accesstr.net...
Cevapla
#5
Merhaba,

Haklısınız örnek eklemeden olmayacak.

Ekteki SiparisAnaTabloFormu nda bulunan Komt96 tuşuna bastığımda tuşun tıklandığında olan yordamında görülen ve o siparişin firma adı ile belirtilen klasörünün içine MusteriBelgesi ni kopyalayıp klasörün içine eklemesini istiyorum.

Umarım anlatabilmişimdir.

Saygılarımla
.rar SiparisYonetimi_be.rar (Dosya Boyutu: 9,45 MB | İndirme Sayısı: 7)
.rar SiparisYonetimi.rar (Dosya Boyutu: 555,84 KB | İndirme Sayısı: 11)
Cevapla
#6
Projenizi inceledim. Sorun, form üzerindeki "müşteri belgesi" alanındaki verinizle ilgili. Orada bir veri alanı değil görüntü-simge nesnesi yer alıyor. Siz belgenin görüntüsünü veritabanına gömmüşsünüz. Bu durumda elimizde belgenin asıl yeriyle ilgili bir veri de olmuyorç Bu durumda 2 seçeneğiniz var.
1- Bu şekilde "ek" alanı kullanmak yerine -ki bütün müşteri belgelerinin resim formatında olduğunu varsayıyorum- resim çerçevesi(imageFrame) kullanırsanız, burada yer alan belgenin adresini almak mümkün olacaktır.
2- Ya da bu şekilde devam edebilir, ama o belgeyi nasıl bir yöntemle ekliyorsanız, bu işlem sırasında belgenin durduğu dizinin adresini bir yerlere kaydettirin. Sonra da oradan kopyalama işlemi sırasında yararlanın.

Bu hata dışında gördüğüm kadarıyla kodlarda sorun yok. Klasör açılıyor zaten. Ama içine yollamaya çalıştığınız "dosya" isimli değişkene belgenin bulunduğu yolu değil, belgenin hayalini yüklüyorsunuz.

Kolay gelsin.

Bununla ilgili önceki mesajımda dün bir eski örneğim üzerinde çalıştığı söylemiştim. Şu 3lü resim ekleme olayı. Oradaki çalışmayı inceleyin ve ordaki ImageFrame nesnesini kullanmaya çalışın. Böylece resim klasöründen kopyalama da yapıyorum orada. Gerçi siz oraları zaten koymuşsunuz. Dediğim hatayı bu şekilde düzeltebilirsiniz.
İnadına, ille de Accesstr.net...
Son Düzenleme: 07/08/2014, 02:03, Düzenleyen: mehmetdemiral.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da