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
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
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
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
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.
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