Raporu Excel'e aktarma

1 2
13/01/2017, 00:48

nightashes

Merhaba,

Hazırladığım raporu exele aşağıdaki kod ile almaktayım. Sorun yok fakat; kayıt yerini sormadan belgelerime kayıt etmekte. İstediğim bana kayıt yerini sorması ve kayıt işlemi tamamlanınca msgbox ile Raporunuz Hazır Görüntülemek İster Misiniz? gibi bir soru sorması ve evet ise raporu exelde açması. Bunu acaba nasıl yapabilirim.

Saygılar.

Kod:
Private Sub btn_exelaktar_Click()
On Error Resume Next
DoCmd.OutputTo acOutputReport, "R_HMMD_1", acFormatXLS, ("Hammadde Listeleri - " & Date & ".xls"), True
End Sub
13/01/2017, 10:57

atoz112

sayın nightashes,

aşağıdaki açıklamaların yapılması uygun görülmüştür.

1)

Alıntı:kayıt yerini sormadan belgelerime kayıt etmekte.

ifadenize yönelik olarak;
("Hammadde Listeleri - " & Date & ".xls") olarak yazdığınızdan ve bir yol belirlemediğinizden dolayı,direkt olarak Belgelerim klasörüne aktarır.

naçizane bir tavsiye olması adına,
eğer kayıt yeri olarak sürekli değişen veya her seferinde farklı bir durum söz konusu olmayacaksa,mesaj iletileri ile bunun için zaman kaybedip yanıt vermektense,

Kod:
DoCmd.OutputTo acOutputReport, "R_HMMD_1", acFormatXLS, CurrentProject.Path & "\" & "Hammadde Listeleri - " & Date & ".xls", True

kod satırını kullanmanız yerinde olacaktır kanısındayım.

CurrentProject.Path & "\" kod ifadesi;
uygulamanın yer aldığı klasörün içerisine aktarması anlamındadır.eğer bu klasörün içerisinde bir rapor toplama klasörü de mevcutsa ve burada raporları toplamak isterseniz,bu kod ifadesinde bir ekleme yapmak sureti ile,

CurrentProject.Path & "\" & "rapor_klasoru" & "\" şeklinde yazmanız yeterlidir.

2)

son olarak;
raporun dönüştürülmesi sonrasında açılıp açılmamasını,sondaki TRUE / FALSE ifadesi belirler.burada önemli olan,raporu işlem bittikten sonra görmeyi isteyip istememeniz için vereceğiniz kararınızdır.

eğer FALSE yazarsanız,işlem bittikten sonra sonucu göstermez.TRUE yazarsanız gösterir.

elbette ki,bunlar bilgilendirme amaçlı düşünce paylaşımıdır.tercih ve takdir sizindir.bilginize...iyi çalışmalar,saygılar.
13/01/2017, 22:05

nightashes

(13/01/2017, 10:57)atoz112 yazdı: sayın nightashes,

aşağıdaki açıklamaların yapılması uygun görülmüştür.

1)

Alıntı:kayıt yerini sormadan belgelerime kayıt etmekte.

ifadenize yönelik olarak;
("Hammadde Listeleri - " & Date & ".xls") olarak yazdığınızdan ve bir yol belirlemediğinizden dolayı,direkt olarak Belgelerim klasörüne aktarır.

naçizane bir tavsiye olması adına,
eğer kayıt yeri olarak sürekli değişen veya her seferinde farklı bir durum söz konusu olmayacaksa,mesaj iletileri ile bunun için zaman kaybedip yanıt vermektense,

Kod:
DoCmd.OutputTo acOutputReport, "R_HMMD_1", acFormatXLS, CurrentProject.Path & "\" & "Hammadde Listeleri - " & Date & ".xls", True

kod satırını kullanmanız yerinde olacaktır kanısındayım.

CurrentProject.Path & "\" kod ifadesi;
uygulamanın yer aldığı klasörün içerisine aktarması anlamındadır.eğer bu klasörün içerisinde bir rapor toplama klasörü de mevcutsa ve burada raporları toplamak isterseniz,bu kod ifadesinde bir ekleme yapmak sureti ile,

