Access SQL
Döngü Ile Koşula Dayalı Klasör Içerisindeki Dosyaları Silme - Yazdırılabilir Sürüm

+- Access SQL (https://www.access-sql.com)
+-- Forum: ACCESS SORULARI VE ÖRNEK UYGULAMALARI (https://www.access-sql.com/Forum-ACCESS-SORULARI-VE-ORNEK-UYGULAMALARI)
+--- Forum: ACCESS SORULARI (https://www.access-sql.com/Forum-ACCESS-SORULARI)
+--- Konu: Döngü Ile Koşula Dayalı Klasör Içerisindeki Dosyaları Silme (/Konu-Dongu-Ile-Kosula-Dayali-Klasor-Icerisindeki-Dosyalari-Silme)



Döngü ile koşula dayalı klasör içerisindeki dosyaları silme - Mr.Midnight - 18-11-2022

Herkese merhaba;
Uzun bir aradan sonra yine bir program yazma çabası içerisine girdim ve bir noktada deneyimsizlik yüzünden tıkandım ve desteklerinizi ihtiyacım var. 

Programımda ana başlık bilgilerinin kayıt edildiği ve ana tablo isimli bir tablom var. İkinci bir tablo olan files isimli tabloda da klasör içerisine eklettiğim dosyaların dosya yolunu kayıt altına alan bir tablom var. Her iki tabloda da kayıtlar DnNo adlı bir alan ile kayıt altına alınmakta. 

Amacım ana tablodaki DnNo ya ait kaydı sildiğimde bu kayda ait klasör içerisindeki dosyaları çoklu olarak sildirtmek.

DnNo koşulunu taşıyan files isimli tablodaki ilgili kayıtların dosya yolu adlı alanındaki bilgiye göre ilgili dosyayı toplu olarak nasıl sildirtebilirim.

Bunu bir döngü ile yapmak mümkün biliyorum ancak döngüyü kodlayamadım.

Kod mantığım;
Dim kayitsayisi, i as Byte
kayitsayisi = Dcount("*", "tbl_Files", "DnNo='" & me.cboDnNo & "'")

For i =0 to kayitsayisi

Kill = DLookup("DosyaYolu", "tbl_Files", "DnNo='" & ne.cboDnNo & "'")
Next i


Yukarıdaki kod mantığının doğrusu hakkında beni yönlendirmenizi rica ederim


RE: Döngü Ile Koşula Dayalı Klasör Içerisindeki Dosyaları Silme - Mr.Midnight - 18-11-2022

Arkadaşlar problemimi çözdüm. İhtiyacı olan başkaları içinde çözümü aşağıda iletiyorum


Dim kyt, i As Byte
Dim dsy As String
kyt = DCount("*", "[tbl_Files]", "[DnNo]='" & Me.cboDnNo & "'")
For i = 0 To kyt - 1
dsy = DLookup("[FilePath]", "[tbl_Files]", "[DnNo]='" & Me.cboDnNo & "'")
Me.txtDosyaYolu = dsy
Me.txtDosyaYolu.Requery
Kill dsy
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE tbl_Files.*, tbl_Files.[IdNo] FROM tbl_Files WHERE (((tbl_Files.[FilePath])=[Forms]![frm_Ticket]![txtDosyaYolu]));"
DoCmd.SetWarnings True
Recalc
Refresh
Next i
End Sub


RE: Döngü Ile Koşula Dayalı Klasör Içerisindeki Dosyaları Silme - alperalper - 19-11-2022

(18-11-2022, 21:21)Mr.Midnight demiş ki: Arkadaşlar problemimi çözdüm. İhtiyacı olan başkaları içinde çözümü aşağıda iletiyorum


Dim kyt, i As Byte
Dim dsy As String
kyt = DCount("*", "[tbl_Files]", "[DnNo]='" & Me.cboDnNo & "'")
For i = 0 To kyt - 1
dsy = DLookup("[FilePath]", "[tbl_Files]", "[DnNo]='" & Me.cboDnNo & "'")
Me.txtDosyaYolu = dsy
Me.txtDosyaYolu.Requery
Kill dsy
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE tbl_Files.*, tbl_Files.[IdNo] FROM tbl_Files WHERE (((tbl_Files.[FilePath])=[Forms]![frm_Ticket]![txtDosyaYolu]));"
DoCmd.SetWarnings True
Recalc
Refresh
Next i
End Sub

Kurgunuz hatalı. Ortada bir döngü var ama döngü kayıt sayısı adedince çalışıyor. Ama kayıtlar arasında gezinti yapmıyor. Yani kaydı bir kritere göre bulup silmiyor. Kaç afetse o kadar çalışıyor.