error trappen bij geen e-mailadres

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

scw

Gebruiker
Lid geworden
5 jun 2009
Berichten
530
Goedendag,

Graag wilde ik vragen of iemand een manier weet om de volgende error te 'trappen':

In bijgaand voorbeeld zit een form waarbij een outlook e-mailbericht wordt gegenereerd bij het drukken op de knop 'Opslaan'. Dat gaat goed, echter op het moment dat er in de tblPersonen geen e-mailadres staat ingevuld (probeer: Frans Bauer), gaat het mis. Access geeft dan de melding: Type MisMatch: "Cannot coerce parameter value. Outlook cannot translate your string."

Hoe kan ik dit oplossen met een nette MsgBox "Er is geen e-mailadres aanwezig voor 'Frans Bauer'. Vul een e-mailadres in" zonder dat ik weet welke Errornummer dit is?
En vervolgens dat de code wel doorgaat (dus wel een e-mailbericht weergeeft, maar dan e-mailadres To: (blanco)) en niet blijft haken op de error?

Bij voorbaat heel hartelijk dank,
scw :thumb:
 

Bijlagen

scw,

Voor dat ik een oplossing geef, graag even de vraag die nog openstaat is die afgehandeld of niet.
Indien Ja dan graag even op opgelost zetten.

Zet in de emailafhandeling de volgende code:

Code:
With objEmail
[B]  .To = IIf(IsNull(Rsr![E-mailadres]), "Blanco@hetnet.nl", Rsr![E-mailadres])[/B]  .Subject = "Voorbeeld"
  .Display
End With

Blanco is een verzonnen emailadres uiteraard ( vul hier maar wat in).

Groeten, Paul
 
Goedenavond Paul,

In de eerste plaats excuus dat ik de vraag nog niet van status had veranderd, dit bewust omdat ik eigenlijk nog even wat grondiger naar wilde kijken. Toch is het misschien handiger om te sluiten, dat zal ik meteen doen.

Dank voor je reactie. Hoe kan ik dan nog een MsgBox bij de IfNull functie doen? Ik probeer het zo:

Code:
.To = IIf(IsNull(Rsr![E-mailadres])) = True Then
MsgBox "Er is geen geldig e-mailadres ingevuld bij & Rsn!Naam & ", vbCritical, "Voorbeeld")

Maar Access geeft dan telkens de melding dat ik moet sluiten met aanhalingsteken. Het lukt me niet om de code juist te krijgen. Ook zou het mooi zijn als Access een Outlook e-mailbericht opent en dan als "", dus niks in de 'To' omdat die leeg is gelaten in de brontabel. Is dit mogelijk??
 
scw,

Als je IIf gebruikt dan geen Then gebruiken.
IIf heeft een waar en onwaar gedeelte.
Verder bij msgbox staan aanhalingstekens verkeerd en verwijs je naar rsr.Naam terwijl deze niet voorkomt in je recordset (kijk naar de strSQL)!

Hier de juiste code:
Code:
Set Con = Application.CurrentProject.Connection
stSql = "SELECT [E-mailadres], [Naam] FROM tblPersonen "
stSql = stSql & "WHERE [PersoonID] = " & Me!Afhandeling
Set Rsr = CreateObject("ADODB.Recordset")
Rsr.Open stSql, Con, 1

Set objOutlook = CreateObject("Outlook.application")
Set objEmail = objOutlook.CreateItem(olMailItem)

With objEmail
  If IsNull(Rsr![E-mailadres]) Then
    MsgBox "Er is geen geldig e-mailadres ingevuld bij: " & Rsr!Naam, vbCritical, "Voorbeeld"
    .To = ""
  Else
    .To = Rsr![E-mailadres]
  End If
  .Subject = "Voorbeeld"
  .Display
End With

Verder kom ik nog even terug op de code bij de vorige vraag over selectievakjes en printen.
In de regel met de rapportaanroep moet op het eind niet staan Me.DierId maar !DierId:

Code:
DoCmd.OpenReport "rapDieren1", acPreview, , "DierId=" & !DierId

Groeten, Paul
 
Perfect!

Bedankt Paul!

Het werkt nu helemaal zoals ik in gedachten had. Ik begrijp nu ook: geen Then gebruiken bij IIf. :thumb:

Nogmaals dank,

scw
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan