Mail versturen naar persoon in listbox

Status
Niet open voor verdere reacties.

stefanaccess

Nieuwe gebruiker
Lid geworden
13 okt 2009
Berichten
4
hallo

Ik doe op het moment een project binnen access waarin een email moet worden verstuurd met outlook. Om de email te versturen naar een ingevulde emailadres lukt wel, maar het is de bedoeling dat de mail naar verschillende personen wordt verstuurd afhankelijk van een listbox.

Dit dacht ik te doen doormiddel van een listbox en dan de namen definiëren aan het adres. Dus als ik in de listbox de naam "PHEID" heb geselecteerd dan moet de mail versturen aan "Leraar1@hotmail.com" en als er in de listbox CEEM staat geselecteerd moet de mail worden verstuurd naar "student1@hotmail.com"

Nu is mijn vraag hoe kan ik bij het gedeelte "to = " de selectie laten pakken van de listbox (cbotutor)?

Als ik nu op de "commandbutton" druk word de mail altijd verzonden naar het eerste email adres "Leraar1@hotmail.com"

===========================================================================================================
Private Sub Knop45_Click()

On Error Resume Next
Dim OutApp As Object
Dim OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail

If cbotutor = "PHEID" Then

.to = "Leraar1@hotmail.com"
.subject = "Presentielijst"
.Body = "De Presentielijst is toegevoegd in de bijlage"
.Attachments.Add "C:\Documents and Settings\Administrator\Bureaublad\registratie\presentielijst.txt"
.Send

End If

If cbotutor = "CEEM" Then

.to = "student1@hotmail.com"
.subject = "Presentielijst"
.Body = "De Presentielijst is toegevoegd in de bijlage"
.Attachments.Add "C:\Documents and Settings\Administrator\Bureaublad\registratie\presentielijst.txt"
.Send

End If


End With

Exit_Knop45_Click:
Exit Sub

Err_Knop45_Click:
MsgBox Err.Description
Resume Exit_Knop45_Click


End Sub
===========================================================================================================

Bij voorbaad dank.
Stefan
 
Om te beginnen: de waarden die je uit de listbox haalt, komen die uit een tabel? En zo ja, heb je in die tabel ook het email adres staan? Of kun je het email adres koppelen uit de tabellen?

Als dit allemaal Ja-tjes oplevert, dan kun je aan de keuzelijst het email adres toevoegen, en later weer uitlezen. De constructie wordt daarmee een stuk simpeler.
Er even voor het gemak van uitgaande dat je het emailadres in de derde kolom van de keuzelijst hebt staan, krijg je dit:

Code:
Private Sub Knop45_Click()

On Error Stoppen
Dim OutApp As Object
Dim OutMail As Object
dim sEmail as String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

sEmail=Me.cboTutor.Column(2)
With OutMail
	.to = sEmail
	.subject = "Presentielijst"
	.Body = "De Presentielijst is toegevoegd in de bijlage"
	.Attachments.Add "C:\Documents and Settings\Administrator\Bureaublad\registratie\presentielijst.txt"
	.Send
End With
Exit Sub

Stoppen:
MsgBox Err.Description

End Sub

Anders kun je het zo oplossen:

Code:
Private Sub Knop45_Click()

On Error Stoppen
Dim OutApp As Object
Dim OutMail As Object
dim sEmail as String

Select Case Me.cboTutor
	Case "PHEID" 
		sEmail = "Leraar1@hotmail.com"
	Case "CEEM" 
		sEmail = "student1@hotmail.com"
	Case "DERDEWAARDE" 
		sEmail = "DerdeEmail@hotmail.com"
	Case Else
		sEmail = "GeenAdres"
	End Select

If sEmail <> "GeenAdres" Then
	Set OutApp = CreateObject("Outlook.Application")
	Set OutMail = OutApp.CreateItem(0)

	With OutMail
		.to = sEmail
		.subject = "Presentielijst"
		.Body = "De Presentielijst is toegevoegd in de bijlage"
		.Attachments.Add "C:\Documents and Settings\Administrator\Bureaublad\registratie\presentielijst.txt"
		.Send
	End With
End If

Exit Sub

Stoppen:
MsgBox Err.Description

End Sub
 
Laatst bewerkt:
Het is inmiddels opgelost, het werkte niet doordat er geen focus stond ingesteld op de tabel "cbotutor"
het enige wat er moest worden bijgezet was "cbotutor.SetFocus"

Maar ik zie dat jou manieren erg veel overbodige code scheelt :)
Ik werk inderdaad vanaf een tabel waar ook de emails opstaan (en dit zijn er in mijn geval 13 dus zou op mijn manier een hoop code worden)

dankjewel voor de oplossingen! Ik ga er gelijk even naar kijken.

Stefan
 
Laatst bewerkt:
Ik heb ze beide geprobeerd, de tweede werkt gelijk:thumb:, Alleen zou de eerste optie nog mooier zijn.
Het probleem bij de eerste optie is dat deze wil gaan versturen maar dit gebeurd niet omdat er geen mailadres aan sEmail is toegevoed.

Als ik een onderbrekingspunt neerzet en mijn muis houd op "sEmail = Me.cbotutor.Column(6)" dan staat er "sEmail = Me.cbotutor.Column(6) = Null"
Terwijl in de tabel "Cbotutor" wel op de 6e kolom de adressen staan.

Komt dit doordat VB misschien niet weet welke rij van kolom 6 er toegevoegd moet worden?
 
Je bent slachtoffer geworden van de nummertruc van VBA :)
De optie Column(#) begint namelijk te nummeren bij 0; de eerste kolom heeft dus de waarde 0, de tweede de waarde 1, en de zesde de waarde 5.
Omdat je Column(6) opvraagt, krijg je dus niks, want die heb je waarschijnlijk niet.
 
Opgelost! dat was inderdaad het probleem.
Je hebt me super geholpen! dank daarvoor:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan