Sayın
assenucler;
Hem zamanım açısından hem de konunuza çabuk cevap verme kaygısından dolayı, konuyu "örnekli anlatım" şeklinde değil de; bir örnek yaparak burada cevaplandırmayı düşündüm...
Ben genelde Excel ya da Word'e veri aktarma işlemini kodla değil de, Access'in kendi veritabanı penceresinde Dosya>Ver yoluyla yapıyorum... Bu bana yeterli oluyor...
Bildiğiniz gibi bunun için Excel ya da worde aktaracağımız tablo, sorgu ya da formu veritabanı penceresi üstünde seçerek, Dosya>Ver yoluyla açılan pencerede "Kayıt türü" kısmında "Microsoft Excel 97-2003 (*.xls)" veya "Zengin Metin Biçimi (*.rtf)" seçerek ver
ilerimin excel veya word olarak bilgisayarımda benim gösterdiğim dizine kaydedilmesini sağlıyorum...
Tabii bunları gelişmiş ve karışık kodlarla ihtiyacı karşılayacak şekilde de yapmak mümkün. Ancak, veri aktarırken -geliştirdiğiniz uygulamaya göre- çok çeşitli varyasyonlar olacağından hepsini ayrı ayrı ve kendi şartları içinde düşünmek gerekecek... Yine de ben en basit şekliyle hem excel hem de worde veri aktarmayı göstermesi bakımından bir örnek dosya ekledim ve basit kodları yazdım.
Önce Tbl_Ogrenc
iler adında bir tablo, Frm_Ogrenc
iler adında bir form ve Srg_ErkekleriSorgula ve Srg_KizlarıSorgula adında iki sorgu oluşturdum.
Excel'e veri aktarmak için form üzerinde bir buton oluşturdum ve bu butonun "tıklatıldığında" olay yordamına şu kodları yazdım:
Kod:
Private Sub Komut10_Click()
On Error GoTo Komut10_Click_Err
DoCmd.OutputTo acTable, "Tbl_Ogrenciler", "MicrosoftExcel(*.xls)", "", False, "", 0
Komut10_Click_Exit:
Exit Sub
Komut10_Click_Err:
MsgBox Error$
Resume Komut10_Click_Exit
End Sub
Burada tablo ver
ileri excel çıktısı olarak bilgisayarımıza kaydedilmekte.
Eğer excele sorgudan veri vereceksek
Kod:
DoCmd.OutputTo acQuery, "Srg_ErkekleriSorgula", "MicrosoftExcel(*.xls)", "", False, "", 0
formdan veri vereceksek
Kod:
DoCmd.OutputTo acForm, "Frm_Ogrenciler", "MicrosoftExcel(*.xls)", "", False, "", 0
yazabiliriz.
Yine worde veri aktarmak için de form üzerinde bir buton oluşturdum ve "tıklatıldığında" olay yordamına şu kodları yazdım:
Kod:
Private Sub Komut17_Click()
On Error GoTo Komut17_Click_Err
DoCmd.OutputTo acTable, "Tbl_Ogrenciler", "RichTextFormat(*.rtf)", "", False, "", 0
Komut17_Click_Exit:
Exit Sub
Komut17_Click_Err:
MsgBox Error$
Resume Komut17_Click_Exit
End Sub
Burada tablo ver
ileri word çıktısı olarak bilgisayarımıza kaydedilmekte.
Eğer worde sorgudan veri vereceksek
Kod:
DoCmd.OutputTo acQuery, "Srg_ErkekleriSorgula", "RichTextFormat(*.rtf)", "", False, "", 0
formdan veri vereceksek
Kod:
DoCmd.OutputTo acForm, "Frm_Ogrenciler", "RichTextFormat(*.rtf)", "", False, "", 0
yazabiliriz.
Eklediğim örnek dosya incelenirse konunun daha iyi anlaşılacağını düşünüyorum... İlginiz için teşekkürler...
Saygılarımla...