- Dieses Thema hat 8 Antworten und 3 Stimmen, und wurde zuletzt aktualisiert 15:15 um 7. August 2004 von lastwebpage.
- AutorBeitrag
- 4. August 2004 um 20:45 #23593UnbekanntTeilnehmer
Hallo,
ich habe ein Formular für OL 2000 gemacht und will damit jetzt Mails versenden. Habe für die Felder An, CC, BCC jeweils Combo-felder im Einsatz. Wenn eines der Combo-Felder leer ist, dann so Fehlermeldung kommen. Wenn eines oder max. drei Combo-Felder mit Inhalt versehen sind, dann soll versandr werden. Leider klappt es nicht.
Hier der Code der Versende-Funktion:
Dim iAN As Integer, iCC As Integer, iBCC As Integer
For iAN = 0 To cmbAN.ListCount – 1
For iCC = 0 To cmbCC.ListCount – 1
For iBCC = 0 To cmbBCC.ListCount – 1
If Trim(cmbAN.Value) <> \”\” Or Trim(cmbCC.Value) <> \”\” Or Trim(cmbBCC.Value) <> \”\” Then
EmailSenden Me.cmbAN.List(iAN), Me.cmbCC.List(iCC), Me.cmbBCC.List(iBCC), Me.txtBetreff, Me.rtNachricht, Me.rtAktuelles, Me.txtLogo, Me.txtNews, Me.txtAnlage, Me.cmbPrijoritaet.ListIndex
Else
MsgBox \”Sie müssen in die Felder \’An\’, \’Cc\’ oder \’Bcc\’ mindestens eine gültige E-Mail-Adresse eingeben\”, vbExclamation
End If
Next iBCC
Next iCC
Next iAN
MsgBox \”E-Mail wurde erfolgreich versandt\”, vbInformation
Unload MeEnd Sub
Hat jemand eine Idee, warum das nicht geht?
mfg
BenC5. August 2004 um 09:37 #79108lastwebpageModeratorHallo,
äh dumme Frage,aber wie soll das gehen????
For a=0 TO -1 (CB Leer)
IRGENDWAS
Next aIRGENDWAS,wird leider nicht ausgeführt…
mfg
Peter5. August 2004 um 18:54 #79148Mailer-DaemonTeilnehmerHallo,
so ganz blicke ich da nicht ohne weiteres durch. Vielleicht kommentierst Du Deine Codezeilen mal, dann wird das verständlicher. Auf jeden Fall fehlt da für mich der Bezug zum Namespace, also auf die Daten Deines persönlichen Ordners. Das kann aber in einer anderen Routine, die Du nicht gepostet hast passiert sein.
Ansonsten einfach mal probieren :
Dim ol, olns as Object
Set ol = createObject (\”Outlook.Application\”)
Set olns = ol.getnamespace (\”MAPI\”)Greetings from
your personal Mailer-DAEMON !...!5. August 2004 um 19:35 #79153lastwebpageModeratorIch weis leider nicht ob es sich da um einen logischen Fehler handelt,oder ob das Problem beim Funktions aufruf der Senden funktion besteht.Ich versuche mal das Listing zu \”verschönern\” (sorry für die C Kommentare)
Dim iAN As Integer, iCC As Integer, iBCC As Integer [i]//Variabeln definition [/i]
[i]// Überprüfen ob was in den Comboboxen steht,wenn ja die Adresseinträge durchlaufen[/i]
For iAN = 0 To cmbAN.ListCount – 1
For iCC = 0 To cmbCC.ListCount – 1
For iBCC = 0 To cmbBCC.ListCount – 1
[i] //prüfen ob überhaupt was in der Variabel steht,wenn JA Funktionsaufruf,wenn NEIN Fehlermeldung[/i]
If Trim(cmbAN.Value) <> \”\” Or Trim(cmbCC.Value) <> \”\” Or Trim(cmbBCC.Value) <> \”\” Then
EmailSenden Me.cmbAN.List(iAN), Me.cmbCC.List(iCC), Me.cmbBCC.List(iBCC), Me.txtBetreff, Me.rtNachricht, Me.rtAktuelles, Me.txtLogo, Me.txtNews, Me.txtAnlage, Me.cmbPrijoritaet.ListIndex
Else
MsgBox \”Sie müssen in die Felder \’An\’, \’Cc\’ oder \’Bcc\’ mindestens eine gültige E-Mail-Adresse eingeben\”, vbExclamation
End If
[i]//Schleifen beenden,Hinweis ausgeben,und Form schliessen [/i]
Next iBCC
Next iCC
Next iAN
MsgBox \”E-Mail wurde erfolgreich versandt\”, vbInformation
Unload MeEnd Sub
Sorry,im Moment fällt mir zu den For Schleifen nichts ein
[Editiert am 5/8/2004 von lastwebpage]
5. August 2004 um 22:25 #79168lastwebpageModeratorHallo nochmal,
je mehr ich darüber nachdenke,je verwirrter werde ich,da ich mir nicht sicher bin was da überhaupt passieren soll.
Du hast 3 Listfelder,wo der Benutzer jeweils keinen,einen oder mehrere Personen auswählen kann. Bei Klick auf einen Schalter soll dann die Mail an diese Personen verschickt werden.Stimmt das so?
mfg
Peter7. August 2004 um 13:55 #79237UnbekanntTeilnehmerHallo,
bitte entschuldigt alle, jetzt kommt der komplette Code:
[code]
Private Sub cmdSenden_Click()Dim iAN As Integer, iCC As Integer, iBCC As Integer
For iAN = 0 To cmbAN.ListCount – 1
For iCC = 0 To cmbCC.ListCount – 1
For iBCC = 0 To cmbBCC.ListCount – 1
If Trim(cmbAN.Value) <> \”\” Or Trim(cmbCC.Value) <> \”\” Or Trim(cmbBCC.Value) <> \”\” Then
EmailSenden Me.cmbAN.List(iAN), Me.cmbCC.List(iCC), Me.cmbBCC.List(iBCC), Me.txtBetreff, Me.rtNachricht, Me.rtAktuelles, Me.txtLogo, Me.txtNews, Me.txtAnlage, Me.cmbPrijoritaet.ListIndex
Else
MsgBox \”Sie müssen in die Felder \’An\’, \’Cc\’ oder \’Bcc\’ mindestens eine gültige E-Mail-Adresse eingeben\”, vbExclamation
End If
Next iBCC
Next iCC
Next iAN
MsgBox \”E-Mail wurde erfolgreich versandt\”, vbInformation
Unload Me
End SubPrivate Sub EmailSenden(sAn As String, Optional sCC As String, Optional sBCC As String, Optional sBetreff As String, Optional sNachricht As String, Optional sAktuelles As String, Optional sLogo As String, Optional sNews As String, Optional sDateiAnhang As String, Optional sPr As Long)
Dim sTempNachricht As String
Dim sTempAktuelles As String
Dim NachrichtOL As Object
Dim meinCC As Recipient
Dim meinBCC As Recipient
Set AppOL = GetObject(, \”Outlook.Application\”)
Set NameSpaceOL = AppOL.GetNamespace(\”MAPI\”)
Set NachrichtOL = AppOL.CreateItem(olMailItem)
Set meinCC = NachrichtOL.Recipients.Add(sCC)
meinCC.Type = 2
Set meinBCC = NachrichtOL.Recipients.Add(sBCC)
meinBCC.Type = 3
With NachrichtOL
.Recipients.Add sAn
.CC = sCC
.BCC = sBCC
.Subject = sBetreff
.Importance = sPrsTempNachricht = sNachricht
sTempNachricht = Replace$(sTempNachricht, vbCrLf, \”\”)
sTempNachricht = Replace$(sTempNachricht, vbNewLine, \”\”)
sTempNachricht = Replace$(sTempNachricht, \” \”, \” \”)sTempAktuelles = sAktuelles
sTempAktuelles = Replace$(sTempAktuelles, vbCrLf, \”\”)
sTempAktuelles = Replace$(sTempAktuelles, vbNewLine, \”\”)
sTempAktuelles = Replace$(sTempAktuelles, \” \”, \” \”).HTMLBody = \”{html}{body topmargin=\”\”0\”\” leftmargin=\”\”0\”\”}\” & Chr(13) & _
\”{table border=\”\”0\”\” width=\”\”100%\”\” cellspacing=\”\”10\”\” cellpadding=\”\”0\”\”}{tr}{td width=\”\”72%\”\” height=\”\”30\”\” valign=\”\”top\”\” align=\”\”left\”\” background=\”\”\” & sLogo & \”\”\”}\” & _
\”{/td}{td width=\”\”28%\”\” height=\”\”30\”\” valign=\”\”top\”\” align=\”\”left\”\” background=\”\”\” & sNews & \”\”\”}{/td}{/tr}{/table}\” & _
\”{table border=\”\”0\”\” width=\”\”100%\”\” cellspacing=\”\”10\”\” cellpadding=\”\”0\”\”}{tr}{td width=\”\”72%\”\” height=\”\”30\”\” valign=\”\”top\”\” align=\”\”left\”\”}\” & _
\”{font face=\”\”Avantgarde Bk Bt, Century Gothic, Arial, Verdana\”\” color=\”\”000000\”\” size=\”\”2\”\”}\” & sTempNachricht & \”{/font}{/td}\” & _
\”{td width=\”\”28%\”\” height=\”\”30\”\” valign=\”\”top\”\” align=\”\”left\”\”}{font face=\”\”Avantgarde Bk Bt, Century Gothic, Arial, Verdana\”\” color=\”\”000000\”\” size=\”\”2\”\”}\” & sTempAktuelles & \”{/font}{/td}\” & Chr(13) & _
\”{/tr}{/table}{/body}{/html}\”
If sDateiAnhang <> \”\” Then
.Attachments.Add Source:=sDateiAnhang, Position:=Len(txtAnlage) + 20
End If
.Send
End With
End Sub
[/code]mfg
BenCIch habe das mal editiert,damit keine Tabellen mittem im Code stehen.
die geschweiften Klammern sind eigendlich dreieckige,aber damit kommt das Forum anscheinend nicht klar.[Editiert am 7/8/2004 von lastwebpage]
7. August 2004 um 14:18 #79238lastwebpageModeratorHallo,
leider weis ich nicht ob es sich da um einen logischen Fehler handelt,oder ob die EMailSenden Methode nicht stimmt.
Also wie gesagt das mit den 3 For-Schleifen und der If Abrage kommt mir seltsam vor,
bin mir aber nicht sicher ob da deine Problem liegt oder woanders.mfg
Peter7. August 2004 um 14:52 #79239Mailer-DaemonTeilnehmerHallo,
also 2 Dinge die mir dazu einfallen sind :
1. zum testen gib mal in der EmAil Senden Routine statt .send .save ein. DAnn wird die mail gespeichert in Entwürfe und Du kannst Dir die mail mal näher anschauen.
2. Am ehesten gibt es ein Problem beim Aufruf der Senden Routine. Vielleicht klappt da die übergabe als String nicht (Felder San Sbcc Scc). Bin nicht ganz sicher, aber zum Ausprobieren vielleicht mal in der aufrufenden Routine und in der aufgerufenen Routine den Datentyp Variant benutzen (zum Testen).
Greetings from
your personal Mailer-DAEMON !...!7. August 2004 um 15:15 #79240lastwebpageModeratorHallo,
wie Mailer-Daemon schon sagte:
1.Teste diese Senden Routine erstmal einzeln,in dem du von Hand irgendwelche Werte vorgibst un diese dann aufrufst.
2.Dasselbe mit der cmdClick Funktion da würde ich den Aufruf der Senden Methode durch eine
geeignete MessageBox ersetzen.mfg
PeterIch weis aber immer noch nicht 100% wo eigentlich das Problem ist….
- AutorBeitrag
Das Thema ‘VBA Outlook 2000: Es wird keine Mail versandt’ ist für neue Antworten geschlossen.