CurrentProject.Path & "\" & "rapor_klasoru" & "\" şeklinde yazmanız yeterlidir.

2)

son olarak;
raporun dönüştürülmesi sonrasında açılıp açılmamasını,sondaki TRUE / FALSE ifadesi belirler.burada önemli olan,raporu işlem bittikten sonra görmeyi isteyip istememeniz için vereceğiniz kararınızdır.

eğer FALSE yazarsanız,işlem bittikten sonra sonucu göstermez.TRUE yazarsanız gösterir.

elbette ki,bunlar bilgilendirme amaçlı düşünce paylaşımıdır.tercih ve takdir sizindir.bilginize...iyi çalışmalar,saygılar.

Sayın atoz cevabınız için teşekkür ederim. Dediğiniz gibi oluyor currentpath i kullandığımız zaman ama benim yapmak istediğim kullanıcıya bırakmak kayıt yerini. Nasıl bir dosyayı download ederken bize kayıt yerini seçtiriyorsa benimde amacım bunu kullanıcıya bırakmak.

True veya False olarak değilde bunuda kullanıcıya bırakmak istedim ben. Yani;

If MsgBox ("Görüntülensin mi?", vbYesNo + vbQuestion)
VbYes then true
VbNo then false

gibi yani tam nasıl olacak bilmiyorum ama kısmen bu şekil gibi. Saygılar.

Düzeltme :
Kod:
Private Sub btn_pdfaktar_Click()
If MsgBox("Oluşturulan rapor açılsın mı?", vbYesNo, "Rapor Açma") = vbYes Then
DoCmd.OutputTo acOutputReport, "R_HMMD_1", acFormatPDF, ("Hammadde Listeleri - " & Date & ".pdf"), True
Else
DoCmd.OutputTo acOutputReport, "R_HMMD_1", acFormatPDF, ("Hammadde Listeleri - " & Date & ".pdf"), False
End If
End Sub
bu şekilde iki defa yazarak çözebildim.
Aklım daha çok dim yapıp yapmaya endeksliydi böyle biraz uzun ve ikileme gibi oldu ama oldu yani.
Teşekkürler
14/01/2017, 11:00

atoz112

sayın nightashes,

EK'te;
bahsettiğiniz talebinize yönelik olarak hazırlanmış örnek uygulama mevcuttur.inceleyebilirsiniz.

bilginize...iyi çalışmalar,saygılar.
sayın nightashes,

(sadece,bir hatırlatma ve bilgilendirme olması adına);

lütfen,konularınıza mesaj yazan katılımcıların yazdıklarının tamamını ALINTI olarak almak yerine,

yazılana atıfta bulunmak amacı ile yeni bir mesaj yazacak olduğunuzda,bütün mesajı değil SADECE gerekli gördüğünüz bir cümlesini ya da paragrafını alıp dahil etmeye özen gösteriniz.
teşekkürler.

bilginize...iyi çalışmalar,saygılar.
sayın nightashes,

konu takibiniz açısından,hatırlatma anlamında;
konunuz ile ilgili son gelişme ne durumdadır.

şüphesiz,işlemleriniz tamamlanmış ve sorununuzu çözmüş de olabilirsiniz.site içi aramalarınız neticesinde sitede yer alan konuları ve örnekleri incelemelerinizin sonucu ile bazı gelişimler elde etmiş de olabilirsiniz...bilgilendirmek ister misiniz lütfen.teşekkürler.

bilginize...iyi çalışmalar,saygılar.
27/01/2017, 22:54

nightashes

Sayın Atoz,
İstediğim şekilde gerçekleştiremedim aktarımı fakat sizin dediğiniz gibi yapıtım currentpath i kullandım. Yani rafa kaldırdımda denebilir.
27/01/2017, 23:41

ozanakkaya

Merhaba,
4. mesajdaki örnek uygulamada ne gibi bir sıkıntı var acaba?
1 2