Klasör Açma

1 2 3
13/01/2015, 12:41

stromax

Herkese Selamlar. Benim Acil bir sorum olucaktı. Forumda biraz araştırdım ama tam detaylı bir cevap bulamadım.Öncelikle form yapısı içinde iladı,ilçeadi,projeadi gibi fieldlar var. Ben otomotik olarak bunları lat klasörler şeklinde içeren bir klasör açma butonu ekleme istiyorum. Yani butona tıkladığımda benim göstereceğim ana klasörün altına önce ildını sonra onun altına ilçe adını sonra onun altına projeadını içeren klasör açsın. Bunun yapılması husunda yardımcı olan arkadaşlara şimdiden teşekkür ederim.
13/01/2015, 14:54

atoz112

Sayın stromax,

İçi içe klasörler oluşturmak için direkt tek olarak her bir alanı içeriğinde barındıracak şekilde yazılmayı geçerli kılmamaktadır.
bu nedenle,her bir klasörü tek tek oluşturacak şekilde yazmalısınız.

Aşağıdaki örnek kalıbı kullanmak sureti ile,kendi uygulamanıza ve talebinize göre düzenleyebilirsiniz.bilginize.

Kod:
MkDir CurrentProject.Path & "\" & Me.il_adi
MkDir CurrentProject.Path & "\" & Me.il_adi & "\" & Me.ilce_adi
MkDir CurrentProject.Path & "\" & Me.il_adi & "\" & Me.ilce_adi & "\" & Me.proje_adi
MsgBox ("Klasör oluşturuldu"), vbInformation, "KLASÖR OLUŞTURMA"

EK'te;örnek uygulama mevcuttur.inceleyebilirsiniz.bilginize.

İyi çalışmalar,
Saygılar.
13/01/2015, 15:10

stromax

atoz çok teşekkürler cevabın için. Yalnız burda current project olan yere d:\test klasörü diyebilir miyim? diyelim kiil\ilçe\proje oluşturdu değerlerden il ilce aynı kalıp proje adı değiştiğinde fonksiyon çalışır mı?
13/01/2015, 15:45

stromax

atoz dediğin gibi yaptım klasör oluşturuldu. ancak il ve ilce aynı kalıp proje adını değiştirdiğimde path\ file acces error verdi. bunu nasıl engelleyeceğim?
13/01/2015, 17:16

SCavusoglu

Merhaba,

Hatayı yüksek ihtimalle aynı isimde klasör olduğundan alıyorsunuz. Bunu engellemek için "eğer" sorusu içeren bir kod kullanmanı gerekiyor.

O kod da aşağı yukarı şöyle birşey. "C:Rap" i siz istediğiniz sekilde degistirebilirsiniz. klasor1-2-3 kisimlarınıda anlamıssınızdır sanırım.

If Len(Dir("c:\Rap\", vbDirectory)) = 0 Then
MkDir "c:\Rap"
MkDir "c:\Rap" & "\" & Me.klasor1
MkDir "c:\Rap" & "\" & Me.klasor1 & "\" & Me.klasor2
MkDir "c:\Rap" & "\" & Me.klasor1 & "\" & Me.klasor2 & "\" & Me.klasor3
MsgBox ("Klasör Olusturuldu"), vbInformation, "KLASÖR OLUSTURMA"
Else
MkDir "c:\Rap" & "\" & Me.klasor1
MkDir "c:\Rap" & "\" & Me.klasor1 & "\" & Me.klasor2
MkDir "c:\Rap" & "\" & Me.klasor1 & "\" & Me.klasor2 & "\" & Me.klasor3
MsgBox ("Klasör Guncellendi"), vbInformation, "KLASÖR OLUSTURMA"
End If
13/01/2015, 17:26

atoz112

sayın stromax,

öncelikle; CurrentProject.Path ifadesi uygulamanızın bulunduğu klasöre göre düşünülerek belirtilmiştir.fakat,elbette ki bunu değiştirip yerine istediğiniz sabit bir klasör söz konusu ise o klasör içerisinde ilgili diğer klasörleri oluşturabilirsiniz.

fakat bunun için test adlı klasörün mevcut olması gerekmektedir,eğer ki kod ile direkt bu CurrentProject.Path ifadesi yerine yazmak isterseniz.aksi takdirde size hata bildirimi olarak çıkacaktır.Mevcut bahsettiğiniz hatanın nedeni de,oluşturulan klasör için kullanıcı izinleri tanımlamalısınız.

Son talebinize göre,bir önceki örnekteki ilgili buton içeriğindeki kodlamayı aşağıdaki ile değiştirerek kullanabilirsiniz.bilginize.

Kod:
Dim anayer As String
anayer = "d:\test"

If Dir(anayer, vbDirectory) = "" Then
MkDir anayer

MkDir anayer & "\" & Me.il_adi
MkDir anayer & "\" & Me.il_adi & "\" & Me.ilce_adi
MkDir anayer & "\" & Me.il_adi & "\" & Me.ilce_adi & "\" & Me.proje_adi
MsgBox ("Klasör oluşturuldu"), vbInformation, "KLASÖR OLUŞTURMA"
Else
MsgBox ("klasörler zaten mevcut")
End If


İyi çalışmalar,Saygılar.
1 2 3