Skip to main content

AccessTr.neT


Do Until Sorgusu Kullanımı Hakkında

Do Until Sorgusu Kullanımı Hakkında

Çözüldü #1
Daha önce excelle aktarma ile ilgili sorum olmuştur, yardımlarınız ile hallettim teşekkür ederim. Access te olan verilerimi altta yazılı kod ile aktarmaya çalışıyorum fakat her satıra 1 numaradaki kaydı ekleyip sonsuz bir döngü içerisine giriyor, kayıtlarımı sırası ile alması ve bitince döngünün sonlanması için kodda ne gibi değişiklik yapmalıyım.

Kod:
   
Dim i
Do Until rs2.EOF

        excl.Range("A" & i).Value = DLookup("id", "tblpersonel")
        excl.Range("B" & i).Value = DLookup("sicil", "tblpersonel")
        excl.Range("C" & i).Value = DLookup("ad_soyad", "tblpersonel")
        excl.Range("D" & i).Value = DLookup("rutbe", "tblpersonel")
        excl.Range("E" & i).Value = DLookup("birim", "tblpersonel")
               
   
  rs2.MoveNext
        i = i + 1


    Loop
 
rs2.Close

Cevapla
#2
SELAMLAR,

O Sekilde olmasi sartmidir. buton tiklama olayina asagidaki sekilde bir kod ekleyip denermisiniz.



Function buton1()

DoCmd.OutputTo acOutputTable, "DOSYA ADI", "Excel97-Excel2003Workbook(*.xls)", "", False, "", , acExportQualityPrint


End Function
Cevapla
#3
Forum içerisinden benzeyen konulara baktığımda sorgu oluşturmam gerektiğini anladım
Kod:
Set rs1 = CurrentDb.OpenRecordset("Select tblpersonel.id,tblpersonel.sicil,tblpersonel.ad_soyad,tblpersonel.rutbe,tblpersonel.birim from tblpersonel")
bu şekilde bir sorgu oluşturdum. Kod bloğunu da
Kod:
Dim i
       i = 3


        Do Until rs1.EOF

        excl.Range("A4") = excl.Range("A" & i).Value = rs1(0)
        excl.Range("B4") = excl.Range("B" & i).Value = rs1(1)
        excl.Range("C4") = excl.Range("C" & i).Value = rs1(2)
        excl.Range("D4") = excl.Range("D" & i).Value = rs1(3)
       ' excl.Range("E").value = DLookup("birim", "tblpersonel")
                
      i = i + 1
      
  rs1.MoveNext
      


    Loop
  
rs1.Close

bu şekilde düzenledim F8 ile kontrol ettiğimde kayıtlarda gezdiğini görüyorum ama excellde ilk satırda bulunan yerlere YANLIŞ ibaresi koyuyor daha sonraki satırlara inmiyor
Cevapla
#4
recordsetin tamamı aktarılacaksa döngüye gerek yok copyfromrecordset ile aktarabiliyor zaten
Do Until rs2.EOF satırından önce If rs2.RecordCount > 0 Then rs2.MoveFirst satırı ekleyerek dener misiniz?
Not: her defasında biz belirtmeyelim; dosyanızı ekleyin
dosyanızı en baştan eklediğinizde çözüme daha çabuk ulaşılır
Cevapla
#5
Forum içerisinden benzeyen konulara baktığımda sorgu oluşturmam gerektiğini anladım
Set rs1 = CurrentDb.OpenRecordset("Select tblpersonel.id,tblpersonel.sicil,tblpersonel.ad_soyad,tblpersonel.rutbe,tblpersonel.birim from tblpersonel")

Bu sekilde kulanimlar genelde sablonu hazir olan excellere gonderme konusunda basarili. Eger bir sablon yani hazir bir excele gondermek istiyorsan bu yontem uygulanabilir

Sayin Berdus un dedigi ornek eklerseniz daha hizli cozum bulunabilir.
Cevapla
#6
Evet şablon üzerinde ekleme yapıyorum çalışma içerisinde bilgiler olduğu için ekleyemedim ama yedek alıp bilgileri sildim ekte var çalışmam şu anda bakabilirseniz sevinirim direk aktar yaparsanız sonsuz döngüye giriyor bilginiz olsun
Son Düzenleme: 30/09/2022, 16:19, Düzenleyen: angelos. (Sebep: link bilgi içeriyordu)
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da