Acces voegt bijlage niet bij e-mail

Status
Niet open voor verdere reacties.

Wappiewijf

Gebruiker
Lid geworden
8 apr 2011
Berichten
6
Goedendag,

Ik heb een probleem met Access. Wij gebruiken op het werk allemaal dezelfde database en wij sturen hiermee ook excelbestanden als bijlage.

Bij alle collega's lukt dit, maar bij mij wordt de bijlage niet toegevoegd aan de e-mail. Ik weet niet of dit aan Access ligt, of eventueel aan mijn outlook.

Heeft iemand eventueel een oplossing voor dit probleem?

Groetjes!
 
Je geeft te weinig informatie vrees ik. Om te beginnen: krijg je een foutmelding als je een mail verstuurt? Wordt het excel bestand wel aangemaakt? (ik ga er vanuit dat er eerst een export wordt gedaan)
 
Goedemiddag,

Alles werkt hetzelfde als bij mijn collega´s. We krijgen allemaal een waarschuwing dat we willen gaan e-mailen en of we akkoord hiervoor geven. Indien mijn collega's op ja klikken, wordt er een e-mail verstuurd met als bijlage een excel bestand.

Als ik echter op ja klikt wordt er een e-mail verstuurd maar dan zonder excel bestand.

Ik ga er vanuit dat het excel bestand wordt aangemaakt, omdat we allemaal dezelfde database gebruiken op het werk. Hoe kan ik dat zien of dit eventueel niet zo zou zijn?

Groetjes!
 
Dat is dus de vraag.... bij jou wordt er een email verzonden zonder bijlage. De vraag is dus, of dat aan de mail ligt, of aan Access. In het laatste geval wordt het bestand niet gemaakt of gevonden, in het eerste geval ligt het aan Outlook. Als er iets verkeerd gaat, moet je nergens vanuit gaan, maar alle stappen doorlopen die tot de fout leiden...
 
Ik kan niet zien waar het aan ligt. Onze IT afdeling snapt het al niet, dus vandaar dat ik hier de vraag stel.

Ik weet niet of jij opties heb, waar ik kan kijken waar het fout gaat?
 
Je geeft nog te weinig informatie om te kunnen zien waar het eventueel fout kan gaan. Als je het proces opstart via een knop, kun je proberen of je in de Stap-modus kunt zien welke stap niet goed wordt uitgevoerd. Ik ga er dus nog steeds even van uit dat je in het hele proces een excel bestand aanmaakt. Om dat te kunnen checken, moet je wel bij de VBA kunnen van de knop. In het ontwerpscherm van het betreffende formulier selecteer je de knop, kies je <Eigenschappen>, tabblad <Gebeurtenissen> en klik je achter de regel <Bij klikken>. Daarin staat vermoedelijk de tekst <[Gebeurtenisprocedure]>. Als je op de knop met de drie puntjes klikt, kom je in de VBA code terecht van de knop. Daar staan een aantal opdrachtregels. Welke weet ik uiteraard niet. Als je op een van de eerste regels gaat staan, en op <F9> klikt, wordt die regel rood, en verschijnt er een balletje in de linker vensterbalk. De code staat nu in Stap-modus. Als je de knop (vanuit het access venster kun je het formulier nu uitproberen) nu start, zal Access alle regels uitvoeren tot de regel die je met <F9> hebt gemarkeerd. Als je bij elke volgende regel op <F8> klikt, wordt die regel uitgevoerd. Op deze manier kun je dus precies zien wat wèl, en wat niet wordt uitgevoerd, en je kunt variabelen uitlezen door de muis er boven te hangen.
Doe dat dus eerst, en probeer te achterhalen wat er eventueel fout gaat.
Je kunt, om het ons makkelijker te maken, de code ook kopieëren en hier posten, dan kunnen we gelijk misschien al zien wat er fout zou kunnen gaan. Maak in dat geval de code wel op met de Code knop (knop #) zodat hij goed leesbaar is.
 
Heb je iets aan deze code? Ik ben echt een leek met Acces.


Private Sub cmdMail_Click()
On Error Resume Next
Dim rstLevMail As Recordset, strBestandsNaam As String
Dim objMailBox As Outlook.Application
Dim objMail As Outlook.MailItem
If IsNull(Me.txtFilterLeverancier) = True Or Me.txtFilterLeverancier = "" Then
MsgBox "Selecteer eerst een leverancier."
Exit Sub
End If
DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE * FROM tblTempReclamaties")
DoCmd.RunSQL ("INSERT INTO tblTempReclamaties ([glasherstelopdracht id], datum, [barcode filiaal], filiaalnr, volgnr, " & _
"omschrijving, [glasherstelopdracht code id], leverancier, [glasherstelopdracht oplossing id], [datum retour filiaal]) " & _
"SELECT [glasherstelopdracht id], datum, [barcode filiaal], filiaalnr, volgnr, omschrijving, [glasherstelopdracht code id], " & _
"leverancier, [glasherstelopdracht oplossing id], [datum retour filiaal] FROM qryReclamatiesGlasHerstelOpdracht " & strWhere)
DoCmd.SetWarnings True
Set rstLevMail = CurrentDb.OpenRecordset("SELECT * FROM [GlasHerstelOpdracht Leverancier] WHERE Leverancier Like '" & Me.txtFilterLeverancier & "*'")
strBestandsNaam = "C:\Audio\" & Format(Now, "yyyymmddhhmmss") & "Reclamatie" & rstLevMail!strLeverancierBestandNaam

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "qryReclamatiesMailen", strBestandsNaam

Set objMailBox = New Outlook.Application
Set objMail = objMailBox.CreateItem(olMailItem)
objMail.To = rstLevMail!strEmailAdres
objMail.CC = "customer.service"
objMail.Subject = "Reclamatie Herstelopdrachten van datum: " & Date
objMail.Attachments.Add strBestandsNaam
objMail.Body = "LS, " & Chr(10) & Chr(13) & Chr(10) & Chr(13) & " Bij deze zenden wij u de glasherstelopdrachten van datum: " & Date & Chr(10) & Chr(13) & Chr(10) & Chr(13) & _
"Met vriendelijke groet, " & Chr(10) & Chr(13) & Chr(10) & Chr(13) & "Customer Service" & Chr(10) & Chr(13) & "OptiChains B.V." & Chr(10) & Chr(13) & "Gorinchem"
objMail.Send

If Err.Number = 287 Then MsgBox "U heeft het versturen van de mail afgebroken."
End Sub
 
Blijkbaar heb je mijn laatste opmerking niet gezien ;)

