O işin içinden bir türlü çıkamadım çünkü, benim programlar 64Bit ve raporu pdf e çeviremiyorum çünkü dll ler çalışmıyor. bu durumda raporu email gövdesine embed etmem gerekiyor böylesi de daha klas görünecek zaten ama internetteki örnekleri beceremedim. Diğer yandan email gönderme işi var ama bu butona tıklayarak olmamalı, bu durumda bunu da gmail üzerinden falan göndermem lazım ve eğer raporu email gövdesine embed edersem gmail üzerinden nası olacak bir türlü işin içinden çıkamadım. BİR YOL GÖSTERİRSENİZ SEVİNİRİM.
Access kullanıyorsanız ve üçüncü parti bileşenler kullanıyorsanız o zaman 32 bit olmasına gayret edin. Bileşenlerin pek çoğu sadece 32 Bit uyumlu.
Embed işi biraz gayret gerektiriyor çünkü
Html olarak göndermeniz gerekecek.
Html ile gönderimlerde iki ihtimal var:
1- Yazı ve tablo olarak göndermek.
2- Resim olarak göndermek. Bu seçenekte postanın istenmeyenlere takılması, resimler arasında boşluklar vs.vs. bir sürü deneme yapmak gerek.
En sağlamı ek olarak göndermek.
alpeki99 çok yardımcı oldun sağol ya....
Run-time error '2501':
OutputTo eylemi iptal edildi.
Kod ise şöyle:
Private Sub Komut75_Click()
DoCmd.OutputTo acOutputReport, "BirSonrakiBakım Raporu", acFormatPDF, CurrentProject.path & "C:\BirSonrakiBakım Raporu.pdf", False, , , acExportQualityPrint
' + mail gönderme işlemi
Dim iMsg, iConf, Flds, schema
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields
schema = "http://schemas.microsoft.com/cdo/configuration/"
Flds.Item(schema & "sendusing") = 2
Flds.Item(schema & "smtpserver") = "smtp.gmail.com"
Flds.Item(schema & "smtpserverport") = 465
Flds.Item(schema & "smtpauthenticate") = 1
Flds.Item(schema & "sendusername") = "hbulut.kar.backup@gmail.com"
Flds.Item(schema & "sendpassword") = "xxxxxxxxxxxxxx"
Flds.Item(schema & "smtpusessl") = 1
Flds.Update
With iMsg
.To = "hakkibulut@karinsaat.com.tr"
.From = "hbulut.kar.backup@gmail.com"
.Subject = "pdf gönder"
.HTMLBody = "evettt gönderdik gitti aldınızsa bana cepten ulaşın"
.Sender = "ben"
.Organization = "yineben"
.ReplyTo = "yanlışkişiyegitti ise geri gelecek adres"
.AddAttachment Application.CurrentProject.path & "C:\BirSonrakiBakım Raporu.pdf" 'burda stfile adlı globale atadığımız rapor dosyasının yeri adı"
Set .Configuration = iConf
.Send
End With
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing
Kill (CurrentProject.path & "C:\BirSonrakiBakım Raporu.pdf")
End Sub
Mail gönderme olayında son durum nedir?
Halloldu, programı bitirmek üzereyim, test ediyorum, sadece üst üste ikinci kayıt silmede,
"run-time error 3021 no current record"
hatası veriyor.
Kod şöyle;
Private Sub Komut98_Click()
Dim blnLast As Boolean
'MsgBox call must return the value in order to be checked.
'If user says no then cancelling is not required. It is only required
' that the deletion command is not invoked.
If MsgBox(Prompt:="Bu kaydı silmek istediğinizden eminmisiniz?" _
, Buttons:=vbYesNo Or vbQuestion _
, Title:="Deleting Record") = vbNo Then Exit Sub
'At this point it's clear we need to delete the record.
'Using With Me is a more efficient approach to object usage.
With Me
'Remember for later if record is last.
blnLast = (.CurrentRecord = .Recordset.RecordCount)
Call .Recordset.Delete
'Only step back if deleted record was the last.
If blnLast Then Call DoCmd.GoToRecord(Record:=acPrevious)
End With
End Sub
Farklı soru için yeni konu açmışsınız, bu konudaki sorunu çözdüğünüz kodları paylaşırsanız memnun olurum.