Selectief emailbestand versturen en lege berichten overslaan

Status
Niet open voor verdere reacties.

lammertc

Gebruiker
Lid geworden
30 nov 2002
Berichten
141
Hallo

Ik moet dagelijks een email maken voor een aantal transporteurs die mogelijk goederen zullen ontvangen.
De gegevens haal ik uit het ERP systeem en versturen doe ik met de volgende geconverteerde macro

Function Proc_010_MCR_voormelding_versturen()
On Error GoTo Proc_010_MCR_voormelding_versturen_Err
DoCmd.SetWarnings False
DoCmd.OpenQuery "2010_QryBepalenTeMeldenAdressen", acViewNormal, acEdit
DoCmd.SendObject acQuery, "Transport1", "HTML(*.html)", "info@transport.nl", "", "", "Voormelding Levering", "Hierbij ontvangt u de melding van leveringen op uw adres op de eerstvolgende werkdag", True, ""
Proc_010_MCR_voormelding_versturen_Exit:
Exit Function
Proc_010_MCR_voormelding_versturen_Err:
MsgBox Error$
Resume Proc_010_MCR_voormelding_versturen_Exit
End Function

Nu heb ik het probleem dat de uitkomst van de query vaak een leeg mailbericht opleverd, wat ik wil voorkomen.
Kan ik een of ander commando tussenvoegen dat voorkomt dat er lege mails worden opgebouwd,
of moet ik eerst een tussentabel maken van te verzenden mails, en die op een of andere manier versturen naar de bijbehorende transporteur?
Ik weet niet precies hoe dit aan te pakken, en oplossingen op dit forum lijken allemaal wel iets maar sluiten niet aan op wat ik wil.
Tot slot, ik ben nog steeds geen held op VBA gebied.

Alvast bedankt voor jullie tips

Lammert
 
je kan natuurlijk voordat je jemail opbouwt eerst kijken of je query records heeft:
Code:
Function Proc_010_MCR_voormelding_versturen()
   On Error GoTo Proc_010_MCR_voormelding_versturen_Err
   DoCmd.SetWarnings False
   DoCmd.OpenQuery "2010_QryBepalenTeMeldenAdressen", acViewNormal, acEdit

[COLOR="Red"]   if dcount("*","Transport1") = 0 then exit sub[/COLOR]

   DoCmd.SendObject acQuery, "Transport1", "HTML(*.html)", "info@transport.nl", "", "", "Voormelding Levering", "Hierbij ontvangt u de melding van leveringen op uw adres op de eerstvolgende werkdag", True, ""
   Proc_010_MCR_voormelding_versturen_Exit:
   Exit Function
Proc_010_MCR_voormelding_versturen_Err:
   MsgBox Error$
   Resume Proc_010_MCR_voormelding_versturen_Exit
End Function
Wat wil je met de query 2010_QryBepalenTeMeldenAdressen?

HTH:D
 
Hoi Guus,
Wat jij voorsteld is nou precies wat ik bedoel

Maar eerst jou vraag over de functie van de query "2010_QryBepalenTeMeldenAdressen?"
Hiermee selecteer ik uit een externe database de adressen die vandaag in aanmerking komen voor deze lijst.
Anders moet ik iedere keer on-line een trage database met ruim 300.000 records gaan raadplegen.
Nu maak ik eerst een tussentabel "TblDefinitieve adressen voormeldingen" aan waar ik de gegevens voor 5 of meer vervoerders verzamel.
Hierna ga ik vanuit deze tabel de eventuele gevonden adressen met een query versturen.
Staat een vervoerder niet in deze tabel dan hoeft hij dus ook geen email te ontvangen.

En dan komt jouw oplossing dus als geroepen als
if dcount("*","Transport1") = 0 then exit sub
er voor zorgt dat elke query eerst wordt getest of het vervoerdersnummer in de tabel "TblDefinitieve adressen voormeldingen" voorkomt, en zo niet, dat dan de volgende query wordt aangeroepen.
maar dan zal ik hier ook een soort van subroutine voor moeten aanmaken, en daar stranden mijn pogingen ......
Ik hoop dat je me een eindje verder kunt helpen

