Konu Araçları | Konu Seçenekleri | Gösterim Stili
Tarih
19/03/2019 11:01
Konu Sahibi
aliyuzen
Yorumlar
30
Okunma
1019
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
aliyuzen

aliyuzen

Aktif Üye
24363
Al.... Yü....
 41
 40
 154
 02/09/2010
0
 İstanbul
 Müşteri Hizmetleri
 Ofis 2019 64 Bit
 10/07/2019,17:49
Çözüldü 
Merhaba Üstadlarım,

Bir Access veritabanı düşünün.
Form üzerindeki bir butona basıldığında;
C:\Müşteriler\_Tarananlar\ klasörü altındaki pdf formatındaki dosyaları tarayıp
(Dosya adı kuralı (MüşteriAdı_Yil_Ay_Turu.pdf) şeklindeki dosyaları bulmalı ve iligili klasör altına taşımalı.)

Eklediğim dosyayı incelediğinizde;
_Tarananlar klasörü altındaki dosyaları, ilgili firmaların altına taşımalıdır.

Örneğin;
ALI_2019_01_KDV.pdf dosyasını C:\Müşteriler\ALI\Kdv\2019\01-Ocak\ altına taşımalı.
ALI_2019_02_BEYANNAME.pdf dosyasını C:\Müşteriler\ALI\Beyanname\2019\02-Şubat\ altına taşımalı.
DEVRIM_2019_03_KDV.pdf dosyasını C:\Müşteriler\DEVRIM\Kdv\2019\03-Mart\ altına taşımalıdır.

Bu taşıma işi bittiğinde ise, linkleri otomatik olarak o kayıtta oluşturmalıdır. Şöyle ki,
Access dosyasından, 2_Dosya_Link_T_F formunu açınız.
Müşteri adı alanına ve Dosya Linki alanına az önce taşımış olduğu dosyaların linkini kaydetmelidir.

Yani,
Müşteri adı alanına ALI     Dosya linki alanına C:\Müşteriler\ALI\Kdv\2019\01-Ocak\ALI_2019_01_KDV.pdf
Müşteri adı alanına ALI     Dosya linki alanına C:\Müşteriler\ALI\Beyanname\2019\02-Şubat\ALI_2019_02_BEYANNAME.pdf
olarak kayıt atmalıdır.

Böyle bir işlem yapabilir miyiz?

Teşekkürler.




halily

halily

Uzman
65596
ha....
 26
 1.286
 30/07/2014
215
 -
 
 Ofis 2019 64 Bit
 Bugün,12:58
Aşağıdaki kodu dener misiniz?

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim MyFile As String
Dim txtDosyaAdi() As String

MyFile = Dir$(CurrentProject.Path & "\Müşteriler\_Tarananlar\*.pdf")

Do While MyFile <> ""
xMyFile = MyFile
    MyFile = Dir$
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 ('" & txtDosyaAdi(0) & "', '" & Xhedef & xMyFile & "');"
Loop


sql kodunu da loop döngüsünün içine eklerseniz sorun kalmaz
tablo ilişkileri kesilip aşağıdaki kodu yazınca sorunsuz çalıştı

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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 ('" & _
              txtDosyaAdi(0) & "', '#" & Xhedef & xMyFile & "#');"
Next



...........
aliyuzen

aliyuzen

Aktif Üye
24363
Al.... Yü....
 41
 40
 154
 02/09/2010
0
 İstanbul
 Müşteri Hizmetleri
 Ofis 2019 64 Bit
 10/07/2019,17:49
Üstadım,

Yukarıda bahsettiğinzi koddan çok fazla anlayamıyorum. Sağolun, teşekkürler. Zaman ayırıp destek olmuşsunuz. Acaba, 1. mesajdaki uygulamamın içine nereye yazılmasını da bilemediğim için uygulama şansınız var mı? Rica etsem, lütfen...

Ben yine de elimden geleni yapıp dediğiniz şekilde uygulamaya eklemeye çalışacağım. Yüksek ihtimal becerem ama, yine de deneyeceğim.



halily

halily

Uzman
65596
ha....
 26
 1.286
 30/07/2014
215
 -
 
 Ofis 2019 64 Bit
 Bugün,12:58
buton ekleyip onun tıkladığında olayına yazacaksınız




...........
aliyuzen

aliyuzen

Aktif Üye
24363
Al.... Yü....
 41
 40
 154
 02/09/2010
0
 İstanbul
 Müşteri Hizmetleri
 Ofis 2019 64 Bit
 10/07/2019,17:49
(19/03/2019 17:32)haliliyas Adlı Kullanıcıdan Alıntı: buton ekleyip onun tıkladığında olayına yazacaksınız

Sql kodunu loop döngüsüne yazın dediğiniz şey, append sorgusumu oluşturmalıyım.?
Taşıdoğım dosyalara ait Linkleri müşteriye ait kayıt altındaki tabloya eklemek için yazmam gerekiyor değil mi?



halily

halily

Uzman
65596
ha....
 26
 1.286
 30/07/2014
215
 -
 
 Ofis 2019 64 Bit
 Bugün,12:58
taşımada sorun yok -taşıma kodunu değiştirmek zorunda kaldım öbürü ara ara dosyalar taşındığından hata veriyordu-
ama hem tablonuz ilişkili alan kullandığından hem de pdf dosyalarını isimlendirirken kullandığınız i-I farkı nedeniyle dosya isimlerindeki adlar ile tablonuzdaki adlar uyumsuz olunca hata veriyor.
ekleyeceğiniz butonun koduna aşağıdaki kodu yazıp dener misiniz?
az önceki taşıma kodu sürekli hata veriyordu.

Kod:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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 ('" & _
'              txtDosyaAdi(0) & "', '#" & Xhedef & xMyFile & "#');"
Next



...........

Konuyu Okuyanlar: 1 Ziyaretçi

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Çözüldü Access 2010 Da Açılan Proje Access 2016 Da Açılmıyor.(Her İki Bilgisayarda 64 Bit) Oğuz Türkyılmaz 2 205 05/03/2019, 17:06
Son Yorum: halily
Çözüldü Ms Access Excel Veri Alma Sorunu / Ms Access Import Data hakkih 13 2.122 10/01/2019, 21:40
Son Yorum: hakkih
Çözüldü vba içinden sorgu çalıştırırken hata alıyorum. WiniFred 9 2.622 27/12/2017, 22:47
Son Yorum: serbay33
Çözüldü Access Tablodan Tabloya Şartlı Taşıma Ve Access Kapasite onurderun 1 520 23/12/2017, 22:39
Son Yorum: aydın3838
Çözüldü Windows 10'da Access Kısayol İkonu Hatası serkan1985 2 518 06/10/2017, 19:42
Son Yorum: serkan1985

Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2019 MyBB Group.