Skip to main content

AccessTr.neT


Access İçinden Windows Gezginini Yönetmek

Access İçinden Windows Gezginini Yönetmek

#7
tablolar arasındaki ilişkiyi kesince hem taşıma da hem de tabloya eklemede sorun çıkarmadan çalıştı. taşımada sorun çıkmıyor ama tabloya eklemede ilişkili olduğu için -tabloda o ad olmadığından- sorun çıkarıp tabloya eklemiyor.
ilişkileri kesmeseniz de Lcase(kişiadı) ile yine genelde ekliyor - ş.ç,ğ gibi dosya isimlendirmesinde kullanmadığınız ama tabloda kullandığınız isimler hariç- ama müşteri tablosunda o adın olması şart.
Kod:
Dim MyFile As String
Dim txtDosyaAdi() As String
'On Error Resume Next

ReDim DirectoryListArray(1000)

MyFile = Dir$(CurrentProject.Path & "\Müşteriler\_Tarananlar\*.pdf")
Counter = 0
Do While MyFile <> ""
   DirectoryListArray(Counter) = MyFile
   MyFile = Dir$
   Counter = Counter + 1

Loop

For x = 0 To Counter - 1
xMyFile = DirectoryListArray(x)
txtDosyaAdi = Split(xMyFile, "_")

xKonum = CurrentProject.Path & "\Müşteriler\_Tarananlar\"

Xhedef = CurrentProject.Path & "\Müşteriler\" & txtDosyaAdi(0)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & Replace(txtDosyaAdi(3), ".pdf", "")
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & txtDosyaAdi(1)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & txtDosyaAdi(2)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\"

Name xKonum & xMyFile As Xhedef & xMyFile

DoCmd.RunSQL "insert into 2_Dosya_Link_T (MUSTERI_ADI,DOSYA_LINK) values ('" & _
             Lcase(txtDosyaAdi(0)) & "', '#" & Xhedef & xMyFile & "#');"
Next

Cevapla
#8
(19/03/2019, 21:26)haliliyas yazdı: tablolar arasındaki ilişkiyi kesince hem taşıma da hem de tabloya eklemede sorun çıkarmadan çalıştı. taşımada sorun çıkmıyor ama tabloya eklemede ilişkili olduğu için -tabloda o ad olmadığından- sorun çıkarıp tabloya eklemiyor.
ilişkileri kesmeseniz de Lcase(kişiadı) ile yine genelde ekliyor - ş.ç,ğ gibi dosya isimlendirmesinde kullanmadığınız ama tabloda kullandığınız isimler hariç- ama müşteri tablosunda o adın olması şart.
Kod:
Dim MyFile As String
Dim txtDosyaAdi() As String
'On Error Resume Next

ReDim DirectoryListArray(1000)

MyFile = Dir$(CurrentProject.Path & "\Müşteriler\_Tarananlar\*.pdf")
Counter = 0
Do While MyFile <> ""
   DirectoryListArray(Counter) = MyFile
   MyFile = Dir$
   Counter = Counter + 1

Loop

For x = 0 To Counter - 1
xMyFile = DirectoryListArray(x)
txtDosyaAdi = Split(xMyFile, "_")

xKonum = CurrentProject.Path & "\Müşteriler\_Tarananlar\"

Xhedef = CurrentProject.Path & "\Müşteriler\" & txtDosyaAdi(0)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & Replace(txtDosyaAdi(3), ".pdf", "")
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & txtDosyaAdi(1)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & txtDosyaAdi(2)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\"

Name xKonum & xMyFile As Xhedef & xMyFile

DoCmd.RunSQL "insert into 2_Dosya_Link_T (MUSTERI_ADI,DOSYA_LINK) values ('" & _
             Lcase(txtDosyaAdi(0)) & "', '#" & Xhedef & xMyFile & "#');"
Next



Merhaba Üstadım,

Dediğiniz gibi, taşımayı sorunsuz yapıyor. Hatta, Türkçe karakterleri destekleyerek yapıyor. Ve yine hatta, şayet dosyaya ait bir üst ya da alt klasör yok ise, onları bile create edip oluşturuyor. Ellerinize, emeğinize sağlık. Minnettarım. Teşekkürler.

Yalnız, ben şurayı atladım size anlatırken, dosyayı taşıyor doğru. Ancak o dosyadan bir kaç tane varsa yani;

