Merhaba,
Butona tıkladığınızda döngü başlar.
Veri1 = rs!LOGICALREF
Bu kod tbl_test isimli tablodaki LOGICALREF alanı. Tabloda ilk satırdaki veri 2 olduğu için Veri1 değişkenine 2 değeri atanır.
Veri1'e değer atadıktan sonra rs.Move 99 kodu ile tablodaki 99. kayda gidilir. Verileri 100'erli aktarmak için buraya 99 yazıldı.
tablodaki 99. kayda gittikten sonra Veri2 = rs!LOGICALREF koduyla 99. kayıttaki veriyi yani 118 değerini Veri2 değişkenine atanır.
Tablodaki 100. satırdaki veri 118 olduğu için bu değer atandı.
Bu şekilde Veri1 ve Veri2'ye değer belirlemiş olduk.
DoCmd.RunSQL "INSERT INTO tbl_gecici ( LOGICALREF, GRPCODE, TRCODE, FICHENO, TIME_, DOCODE, CLIENTREF ) SELECT LOGICALREF, GRPCODE, TRCODE, FICHENO, TIME_, DOCODE, CLIENTREF FROM tbl_test WHERE (((LOGICALREF) Between " & Veri1 & " And " & Veri2 & "));"
Bu kod ile, tbl_test tablosunda LOGICALREF alanı Veri1 ve Veri2 arasında yani 2 ve 118 arasında olan verileri tbl_gecici isimli tabloya aktardık.
DoCmd.OutputTo acOutputQuery, "srg_gecici", "MS-DOSText(*.txt)", CurrentProject.Path & "\" & Veri1 & "-" & Veri2 & "Veriler.txt", False, "", , acExportQualityPrint
Kodu ile de uygulamanın bulunduğu dizine geçerli veriye göre "2-118Veriler.txt" adında dosya oluşturduk ve srg_gecici isimli sorgudaki verileri bu dosyaya aktardık. Burada srg_gecici sorgusunun kullanılma sebebi aktarım yapılırken LOGICALREF'in sıralı olması.
Aktarma işi bittikten sonra
DoCmd.RunSQL "DELETE * FROM tbl_gecici;"
Kodu ile tbl_gecici isimli tablodaki verileri sildik.
Daha sonra sonraki döngüye geçti. Sonraki döngüde Veri1'in değeri 118, Veri2'nin değeri ise 100 kayıt sonrası olan 230 değeridir.
Butonu tıkladığınızda 2-118, 118 230,..... şeklindeki döngü yerine, son sayının bir fazlası olan 2-118, 119 231, 232-336..... şeklinde devam etmesini istiyorsanız
DoCmd.SetWarnings True
kodunun hemen altına
rs.Move 1
kodu eklemelisiniz.