[Access] Een mailinglist opzetten*

Pagina: 1
Acties:

  • Mad_Cow
  • Registratie: Februari 2002
  • Laatst online: 14-03 13:39
Ik heb een lijst met namen en email adressen die zijn gecategoriseerd op type. Nu wil ik graag een button op mijn formulier krijgen waarbij ik de categorie kan kiezen en dat acces dat een email venster opent waarin alle bijbehorende email adressen in de BCC header komen.

Het zoeken op google leverde alleen functies op waarbij er een email naar 1 persoon gestuurt kan worden, maar ik weet niet hoe ik van een lijst van email adressen een string kan maken gescheiden door kommas.

  • Boss
  • Registratie: September 1999
  • Laatst online: 14:21

Boss

+1 Overgewaardeerd

Een lijst kan je maken door een recordset-object door te lopen met een loopje, en vervolgens alle adressen met een , ertussen aan elkaar plakken.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Mad_Cow
  • Registratie: Februari 2002
  • Laatst online: 14-03 13:39
eeehhh, ik heb echt nul ervaring met access programmeren of VB of wat dan ook (eigenlijk kan ik alleen matlab programmeren) heb je misschien een klein voorbeeldje?

  • Noork
  • Registratie: Juni 2001
  • Niet online
Mad_Cow schreef op woensdag 06 september 2006 @ 13:15:
eeehhh, ik heb echt nul ervaring met access programmeren of VB of wat dan ook (eigenlijk kan ik alleen matlab programmeren) heb je misschien een klein voorbeeldje?
Je kan het ook omkeren, als jij wat probeert, dan krijg je daarna vast wel wat hulp op Got.

  • Boss
  • Registratie: September 1999
  • Laatst online: 14:21

Boss

+1 Overgewaardeerd

Opzetje om je op weg te helpen:

Visual Basic:
1
2
3
4
5
6
7
8
9
Dim rs as Recordset
Dim sAdressen as Strin
  set rs = currentdb.openrecordset("SELECT e-mail FROM tabel-met-emailadressen WHERE criteria")
  rs.First
  while not rs.eof
    sAdressen = sAdressen & rs!e-mailadres & ";"
    rs.next
  wend
rs.close


Succes ermee.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Mad_Cow
  • Registratie: Februari 2002
  • Laatst online: 14-03 13:39
Super! harstikke bedankt het is gelukt
.

Dit is hoe ik het nu heb gedaan:

Dim rs As Recordset
Dim sAdressen As String

Set db = CurrentDb()
Set rs = db.OpenRecordset("SELECT [Email] FROM Memberlist")

rs.MoveFirst
While Not rs.EOF
sAdressen = sAdressen & rs!Email & ";"
rs.MoveNext
Wend
rs.Close

On Error GoTo prima
DoCmd.SendObject , , acFormatRTF, "mijneigenemailhier", , sAdressen, "Nieuw onderwerp", "", True

prima:
End Sub


Nogmaals bedankt

  • RealBase
  • Registratie: September 2000
  • Laatst online: 06-05 22:12

RealBase

Just laughin'

Nu gebruik ik de volgende oplossing:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Compare Database
Option Explicit


Public Function SendEmail()
Dim rs As DAO.Recordset
Dim sEmailTo As String

Set rs = CurrentDb.OpenRecordset("SELECT Emailadres FROM leden WHERE LIDNUMMER > 10 AND LIDNUMMER < 110")

'Create a semicolon separated list of email addresses
Do Until rs.EOF
sEmailTo = sEmailTo & rs("Emailadres") & ";"
rs.MoveNext
Loop

'Strip off the last semicolon
sEmailTo = Left(sEmailTo, Len(sEmailTo) - 1)

DoCmd.SendObject acSendNoObject, "", "", "Leden <mooimailadres@in-to-veld.nl>", , sEmailTo, "", "", True

End Function


Maar het vervelende is dat dit een limiet heeft van maximaal 100 emailadressen.
Als ik meer dan 100 emailadressen gebruik (dus de mail wil verzenden naar 200 leden)
dan klapt ie d'r uit met de melding:
Run-time error '2290':
There were too many message recipients; the message was not sent.
heb me al suf gegoogled, maar heb niets kunnen vinden.
Weet iemand een script om dit op te lossen? Door bijvoorbeeld het script/mailverzending te splitsen in verschillende stukken? Of een methode om Access te vertellen dat ie niet zo moet zeuren..


De functie twee keer aanroepen is geen optie, omdat lidnummer fluctueren door de jaren heen (loopt alleen maar op).
Daarnaast moeten mails worden verstuurd naar lidnummers van bijv 100-120 en van 300-320
(iedere keer gaat het dus ongeveer 20 over het limiet heen)

[ Voor 9% gewijzigd door RealBase op 01-10-2006 22:10 ]

Life is like a BOX of Chocolates, You'll never know what the HELL you're gonna get......


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

tellertje mee laten lopen?
Visual Basic:
1
2
3
4
5
6
7
8
     while not rs.eof
            i=0
            while not rs.eof and i<100
                 i=i+1
                 sEmailTo =  etc
            wend
            sendmail
     wend


of uiteraard:
Visual Basic:
1
    application.nagmode=false

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1