ALI_2019_01_KDV_001.pdf
ALI_2019_01_KDV_002.pdf
ALI_2019_01_KDV_003.pdf olarak taşıması gerekiyor.

Biz sadece, ALI_2019_01_KDV.pdf dosyasını şu anda atabiliyoruz. Bu durumda, diğer dosyaları taşıyamıyorum. Kodun neresinde değişiklik yapılması lazım? Çünkü, aynı kritere ait yani aynı müşterinin, aynı yıla, aynı aya ve kdv fatura türüne göre birden fazla dosyası oluyor.

İkinci sorum ise, klasör isminde ALI, Dosyada ALI, Access kaydındaki müşteri adı ALI olduğu halde, 2_Dosya_Link_T formunda ilişkili dosyaları eklemiyor. Bunun nedeni nedir?

Teşekkürler.
Teşekkürler,
Saygılarımla,

Power BI İş Analitiği Danışmanı

Ali Yüzen
Cevapla
#9
sorunuzun ilk kısmıyla ilgilenip çözmeye çalışırım.
ama 2 sorunuzu anlamadım kendi denemelerimde tabloda adı olan herkesi ekliyordu neden sizde böyle bir hata verdi anlamadm.
Cevapla
#10
kodu aşağıdaki ile değiştirip dener misiniz?
Dim MyFile As String
Dim txtDosyaAdi() As String
'On Error Resume Next


ReDim DirectoryListArray(1000)

MyFile = Dir$(CurrentProject.Path & "\Müşteriler\_Tarananlar\*.pdf")
Counter = 0
Do While MyFile <> ""
   DirectoryListArray(Counter) = Replace(MyFile, ".pdf", "")
   MyFile = Dir$
   Counter = Counter + 1

Loop

For x = 0 To Counter - 1
xMyFile = DirectoryListArray(x)
txtDosyaAdi = Split(xMyFile, "_")

xKonum = CurrentProject.Path & "\Müşteriler\_Tarananlar\"
'________________Klasör yoksa olustur__________
Xhedef = CurrentProject.Path & "\Müşteriler\" & txtDosyaAdi(0)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & Replace(txtDosyaAdi(3), ".pdf", "")
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & txtDosyaAdi(1)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\" & txtDosyaAdi(2)
If Dir(Xhedef, vbDirectory) = "" Then MkDir Xhedef
Xhedef = Xhedef & "\"
'________________Klasör yoksa olustur bitti__________
'_______________dosya var mı
n = 1
Do
  DosyaAdi = Xhedef & xMyFile & "_" & Replace(Space$(3 - Len(n)), " ", "0") & n & ".pdf"
   n = n + 1
Loop Until Dir(DosyaAdi) = ""
'_______________dosya var mı bitti
Name xKonum & xMyFile & ".pdf" As DosyaAdi 'taşıma

DoCmd.RunSQL "insert into 2_Dosya_Link_T (MUSTERI_ADI,DOSYA_LINK) values ('" & _
             txtDosyaAdi(0) & "', '#" & DosyaAdi & "#');"
Next
Cevapla
#11
örnek çalışma aşağıdadır
.rar Windows Gezginini Yönetmek_hy.rar (Dosya Boyutu: 149,08 KB | İndirme Sayısı: 3)
Cevapla
#12
(20/03/2019, 15:05)haliliyas yazdı: sorunuzun ilk kısmıyla ilgilenip çözmeye çalışırım.
ama 2 sorunuzu anlamadım kendi denemelerimde tabloda adı olan herkesi ekliyordu neden sizde böyle bir hata verdi anlamadm.

2. sorunum ile ilgili, sizin dediğin yönergelere dikkat etmediğim için tamamen benim sizi anlamamamdan kaynaklı bir hataydı. Mesajınızı tekrar okudum. Linki kaldırdığımda eklendiğini gördüm. Bu yüzden, sizden özür dilerim. Ama, ilişkili bir formum olacağı için bir şekilde o ilişkiyi kurup o şekilde çalıştırmayı deneyeceğim. Çünkü, yapım table ve sub table şeklinde olacak. O yüzden ilişkili olan forma eklemem şart. Ama, şimdilik sizin yazdığınız şekilde planlamaya çalışacağım.
Teşekkürler,
Saygılarımla,

Power BI İş Analitiği Danışmanı

Ali Yüzen
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da