Alvast bedankt

Lammert
 
Begrijp ik het goed dat je al een tabel ("[TblDefinitieve adressen voormeldingen]") hebt met daarin de namen en emailadressen van de bedrijven die je wilt mailen?
Waarom gebruik je die dan niet als basis voor de email procedure? Door die tabel te openen, en door de records te loopen, verstuur je dan gelijk naar de juiste emailadressen.
Dus zoiets:
Code:
Sub Email()
With CurrentDb.OpenRecordset("SELECT * FROM [TblDefinitieve adressen voormeldingen]")
    If .RecordCount = 0 Then Exit Sub
    Do While Not .EOF
        DoCmd.SendObject acQuery, "Transport1", _
            "HTML(*.html)", "[EMAIL="info@transport.nl"]info@transport.nl[/EMAIL]", "", "", "Voormelding Levering", _
            "Hierbij ontvangt u de melding van leveringen op uw adres op de eerstvolgende werkdag", True, ""
        .MoveNext
    Loop
End With
End Sub
 
Hoi Michel
Idee is goed, maar ik krijg nog steeds lege emails.
volgens mij kijk jij of er IETS in de tabel staat om vervolgens te skippen.
In de tabel staan echter ALLE vervoerders en ALLE zendingen van vandaag die in aanmerking komen voor een melding
Er kunnen dus meerdere vervoerdersregels zijn en meerdere artikelregels per vervoerder.
Als het makkelijker is om een tabel per vervoerder te maken kan dat ook.
Ik probeer al twee dagen het bestandje mee te sturen, maar op één of andere manier wordt dit binnen onze bedrijfsomgeving geblokkeerd.:mad:
Als het helpt wil ik deze vanavond vanuit thuis wel even toevoegen.
 
Hoi Lammert,
Het was ook de bedoeling om het idee aan te dragen, en dan te hopen dat je er uit zo komen. De controle zou je namelijk moeten doen op de query die je gebruikt (denk ik) omdat je daarmee controleert wie een mailtje moet krijgen. Als je op het werk geen bestanden kunt uploaden, dan zou het misschien kunnen helpen om de optie <Schakel geavanceerd bijlage systeem in> uit te zetten in het menu <Instellingen> Deze optie staat helemaal onderin in het menu <Wijzig Opties>. Ik had namelijk hetzelfde probleem op het werk. Nadat ik de optie uit had gezet lukte het weer wel.
Anders mag je de db ook wel mailen.
 
Laatst bewerkt:
Hoi Michel,
Ik stuur je het bestand nu alvast op, en probeer het alsnog vanavond hier op het forum te zetten

bedankt
 
Ben niet ongeduldig hoor,
maar heeft iemand al eens een helder idee gekregen waar ik mee uit de voeten kan???
 
Ik heb er wel naar gekeken, maar ik kan niet zo goed uit de voeten met de bestanden, omdat er te weinig data in de tabellen staat. Ik heb geen tijd gehad om data in te kloppen, want ik weet niet wat wel en niet nodig is... Als je de db Data nog eens zou kunnen posten met wat dummy records, dan kunnen we wat makkelijker zien wat er moet gebeuren.
 
Zal er weer mee gaan stoeien! Overigens is het misschien beter om de topic weer van Opgelost af te halen; nu kijken er misschien mensen overheen.
 
Ik krijg in de query [2010_QryBepalenTeMeldenAdressen] op geen enkele manier output; ook niet als ik alle criteria weghaal, en dus alle records zou moeten kunnen terugvinden. Enig idee? Overigens zit er onder de knoppen op je formulier dus geen code; ik neem aan dat je daar die macro mee opstart?
 
Klopt, onder de knoppen alleen macro

Ik ga thuis even kijken waarom er geen output komt
Gisteravond geprobeerd en vlgs mij lukte het toen wel maar ik kan me vergissen
 
Ga ik ook weer even werken ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan