Skip to main content

AccessTr.neT


Access İçinden Windows Gezginini Yönetmek

Access İçinden Windows Gezginini Yönetmek

#13
ilişki önemli değil, önemli olan 2 nokta var
1.si eğer üst tabloda o isim yoksa ekleyemez
2.si ise aslında yine 1.yle ilgili mesela üst tabloda isim "maviş" ama pdf dosyasının ismi "MAVIS" ise sistem bunu 2 farklı isim olarak algılayacak ve tabloda "MAVIS" bulamadığından ekleyemeyecek
Cevapla
#14
(20/03/2019, 16:06)haliliyas yazdı: ilişki önemli değil, önemli olan 2 nokta var
1.si eğer üst tabloda o isim yoksa ekleyemez
2.si ise aslında yine 1.yle ilgili mesela üst tabloda isim "maviş" ama pdf dosyasının ismi "MAVIS" ise sistem bunu 2 farklı isim olarak algılayacak ve tabloda  "MAVIS" bulamadığından ekleyemeyecek

Kesinlikle size katılıyorum, çok doğru. İsmin aynı olmasına dikkat etmek zorundayım.

Peki, taşıma işlemini tamamladıktan sonra, _Tarananlar klasöründe birşey kalmışsa, Access'teyken "işlem tamamlandı" ya da "Eksik kalan uyuşmayan dosyaar var" şeklinde bir mesaj üretebilir miyiz? Mümkün mü?
Teşekkürler,
Saygılarımla,

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

Ali Yüzen
Cevapla
#15
büyük bir ihtimalle eklenebilir ama araştırmam lazım.
Cevapla
#16
Hocam, şimdiye kadar vermiş olduğunuz destek için teşekkür ederim. Allah sizden razı olsun. Emeğiniz, bende büyük.
Teşekkürler,
Saygılarımla,

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

Ali Yüzen
Cevapla
#17
bir yerden aşağıdakine benzer bir denetleme buldum ama ne kadar etkilidir hangi hataları gösterir bilmiyorum.
bir tek
   Set flr = fso.GetFolder(xKonum)
   kalandosya = flr.Files.Count
   If kalandosya = 0 Then MsgBox ("işlem tamam")
   If kalandosya > 0 Then MsgBox (kalandosya & "Taşınamamıştır")
kısmındaki uyarıları ben ekledim klasörde dosya kalsa kalmasa da bildiriyor
butonun kaodunu aşağıdakiyle değiştirebilirsiniz
   Dim fso As Object
   Dim flr As Object
Dim MyFile As String
Dim txtDosyaAdi() As String

On Error GoTo HataYakala
   Set fso = CreateObject("Scripting.FileSystemObject")

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


DoCmd.RunSQL "insert into 2_Dosya_Link_T (MUSTERI_ADI,DOSYA_LINK) values ('" & _
             txtDosyaAdi(0) & "', '#" & DosyaAdi & "#');"
Next
'___Taşınmayan dosya kaldı mı
   Set flr = fso.GetFolder(xKonum)
   kalandosya = flr.Files.Count
   If kalandosya = 0 Then MsgBox ("işlem tamam")
   If kalandosya > 0 Then MsgBox (kalandosya & "Taşınamamıştır")
'___Taşınmayan dosya kaldı mı
HataYakala_Exit:
   On Error Resume Next
   Set flr = Nothing
   Set fso = Nothing
   Exit Sub

HataYakala:
If Err.Number = 70 Then
   MsgBox "Aşağıdaki Sorunlara raslandı." & vbCrLf & vbCrLf & _
           "Hata Kodu: " & Err.Number & vbCrLf & _
           "Hata Kaynağı: Dosya taşıma " & vbCrLf & _
           "Hata Tanımı: " & Err.Description, _
           vbCritical, "An Error has Occured!"
   Else
       MsgBox "Aşağıdaki Sorunlara raslandı." & vbCrLf & vbCrLf & _
           "Hata Kodu: " & Err.Number & vbCrLf & _
           "Hata Tanımı: " & Err.Description, _
           vbCritical, "An Error has Occured!"
   End If
   Resume HataYakala_Exit
Cevapla
#18
Merhaba Hocam,

Kodu dediğiniz şekilde ekledim. Şayet, alakasız bir dosya var ise, ekteki hata mesajını verdi. En azından bu mesajı verse bile bir hata olduğunu anlayabilirim. Doğru bir şekilde taşıma işlemini yapınca da işlem tamam mesajını veriyor.

Taşıma işlemi tamalanmadığında, işlem tamamlanmadı mesajını bir şekilde getirtebilirsek süper olurdu. 

1. Bu arada, dosya adımız;
MusteriAdi_Yil_Ay_BelgeTuru_BelgeSayisi şeklinde. Bu kuralı kendi içinde (yerlerini / sırasını) değiştirmem gerekirse, kod yine aynı şekilde çalışır mı?

ALI_2019_01_KDV_001.pdf
MusteriAdi_Yil_Ay_BelgeTuru_BelgeSayisi

ALI_2019_KDV_01_001.pdf

MusteriAdi_Yil_BelgeTuru_Ay_BelgeSayisi

2. Access teki 2_Dosya_Link_T tablosunun içerisine aynı kayıttan atarsa uyarı verdirmem gerekiyor. Mükerrer olmaması adına. Aklıma, tablo ayarından alan özelliğini Sıralı: Evet-Yineleme Yok dersem kayıt atmayacağını biliyorum. ancak, bir mesajı nasıl döndürürüm sizin kodun içinde orayı bilmiyorum.

3. Taşıma esnasında aynı dosyadan varsa, yüksek ihtimal üzerine yazar diye düşünüyorum. Bu durum öncesi, dosya var, yine de taşınsın mı diye bir mesaj çıkarabilir miyiz?
.rar Ekran Alıntısı.rar (Dosya Boyutu: 68,94 KB | İndirme Sayısı: 2)
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
Task