Solved

Access Run-Time build give broken or missing reference on Outlook 2003 machines

Posted on 2009-04-03
21
1,169 Views
Last Modified: 2013-11-27
I have packaged my application and everything worked beautiful on all of the PC's in my office.  I installed on a PC in a remote office which runs Office 2003 and it fails.  I know the error is coming from outlook but I do not know why or how to fix it.  I use the DoCmd.SendObject command in several cases in the db application.  The error says:

Your XXXX database or project contains a missing or broken reference to the file 'UMOUTL~1.DLL'

I have searched and searched but cannot find any solutions to this one.  There were a couple articles on EE but i did not get a fix out of them.  Steps I have taken so far is to make sure there are no missing references (OK), Check to make sure Outlook 12 is not ticked in references (OK).  I am dumbfounded at this issue, can someone point me in the right direction?  I have to have a solution by Monday AM.  Attached is a screen of all the ticked references in the project.
ticked-refs.gif
0
Comment
Question by:pskeens
  • 11
  • 10
21 Comments
 
LVL 18

Expert Comment

by:jmoss111
ID: 24065834
You said the remote office runs Office 2003 with Outlook 11. I'll bet that you're running Office 12 locally and have Outlook 12 installed.  I don't know but imagine that your app is looking for the OL12 libraries for the Docmd.SendObject. You may have to use a module for the email and use late binding for Outlook so that specific version wont have to be early bound.
0
 
LVL 2

Author Comment

by:pskeens
ID: 24067198
Yes I do have outlook 12 installed on my PC and they are running 11.  I am not sure exactly how to do what you are suggesting.  Can you provide a bit more details?  Much appreciated.
0
 
LVL 18

Accepted Solution

by:
jmoss111 earned 500 total points
ID: 24067283
Its been a long time (9 years) since I used the method that you're using for emailing and I don't know but I think that Access just opens a message in Outlook and then goes on about its business. It appears that Access is passing some info that is concerned with the specific version that it was developed on. I've never  used Access 2007 runtime builder but that appears to be whats happening in your case.

I use a method of email that doesn't use Outlook and won't generate the Outlook security messages when trying to email and that is SMTP. I'll attach a simple code module that should work for you and allows an attachment.

Regards,

Jim
Public Sub SendAPStats()

'=====================================================================================

Dim db As dao.Database

Dim ThsDay As String

Dim ThisDay As String

Dim ThisYY As String

Dim ThisMM As String

Dim ThisDD As String

Dim strTo As String

 

Dim strFrom  As String

Dim strTitle As String

Dim rs As Recordset

Dim strMailTo As String

 

Dim txtAttach4 As String

Dim fRetVal As Boolean

Dim strSubj As String

Dim strBody As String

Dim strNoAddr As String

 

Dim strDate As String

Set db = CurrentDb

ThisDay = Date$

ThsDay = Right([ThisDay], 4) & Left([ThisDay], 2) & Mid([ThisDay], 4, 2)

strDate = ThsDay

'=====================================================================================

Dim cdoMessage As Object

Dim objCDOMail As Object

Dim strschema As String

On Error GoTo NoAddr 'ErrorHandler ' Enable error-handling routine.

'======================================================================================

           

            strTo = "one@two.com"

            

            strFrom = "two@three.com"

            'End If

            'If Rs!Email3 Is Not Null Then

                'strCC = strCC & " ; " & Rs!Email3

            'End If

            strSubj = "AP Contact List - " & strDate

            strBody = "See attached"

            'strBCC = Rs!PlantEmailBCC

          ' Enter path to documents to be attached -----------------------------------------

            'txtAttach4 = "C:\Acct\IC_Data\EmailOutputQueue\APAging\APAgingEmailLog_" & strDate & ".xls"

            'sPathFile = txtAttach4

              ' Create the message.

 

            Set cdoMessage = CreateObject("CDO.Message")

            Set objCDOMail = CreateObject("CDO.Configuration")

            strschema = "http://schemas.microsoft.com/cdo/configuration/"

            objCDOMail.Load -1 ' CDO Source Default

            'If you have illegal or wrong smtp address here it will run for 30-60

            'seconds and finally give transport error

            With objCDOMail.Fields

                            .Item(strschema & "sendusing") = 2 ' cdoSendUsingPort

                            .Item(strschema & "smtpserver") = "999.999.999.999" ' "Your SMTP server address here"

                            .Item(strschema & "smtpserverport") = 25 'specify port number

                            .Item(strschema & "smtpconnectiontimeout") = 120

 

                            .Update

            End With

 

            With cdoMessage

                Set .Configuration = objCDOMail

                    .To = strTo

                    .From = strFrom

                    

DoSubject:

                    

                    .Subject = strSubj

                    .TextBody = strBody

                    .AddAttachment txtAttach4

                    

                    .send

            End With

            

            Set cdoMessage = Nothing

            Set objCDOMail = Nothing

            GoTo ImDone ' Exit to avoid handler.

            

NoAddr:

ErrorHandler: ' Error-handling routine.

            Debug.Print Err.Number & "-" & Err.Description

            Set cdoMessage = Nothing

            Set objCDOMail = Nothing

            

ImDone:

            

            DoCmd.Quit

End Sub

Open in new window

0
 
LVL 2

Author Comment

by:pskeens
ID: 24069462
If I am emailing a report within Access what would the path be in this part of the code?

' Enter path to documents to be attached -----------------------------------------
            'txtAttach4 = "C:\Acct\IC_Data\EmailOutputQueue\APAging\APAgingEmailLog_" & strDate & ".xls"
            'sPathFile = txtAttach4
              ' Create the message.
0
 
LVL 18

Expert Comment

by:jmoss111
ID: 24069507
Path to where excel file is stored.
0
 
LVL 2

Author Comment

by:pskeens
ID: 24069529
Its not an excel file though.  I am sending a report that is within Access itself.  Report is called "RLM Issue", and its not outputted anywhere, it just opens the report and sends when needed.  Thanks
0
 
LVL 18

Expert Comment

by:jmoss111
ID: 24069543
Attach whatever file type you want to attach; but you have to have a file to attach unless you want to insert into the body of the mail.
0
 
LVL 2

Author Comment

by:pskeens
ID: 24069547
So would this be correct?

            txtAttach4 = "RLM Issue"
            sPathFile = txtAttach4
0
 
LVL 2

Author Comment

by:pskeens
ID: 24069717
NeverMind.  I added the following code and it seems to work so far.

One more question.  What would be a good solution for having a common SMTP server to send these emails from?  I don't want to use the company SMTP address because all offices does not use the same one.  Any ideas?

Dim db As dao.Database

Dim ThsDay As String

Dim ThisDay As String

Dim ThisYY As String

Dim ThisMM As String

Dim ThisDD As String

Dim strTo As String

 

Dim strFrom  As String

Dim strTitle As String

Dim rs As Recordset

Dim strMailTo As String

 

Dim txtAttach4 As String

Dim fRetVal As Boolean

Dim strSubj As String

Dim strBody As String

Dim strNoAddr As String

 

Dim strDate As String

Set db = CurrentDb

ThisDay = Date$

ThsDay = Right([ThisDay], 4) & Left([ThisDay], 2) & Mid([ThisDay], 4, 2)

strDate = ThsDay
 

DoCmd.OutputTo acOutputReport, "RLM Issue", acFormatPDF, "C:\Windows\Temp\RLMIssue_" & strDate & ".pdf" _

    , , , , acExportQualityPrint
 
 

'=====================================================================================

Dim cdoMessage As Object

Dim objCDOMail As Object

Dim strschema As String

On Error GoTo NoAddr 'ErrorHandler ' Enable error-handling routine.

'======================================================================================

           

  Dim RlmEmail As String

  Dim UserEmail As String

  Dim Mill As String

  RlmEmail = Me.RlmEmail

  UserEmail = Me.UserEmail

  Mill = Me.cboMill.Value

  

            strTo = RlmEmail

            

            strFrom = UserEmail
 

            strSubj = Mill & " RLM Issue - " & strDate

            strBody = "See attached for the submitted RLM Issue"

 

          ' Enter path to documents to be attached -----------------------------------------

            txtAttach4 = "C:\Windows\Temp\RLMIssue_" & strDate & ".pdf"

            sPathFile = txtAttach4

              ' Create the message.

 

            Set cdoMessage = CreateObject("CDO.Message")

            Set objCDOMail = CreateObject("CDO.Configuration")

            strschema = "http://schemas.microsoft.com/cdo/configuration/"

            objCDOMail.Load -1 ' CDO Source Default

            'If you have illegal or wrong smtp address here it will run for 30-60

            'seconds and finally give transport error

            

                        With objCDOMail.Fields

              .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

              .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.zoominternet.net"

              .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

              .Item("http://schemas.microsoft.com/cdo/configuration/authenticate") = cdoBasic

              .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxxx"

              .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxxx"

              .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False

              .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

              .Update

            End With

 

            With cdoMessage

                Set .Configuration = objCDOMail

                    .To = strTo

                    .From = strFrom

                    

DoSubject:

                    

                    .Subject = strSubj

                    .TextBody = strBody

                    .AddAttachment txtAttach4

                    

                    .send

            End With

            

            Set cdoMessage = Nothing

            Set objCDOMail = Nothing

            GoTo ImDone ' Exit to avoid handler.

            

NoAddr:

ErrorHandler: ' Error-handling routine.

MsgBox Err.Description

Me.Undo
 

'            Debug.Print Err.Number & "-" & Err.Description

'            Set cdoMessage = Nothing

'            Set objCDOMail = Nothing

            

ImDone:

            

            Dim sFileType As String ' Declare the Type of File

            Dim sTempDir As String ' Temporary Directory

            

            

            'On Error Resume Next

            

            'sFileType = "*.tmp"

            sTempDir = "c:\windows\Temp\RLMIssue_" & strDate & ".pdf" ' There might be mutiple temp directories (one for each profile) in Windows XP. Modify the code accordingly

            

            Kill sTempDir '& 

Open in new window

0
 
LVL 2

Author Comment

by:pskeens
ID: 24073495
So no ideas on the SMTP Solution??  Thanks
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 
LVL 18

Expert Comment

by:jmoss111
ID: 24073537
There are services and also I think that you can actually use Google, but you'd have to search for that. You could localize by office if there is a server at each office; account just has to be set up.
0
 
LVL 2

Author Comment

by:pskeens
ID: 24073567
Actually I looked at our email addresses and the SMTP is for each person and its their email address.  So I'm not thinking thats a good solution at all.  Maybe google, but I know that I cannot use my yahoo address as I cannot get it to authenticate at all.  Thanks
0
 
LVL 18

Expert Comment

by:jmoss111
ID: 24073585
I'm pretty sure that you can use SMTP at Google, but just don't know the particulars. I'm glad that the SMTP solution is working for you.
0
 
LVL 18

Expert Comment

by:jmoss111
ID: 24073597
0
 
LVL 2

Author Comment

by:pskeens
ID: 24073798
Thanks for the help.  I registered and now have a gmail account to use only for this application, however I cannot get the email to send using the gmail SMTP scheme.  Do you see anything wrong with the below code?

                       With objCDOMail.Fields
              .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
              .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
              .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
              .Item("http://schemas.microsoft.com/cdo/configuration/authenticate") =  cdoBasic
              .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxxxxxxxx@gmail.com"
              .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxxxxx"
              .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
              .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
              .Update
            End With
0
 
LVL 18

Expert Comment

by:jmoss111
ID: 24073842
I see nothing wrong but haven't use gmail to send. If the parameters are correct I see no reason why it won't work. I assume that you obtained the parameters for .fields from google.

Do you get any errors?
0
 
LVL 2

Author Comment

by:pskeens
ID: 24073903
Yes I got the smtp parameters from google/gmail.  One thing is that you have to use tls authentication and that might be the problem.  We are using cdoBasic.  
0
 
LVL 18

Expert Comment

by:jmoss111
ID: 24073927
I haven't a clue; I basically use SMTP from Exchange and everything works great. Since your corp has an exchange server that is what I would pursue.
0
 
LVL 2

Author Comment

by:pskeens
ID: 24073973
Oh, well.  Scratch gmail.  I went back to using my ISP SMTP Server.  I will test tomorrow on the network and see if it is okay or not.  Thanks for all your input.
0
 
LVL 18

Expert Comment

by:jmoss111
ID: 24073989
You're welcome. I wish that I could assist you further with gmail...
0
 
LVL 2

Author Comment

by:pskeens
ID: 24077118
Well after I took all the DoCmd.SendObject out of the entire app and using SMTP I am still getting the same error at start up of the application.  Still referencing that I have a broken or missing reference UMOUTL~1.dll

0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

QuickBooks® has a great invoice interface that we were happy with for a while but that changed in 2001 through no fault of Intuit®. Our industry's unit names are dictated by RUS: the Rural Utilities Services division of USDA. Contracts contain un…
In a multiple monitor setup, if you don't want to use AutoCenter to position your popup forms, you have a problem: where will they appear?  Sometimes you may have an additional problem: where the devil did they go?  If you last had a popup form open…
Familiarize people with the process of utilizing SQL Server views from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Access…
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now