Als het ergens fout gaat, is het bij de blauwe regel.
Als je deze code gebruikt als vervanging van de oorspronkelijke krijg je een Messagebox die de naam van je bijlagebestand laat zien. Controleer op de aangegeven plek dus of daar inderdaad een bestand staat.

Code:
Private Sub cmdMail_Click()
On Error Resume Next
Dim rstLevMail As Recordset, strBestandsNaam As String
Dim objMailBox As Outlook.Application
Dim objMail As Outlook.MailItem
Dim cr As String
cr = Chr(10) & Chr(13)

If IsNull(Me.txtFilterLeverancier) = True Or Me.txtFilterLeverancier = "" Then
    MsgBox "Selecteer eerst een leverancier."
    Exit Sub
End If

DoCmd.SetWarnings False
DoCmd.RunSQL ("DELETE * FROM tblTempReclamaties")
DoCmd.RunSQL ("INSERT INTO tblTempReclamaties ([glasherstelopdracht id], datum, [barcode filiaal], filiaalnr, volgnr, " & _
    "omschrijving, [glasherstelopdracht code id], leverancier, [glasherstelopdracht oplossing id], [datum retour filiaal]) " & _
    "SELECT [glasherstelopdracht id], datum, [barcode filiaal], filiaalnr, volgnr, omschrijving, [glasherstelopdracht code id], " & _
    "leverancier, [glasherstelopdracht oplossing id], [datum retour filiaal] FROM qryReclamatiesGlasHerstelOpdracht " & strWhere)
DoCmd.SetWarnings True
Set rstLevMail = CurrentDb.OpenRecordset("SELECT * FROM [GlasHerstelOpdracht Leverancier] WHERE Leverancier Like '" & Me.txtFilterLeverancier & "*'")
strBestandsNaam = "C:\Audio\" & Format(Now, "yyyymmddhhmmss") & "Reclamatie" & rstLevMail!strLeverancierBestandNaam

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "qryReclamatiesMailen", strBestandsNaam

[B][COLOR="blue"]Dim tmp
tmp = InputBox("", "Bestandsnaam", strBestandsNaam)[/COLOR][/B]
Set objMailBox = New Outlook.Application
Set objMail = objMailBox.CreateItem(olMailItem)
objMail.To = rstLevMail!strEmailAdres
objMail.CC = "customer.service"
objMail.Subject = "Reclamatie Herstelopdrachten van datum: " & Date
objMail.Attachments.Add strBestandsNaam
objMail.Body = "LS, " & cr & cr & " Bij deze zenden wij u de glasherstelopdrachten van datum: " & Date & cr & cr & _
"Met vriendelijke groet, " & cr & cr & "Customer Service" & cr & "OptiChains B.V." & cr & "Gorinchem"
objMail.Send

If Err.Number = 287 Then MsgBox "U heeft het versturen van de mail afgebroken."
End Sub
 
Sorry, ik ben niet helemaal thuis met forums en dergelijke!

Ik heb het toegevoegd, en in de map gekeken wat de messagebox aan gaf en het bestand wordt wel aangemaakt.
 
Dat is ergens wel jammer, want nu zit het probleem dus ergens anders :) Probeer eens i.p.v. objMail.Send objMail.Display; je krijgt de mail dan te zien, dus ook de bijlage. Ik gebruik de constructie zelf ook, en bij mij heb ik nooit problemen. Je krijgt dan zoiets:

Code:
With objMail
    .To = rstLevMail!strEmailAdres
    .CC = "customer.service"
    .Subject = "Reclamatie Herstelopdrachten van datum: " & Date
    .Attachments.Add strBestandsNaam
    .Body = "LS, " & cr & cr & " Bij deze zenden wij u de glasherstelopdrachten van datum: " & Date & cr & cr & _
        "Met vriendelijke groet, " & cr & cr & "Customer Service" & cr & "OptiChains B.V." & cr & "Gorinchem"
    .[B][COLOR="blue"]Display[/COLOR][/B]
End With
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan