Alle waarden van 1 veld in 1 string plaatsen

Status
Niet open voor verdere reacties.

bulendyasin

Gebruiker
Lid geworden
9 dec 2011
Berichten
48
Hoi,

Ik heb een tabel tblEmail met daarin 2 velden namelijk Mail_Id en Mail_to.
Mail_Id |Mail_to
1 | testmail1@email.com
2 | 2testmail@email.com
3 | 3testmail@email.com

Nu wil ik naar deze mails een report zenden maar heb een string nodig om de adressen in veld Mail_To achterelkaar te krijgen gescheiden met ";"
Ik heb een code gevonden waarmee ik ze achterelkaar krijg maar zonder een scheidingteken waar ik dus niks mee kan.
Dit is de code:
Code:
select iif(len([Mail_To]) >len([nextr]) ,[Mail_To] & [nextr],"") 
from (select Mail_To, dfirst("Mail_To","tblEmail","Mail_To<> '" & [Mail_To] & "' and Mail_Id>=" & [Mail_Id]) as nextr from tblEmail) as trz 
where iif(len([Mail_To]) >len([nextr]) ,[Mail_To] & [nextr],";") <>"";

resultaat:
testmail1@email.com2testmail@email.com3testmail@email.com

Maar wat ik moet hebben is:
testmail1@email.com;2testmail@email.com;3testmail@email.com

Ik gebruik Access 2010
Kan iemand me helpen
 
Ik heb je tabel en je query geïmporteerd in een db, en krijg een leeg resultaat (wat mij overigens niks verbaast als ik je query zo lees, maar dit terzijde). Ik zou zeggen: post een voorbeeldje waarin de query wél het resultaat dat je beschrijft oplevert, want ik kan dat niet reproduceren.
 
Hey Octafish,
Bedankt voor de snelle reactie,

Ik ben al uren bezig met dit, ik had dat formule gevonden op: http://www.access-programmers.co.uk/forums/showthread.php?t=213605
en het werkte vanmorgen nog maar ik weet niet wat ik heb gedaan maar krijg nu ook een leeg resultaat :(

Anyway wat ik probeer te doen is dus de emails die in het tabel tblEmail staan toe te voegen aan outlook.
Ik kan in de code wel de email adressen opnemen maar dan moet ik bij wijzigingen in de code gaan.
Code:
 DoCmd.SendObject acSendReport, "rptReport", "*.pdf", strTo, "", "", strSubject, strNumNameType

Waar je strTo ziet wil ik dus een code hebben dat de emails uit het tabel haalt met veld naam Mail_To.
Dus heb ik zoiets:
Code:
Dim strTo as String

strTo = Hier de code

DoCmd.SendObject acSendReport, "rptReport", "*.pdf", strTo, "", "", strSubject, strNumNameType
 
Laatst bewerkt:
Je hebt een beetje teveel weggehaald, want de query zit er niet bij. Maar die kan ik wel plakken. Maar afgezien daarvan: ik zou de rapporten mailen in een lus, dan kun je de mailing ook persoonlijk maken. Als je alle adressen in 1 string zet, kun je alleen een algemene mail versturen.
 
Het is ook de bedoeling dat iedereen hetzelfde mail krijgt.
Het programma dient namelijk om een report te verzenden naar iedereen in het betreffende column.
 
Ik heb het er ook niet over dat je iedereen een ander rapport stuurt, maar dat iedereen een persoonlijk geadresseerde mail krijgt op basis van de naamvelden.
 
Dat zou inderdaad wel mooi zijn, echter in dit geval is het niet noodzakelijk omdat de mail adressen groepsmails zijn.
Dus ze zijn niet persoonlijk maar meer afdeling gericht.
Maar ik zou beide opties wel willen zien (als het niet te veel werk is) om het te bestuderen en ervan te leren.
 
Ik heb het zelf gevonden:

Code:
Dim rst As DAO.Recordset
Dim strEmailAddress

Set rst = CurrentDb.OpenRecordset("Table1")

Do Until rst.EOF
  strEmailAddress = strEmailAddress & rst("EmailAddressFieldNameHere") & ","
  rst.MoveNext
Loop

strEmailAddress = Left(strEmailAddress, Len(strEmailAddress)-1)

DoCmd.SendObject , , acFormatRTF, strEmailAddress, _
, , strSubject, strEMailMsg, False, False

rst.Close
Set rst = Nothing
 
Ik hou er niet van om achteraf een string rücksichtslos 'op te schonen', want je weet nooit wat je weghaalt.
Code:
Do While Not rst.EOF
    If Not strEmailAddress & "" = "" Then strEmailAddress = strEmailAddress & ","
    strEmailAddress = strEmailAddress & rst("EmailAddressFieldNameHere")
    rst.MoveNext
Loop
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan