Link to home
Start Free TrialLog in
Avatar of Addie Baker
Addie BakerFlag for United States of America

asked on

Need to Send a Certain amount of pictures as attachments via Email in Access 2010

i am using the following code to generate an email from my form by clicking a button

What i need it this

the txtSearchBAM value will determine what pictures to send

but that value has anywhere from 1 to 15 pictures...

All pictures are located at this address
C:\Users\Addie\Desktop\Droid\Database\

The next folder is the BAM number and then that folder contains the pictures...

how can i make this code send to how many ever pictures are in the specified folder?
Dim objOutlook As Outlook.Application
    Dim objOutlookMsg As Outlook.MailItem
    Dim objOutlookRecip As Outlook.Recipient
    Dim objOutlookAttach As Outlook.Attachment
    Dim TheAddress As String

    Set objOutlook = CreateObject("Outlook.Application")
    
    Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
            Set objOutlookRecip = objOutlookMsg.Recipients.Add(Me![txtSendemail])
    
    With objOutlookMsg
        objOutlookRecip.Type = olTo
        
        .Subject = Me.txtMake.Value & "Pictures From Baker Abilene Machine" ' can be a text box on form
        .Body = "Sending many photos" ' can be a text box on form
        
        Set objOutlookAttach = .Attachments.Add("C:\Users\Addie\Desktop\Droid\Database\" & (Me.txtSearchBAM.Value) & "\1.jpg")
        Set objOutlookAttach = .Attachments.Add("C:\Users\Addie\Desktop\Droid\Database\" & (Me.txtSearchBAM.Value) & "\2.jpg")
        ' repeat for images
        .Send
    End With
    Set objOutlookMsg = Nothing
    Set objOutlook = Nothing

Open in new window

Avatar of Scott McDaniel (EE MVE )
Scott McDaniel (EE MVE )
Flag of United States of America image

You can use the Dir function to loop through:

Dim sFile As String

sFile = Dir("C:\Users\Addie\Desktop\Droid\Database\" & (Me.txtSearchBAM.Value) & "\*.jpg")

Do Until Len(sFile)=0
    .Attachments.Add("C:\Users\Addie\Desktop\Droid\Database\" & (Me.txtSearchBAM.Value) & "\" & sFile)
  Dir
Loop

Avatar of Addie Baker

ASKER

Getting this error on the .attachments.Add LINE

Run-time error -2147467259 (80004005)

Cannot create file: 1.jpg. right-click the folder you want to create the file in and then click properties on the shortcut menu to check you permissions for the folder

oh and i do get the security alert from outlook before it gives me the error...
<No Points wanted>

..."oh and i do get the security alert from outlook before it gives me the error."
This is unrelated to your main question , but I will address it here.

This is the Outlook Automation Security popup.
It can be bypassed by using a product like this:
 http://www.contextmagic.com/express-clickyes/
...Or by using a product that bypassed the entire Oultook Client issue (LSM can tell you more some of these products)

;-)

JeffCoachman
I use vbMAPI from www.everythingaccess.com. It's simple and intuitive, and will take care of the security prompt.

Did you do as the error message suggested and check the Folder permissions? It looks as if you're on a Vista or Win7 box, so be very careful where you place these items. It looks as if you're attempting to "create" a file in some fashion

Check the format of your string. To do that, add this line immediately before your Attachment add line:

Debug.Print C:\Users\Addie\Desktop\Droid\Database\" & (Me.txtSearchBAM.Value) & "\" & sFile

This will print the fully formed string to the Immediate window. Paste that value back here.

okay, changed my locations around a bit to match what i needed and below is what i have

i get the following error when attempting to send

Run time Error 5
Invalid procedure call or argument
-highlights Dir

IF i remove the Dir i get the following error
run time error 2147467259 (800004005)
the attachment size exceeds the allowable limit
-highlights the attachment line
sFile = Dir("Z:\BAMEQ\" & (Me.txtSearchBAM.Value) & "\*.jpg")

    Do Until Len(sFile) = 0
    .Attachments.Add ("Z:\BAMEQ\" & (Me.txtSearchBAM.Value) & "\" & sFile)
     Dir
    Loop

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Scott McDaniel (EE MVE )
Scott McDaniel (EE MVE )
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
It worked that time with the fixed code....

not to try to disable security warning...

thanks for your help :)
boag2000's method worked great to bypass security.. thanks