- Samsung Galaxy A56 - megbízható középszerűség
- Honor 200 Pro - mobilportré
- Xiaomi 14 - párátlanul jó lehetne
- Google Pixel topik
- Milyen okostelefont vegyek?
- Telekom mobilszolgáltatások
- Redmi Watch 4 - olcsó hús, sűrű a leve
- Redmi Watch 5 Lite - filléres fitneszfelügyelő
- Szinte játékpénzért megvehető a Honor Play 10C
- Android alkalmazások - szoftver kibeszélő topik
Hirdetés
-
Mobilarena
Új hozzászólás Aktív témák
-
Jönnék megint valamivel
VBA Access
A program megnyitja az Outlookot, majd egy adott mappa (VBATest) tartalmát egy adatbázisba/tabellába írja. Ide kerül(ne) minden ami az emailben van, tehát feladó, CC, BCC, ki kapja ez emailt, a levél tárgya... majd ha melléklet van, akkor azt lementi egy mappába.
A kód maga:
Option Compare Database
Option Explicit
Public Sub TestAccessDB_Outlook()
Dim db As DAO.Database, rs As DAO.Recordset
Dim objOutlook As Outlook.Application, objNameSpace As Outlook.NameSpace
Dim objMailordner As Outlook.MAPIFolder
Dim objGAINMailordner As Outlook.MAPIFolder
Dim objAttachment As Outlook.Attachment, objMail As Outlook.Items
Dim objEMail As Outlook.MailItem
Dim intCtr As Integer
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM tbl_Email_Log;")
Set objOutlook = New Outlook.Application
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set objMailordner = objNameSpace.GetDefaultFolder(olFolderInbox)
Set objGAINMailordner = objMailordner.Folders("VBATest")
Set objMail = objGAINMailordner.Items
For Each objEMail In objMail
rs.AddNew
rs.Fields("Targy") = objEMail.Subject
rs.Fields("Mellekletszama") = objEMail.Attachments.Count
rs.Fields("Emailtulaj") = objEMail.ReceivedByName
rs.Fields("Ido") = objEMail.ReceivedTime
rs.Fields("Emailkuldo") = objEMail.ReplyRecipientNames
rs.Fields("BCC") = objEMail.BCC
rs.Fields("CC") = objEMail.CC
rs.Fields("Tartalom") = objEMail.Body
rs.Update
Next objEMail
For intCtr = 1 To objGAINMailordner.Items.Count
For Each objAttachment In objGAINMailordner.Items(intCtr).Attachments
objAttachment.SaveAsFile "C:\Users\user\Documents\" & objAttachment.FileName
Next objAttachment
Next intCtr
Forms!frm_Test.txt_Test = Forms!frm_Test.txt_Test & "A mappa üres" & vbNewLine
Set objAttachment = Nothing
Set objMail = Nothing
Set objMailordner = Nothing
Set objGAINMailordner = Nothing
Set objNameSpace = Nothing
objOutlook.Quit
Set objOutlook = Nothing
End SubVan 2 dolog, amiben "hibázik" a program. Az első, hogy nem ismeri fel, hogy kitől kaptam az emailt. Ha nyomok egy debugot, akkor csak kiírja, hogy a mező üres, holott nem az.
A másik, hogy ha az email tartalmába egy link szerepel, akkor azt nem tudja kezelni. Tehát html-t nem kezel.
Van valami ötletetek?
-
(#11923) Domonkos és (#11924) axioma
Nem lett sehogy jó és végül egy másik úton kezdtem neki, amivel viszont jó lett.
Köszi azért
-
válasz
sztanozs #11919 üzenetére
Így gondolod:
If Not IsNull(rs!Email) = True Then strEmail = rs!Email
If Not IsNull(rs!Firstname) = True Then strFirstnamee = rs!Firstname
If Not IsNull(rs!Lastname) = True Then strLastname = rs!Lastname
If Not IsNull(rs!Usernumber) = True Then strUsernumber = rs!Usernumber
If strEmail = "" Then MsgBox "szöveg": rs.MoveNext: Exit GoTo ContinueLoop
If strFirstname = "" Then MsgBox "szöveg": rs.MoveNext: Exit GoTo ContinueLoop
If strLastname= "" Then MsgBox "szöveg": rs.MoveNext: Exit GoTo ContinueLoop
If strUsernumber = "" Then MsgBox "szöveg": rs.MoveNext: Exit GoTo ContinueLoop
strSubject = "Minden ok"
strHTMLHeader = "<!DOCTYPE html><html><head><style>p {font: 11pt Calibri; text-align: left;}</style><style>td {border:1px solid; font: 11pt Calibri; text-align: center;}</style><style>th {border:1px solid; font: 11pt Calibri;}</style></head>"
strTitle = "<p>Hallo</p>"
strMessage = "<p>Easy :)</p>"
'HTML Footer
strMessage = strMessage & "</body></html>"
With objMailItem
If Not strEmail = "" Then .To = strEmail
.Subject = strSubject
.HTMLBody = strHTMLHeader & strTitle & strMessage
.Display
.Save
End With
rs.MoveNext
ContinueLoop:
Loop
rs.CloseEzek után nekem Syntxhibát ad ki a GoTo-nál
-
-
Jönnék megint valamivel
Access VBA-ról van szó és a kód
Option Compare Database
Option Explicit
Private Sub Email_senden()
Dim olApp As New Outlook.Application
Dim olNamespace As NameSpace
Dim objMailItem As MailItem
Dim objFolder As mapiFolder
Dim strTo As String
Dim strCC As String
Dim strTitle As String
Dim strSubject As String
Dim strHTMLHeader As String
Dim strMessage As String
Dim strEmail As String
Dim strFirstname As String
Dim strLastname As String
Dim strUsernumber As String
Dim strDatabase As String
Dim db As Database
Dim rs As Recordset
Dim strSQL As String
Dim oItem As Outlook.MailItem
Dim intAnzahl As Integer
strDatabase = "C:\Users\user\Documents\Kontakte.accdb"
Set db = CurrentDb
Set olApp = CreateObject("Outlook.Application")
Set olNamespace = olApp.GetNamespace("MAPI")
Set objFolder = olNamespace.GetDefaultFolder(olFolderInbox)
Set objMailItem = objFolder.Items.Add(olMailItem)
strSQL = "Select * FROM Kontakte;"
Set rs = db.OpenRecordset(strSQL)
Do Until rs.EOF
strEmail = ""
strFirstname = ""
strLastname = ""
strUsernumber = ""
If Not IsNull(rs!Email) = True Then strEmail = rs!Email
If Not IsNull(rs!Firstname) = True Then strFirstnamee = rs!Firstname
If Not IsNull(rs!Lastname) = True Then strLastname = rs!Lastname
If Not IsNull(rs!Usernumber) = True Then strUsernumber = rs!Usernumber
If strEmail = "" Then MsgBox "szöveg": rs.MoveNext: Exit Do
If strFirstname = "" Then MsgBox "szöveg": rs.MoveNext: Exit Do
If strLastname= "" Then MsgBox "szöveg": rs.MoveNext: Exit Do
If strUsernumber = "" Then MsgBox "szöveg": rs.MoveNext: Exit Do
strSubject = "Minden ok"
strHTMLHeader = "<!DOCTYPE html><html><head><style>p {font: 11pt Calibri; text-align: left;}</style><style>td {border:1px solid; font: 11pt Calibri; text-align: center;}</style><style>th {border:1px solid; font: 11pt Calibri;}</style></head>"
strTitle = "<p>Hallo</p>"
strMessage = "<p>Easy :)</p>"
'HTML Footer
strMessage = strMessage & "</body></html>"
With objMailItem
If Not strEmail = "" Then .To = strEmail
.Subject = strSubject
.HTMLBody = strHTMLHeader & strTitle & strMessage
.Display
.Save
End With
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Set db = Nothing
Set olApp = Nothing
Set olNamespace = Nothing
Set objFolder = Nothing
Set objMailItem = Nothing
End SubVan egy tabellám, amiben meg vannak adva email, firstname, lastname és usernumber. Ha pl. kitörlök egy email címet, akkor jön egy megadott szöveg, hogy nincs az adatbázisban email és itt leáll.
A problémám, hogy miért áll le, miért nem megy a következőre? -
Valaki tud könyvet ajánlani oop-hez magyarul, olyannak aki teljesen nulláról kezdene? Jó lenne ha programnyelvtől független lenne, tehát, hogy meg lehessen tanulni magát a gondolkodási módot, felépítést stb...
-
válasz
kovisoft #11906 üzenetére
Köszönöm, máris kiírja, hogy mennyi PDF-es E-mailem van
Így írtam át:
' Az összes e-mail megszámolni
For intItem = Inbox.Items.Count To 1 Step -1
' Csak az olvasatlan leveleket csekkolni
If Inbox.Items(intItem).UnRead = True Then
' Meghatározni, hogy melyik objektumosztály és csak azon leveleket feldolgozni
If Inbox.Items(intItem).Class = olMail Then
Set oItem = Inbox.Items(intItem)
If Not oItem.Attachments.Count = 0 Then
For intAttachement = 1 To oItem.Attachments.Count
' Csak PDFes leveleket feldolgozni
strAttachementType = Right(oItem.Attachments.Item(intAttachement).FileName, 3)
If UCase(strAttachementType) = "PDF" Then
Mennyiseg = oItem.Attachments.Count + Mennyiseg
End If
Next
End If
End If
End If
Next
MsgBox "E-Mailek PDF csatolmánnyal " & Mennyiseg
End SubEz eddig oké, de... most csak egy E-Mail volt bent PDF-el, de ha több van, esetleg egy E-Mail több PDF-el, akkor nem számol tovább
Vagy is minden egyes E-Mailben csak egy PDF-et észlel.Ki szeretném íratni, hogy összesen hány E-Mail van és valahogy megoldani, hogy ha egy E-Mailben több PDF van, akkor azt is számolja. Erre esetleg van ötleted?
Update!
Csináltam egy
Dim EmailCount As Integer
Majd beraktam ide:
If UCase(strAttachementType) = "PDF" Then
Anzahl = oItem.Attachments.Count + Anzahl
EmailCount = oFolder.Items.CountA végén:
MsgBox "Email PDF-el " & Mennyiseg & " összesen " & EmailCount & " E-Mailből"
Az EmailCount-ra 0-t kapok
-
Hali,
MS Access VBA és lenne a következő kód:
Dim oFolder As Outlook.MAPIFolder
Dim Inbox As Outlook.MAPIFolder
Dim Drafts As Outlook.MAPIFolder
Dim Archive As Outlook.MAPIFolder
Dim MailFolder As Outlook.MAPIFolder
Dim AdobeFolder As Outlook.MAPIFolder
Dim MailItem As Outlook.MailItem
Dim oItem As Outlook.MailItem
Dim i As Long
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim intAttachement As Integer
Dim intCounter As Integer
Dim intItem As Integer
Dim strMailbox As String
Dim strInbox As String
Dim strDrafts As String
Dim strArchive As String
Dim strDatabase As String
Dim strAttachementType As String
Dim Mennyiseg As Integer
' Outlookra csatlakozas
Set o_NS = oA.GetNamespace("MAPI")
o_NS.Logon , , , False
Set oFs = o_NS.Folders
'Outlook Mailbox
strMailbox = "e-mail címem"
strInbox = "Postafiók"
strArchive = ""
Set oFolder = oFs.Item(strMailbox)
Set Inbox = oFolder.Folders(strInbox)
Set AdobeFolder = Inbox.Folders("Adobe")
Set MailFolder = o_NS.GetDefaultFolder(olFolderOutbox)
' Az összes e-mail megszámolni
For intItem = Inbox.Items.Count To 1 Step -1
' Csak az olvasatlan leveleket csekkolni
If Inbox.Items(intItem).UnRead = True Then
' Meghatározni, hogy melyik objektumosztály és csak azon leveleket feldolgozni
If Inbox.Items(intItem).Class = olMail Then
Set oItem = Inbox.Items(intItem)
If Not oItem.Attachments.Count = 0 Then
For intAttachement = 1 To oItem.Attachments.Count
' Csak PDFes leveleket feldolgozni
strAttachementType = Right(oItem.Attachments.Item(intAttachement).FileName, 3)
If UCase(strAttachementType) = "PDF" Then
MsgBox "E-Mailek PDF csatolmánnyal " & Mennyiseg
End If
Next
End If
End If
End If
Next
End SubHa elindítom a kódot, akkor a pdf csatolmányos levelek számára nullát mutat, holott nem annyi van.
Ötlet valakinek, hogy miért nem számolja?A kód a nagyobb kód része, a többi rész okés, de ez így nem akar működni
-
Otthon van valaki Excel-VBA programozasban? Ezzel most ismerkedem es van egy kerdesem.
Egyelore konnyebb feladatokat keresek magamnak. Most pl. egy szamologepet probalok csinalni es most felkesz allapotban van.
A gondom az, hogy ha alap esetben ha "," utsz be egy szamologepen, akkor "0," lesz a kijelzon. Nalam ez valamiert nem mukodik, csak ","-t ir ki.
A programkodom:
Option Explicit
Public dblZahl_A As Double
Public dblZahl_B As Double
Public strOperation As String
Public intAnzClickDezimal As Integer
Private Sub cmd_clear_Click()
frm_Rechner.txt_Display = ""
intAnzClickDezimal = 0
End Sub
Private Sub cmd_dezimal_Click()
intAnzClickDezimal = intAnzClickDezimal + 1
If intAnzClickDezimal < 2 Then
frm_Rechner.txt_Display = frm_Rechner.txt_Display & ","
End If
End Sub
Private Sub cmd_durch_Click()
dblZahl_A = frm_Rechner.txt_Display
strOperation = "Durch"
frm_Rechner.txt_Display = ""
intAnzClickDezimal = 0
End Sub
Private Sub cmd_gleich_Click()
dblZahl_B = frm_Rechner.txt_Display
Select Case strOperation
Case "Plus"
frm_Rechner.txt_Display = dblZahl_A + dblZahl_B
Case "Minus"
frm_Rechner.txt_Display = dblZahl_A - dblZahl_B
Case "Mal"
frm_Rechner.txt_Display = dblZahl_A * dblZahl_B
Case "Durch"
frm_Rechner.txt_Display = dblZahl_A / dblZahl_B
End Select
End Sub
Private Sub cmd_mal_Click()
dblZahl_A = frm_Rechner.txt_Display
strOperation = "Mal"
frm_Rechner.txt_Display = ""
intAnzClickDezimal = 0
End Sub
Private Sub cmd_minus_Click()
dblZahl_A = frm_Rechner.txt_Display
strOperation = "Minus"
frm_Rechner.txt_Display = ""
intAnzClickDezimal = 0
End Sub
Private Sub cmd_plus_Click()
dblZahl_A = frm_Rechner.txt_Display
strOperation = "Plus"
frm_Rechner.txt_Display = ""
intAnzClickDezimal = 0
End Sub
Private Sub cmd1_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "1"
End Sub
Private Sub cmd2_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "2"
End Sub
Private Sub cmd3_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "3"
End Sub
Private Sub cmd4_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "4"
End Sub
Private Sub cmd5_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "5"
End Sub
Private Sub cmd6_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "6"
End Sub
Private Sub cmd7_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "7"
End Sub
Private Sub cmd8_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "8"
End Sub
Private Sub cmd9_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "9"
End Sub
Private Sub cmd0_Click()
frm_Rechner.txt_Display = frm_Rechner.txt_Display & "0"
End Sub
Private Sub UserForm_Click()
End SubA "Dezimal" alatt kell a ","-t keresni. probaltam, hogy a
Private Sub cmd_dezimal_Click()
intAnzClickDezimal = intAnzClickDezimal + 1
If intAnzClickDezimal < 2 Then
frm_Rechner.txt_Display = frm_Rechner.txt_Display & ","
End If
End Subkodba a ","-t atirom "0,"-ra, de akkor pl. ha be akarom irni, hogy 56,36, akkor 560,36-ot ad ir ki
Otlet valakinek?
-
Hello!
Egy kis segítség kellene. Használok egy autoresponder progit és elakadtam a kezelésben. Van egy ilyen rész, hogy:
"Important Note: This backup will only take an online backup of the main
autoresponder.mdb file, which holds the filter definitions, mailing definitions, etc .
Data stored in formhandler databases is not backed up. To backup your form handler
databases you can use the advanced scheduler to launch a batch file. Create a batch
file which you for instance call dailybackup.bat. Add the line xcopy *.mdb
c:\myhandlers /C in the batch file. Then use the advanced scheduler to schedule
an external application (being this batch file) to run whenever you want. "Na most csináltam egy xcopy.mdb fájlt és abba leírtam az útvonalat:
d:\blog\2009\marcius\proma /c
Na az a gondom, hogy nem találja meg ezt. Valamit rosszul írhattam ? Az angol szöveg ha nem is 100%-ban de értem.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- iPhone 12 Pro 128 Gb Graphite Szép Állapot Gyári Doboz Gyári Kábel 2db Eredeti Spigen Tok
- Apple iPhone 14 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 14 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo Thinkpad L560 & L570 T440P T540p T430, T420 T410 eredeti akkuk
- Asus RTX 3050 8GB /Jótállással!/Dobozos!/Posta ok!
- IKEA (HAVREHOJ) tablet tartó
- Bomba ár! Lenovo ThinkPad L13 G1 - i5-10GEN I 16GB I 512SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Eladó ÚJ BONTATLAN Honor Magic6 Lite 8/256GB / fekete / 24 hó jótállással
- Akció! Hordozható GAMER Monitor! MSI MAG162V ! 15.6 1920x1080 FULLHD! Bolti ár fele!
- Lenovo ThinkPad dokkolók: USB-C 40A9/ 40AY/ 40AS/ Thunderbolt 3 40AC/ Hybrid USB-C DisplayLink 40AF
Állásajánlatok
Cég: FOTC
Város: Budapest