I keep getting this error ,
Set objOutlook = CreateObject("O utlook.Applicat ion").
I do not work in IT but no one seems to know how to fix this error. Someone please help me? I am the only one having this issue with trying to use the data base when I get to the sending the email. Someone said because I have both Micro soft office 15 & 16 on my computer its confused will that cause this issue If the developer only has the 15 version? Maybe I am wrong but it seems this issue has to do with outlook and If I have this issue others will end up with it in the future trying to use this data base.
Run-time error'-2147319779(8002 801d)':
Automation error
Library not registered
Then when I click on debug the below message pops up.
Set objOutlook = CreateObject("O utlook.Applicat ion").
I do not work in IT but no one seems to know how to fix this error. Someone please help me? I am the only one having this issue with trying to use the data base when I get to the sending the email. Someone said because I have both Micro soft office 15 & 16 on my computer its confused will that cause this issue If the developer only has the 15 version? Maybe I am wrong but it seems this issue has to do with outlook and If I have this issue others will end up with it in the future trying to use this data base.
Run-time error'-2147319779(8002 801d)':
Automation error
Library not registered
Then when I click on debug the below message pops up.
Code:
Option Compare Database
Dim Hold_ID As Long
Dim Finance_Approval_Required As Boolean
Public Function GetPath()
getpath2
End Function
Public Sub getpath2()
DbPath = Application.CurrentProject.Path
End Sub
Function Transfer_Text_to_Table(Spec_Name As String, Table_Name As String, FileIn_Name As String)
Dim FilePath_Name As String
getpath2
FilePath_Name = DbPath & "\" & FileIn_Name
DoCmd.TransferText acImportDelim, Spec_Name, Table_Name, FilePath_Name
End Function
Public Function Excel2Access(Table_Name As String, Spreadsheet_Name As String)
Dim FilePath_Name As String
getpath2
FilePath_Name = DbPath & "\" & Spreadsheet_Name
DoCmd.TransferSpreadsheet acImport, 8, Table_Name, FilePath_Name, True
End Function
Public Function Run_CC_EmailM(Email_Type As String, Email_ID As Long)
Call Run_CC_Email(Email_Type, Email_ID)
End Function
Public Sub Run_CC_Email(Email_Type As String, Email_ID As Long)
' On Error GoTo Err_Run_CC_Email
Dim objOutlook As Outlook.Application
Dim objMail As Outlook.MailItem
Dim sSQL As String
Dim DB As DAO.Database
Dim Hold_Buyer As String
Dim Email_Buyer As String
Dim Hold_bodyLine1 As String
Dim Hold_CCRequest_info As String
Dim Hold_CCRequest_Count_Results As String
Dim Hold_Form As String
Dim Hold_Date_Entered As String
Dim Hold_Date_Closed As String
Dim Hold_Request_by As String
Dim Hold_Part_Nbr As String
Dim Hold_Part_Description As String
Dim Hold_Reason As String
Dim Hold_Comments As String
Dim Hold_StdCost As Double
Dim Hold_Supplier As String
Dim Hold_Supply_Type As String
Dim hold_Item_Status As String
Dim hold_Planner As String
Dim Hold_AdHoc_Scheduled As String
Dim Hold_CC_Status As String
Dim Hold_Cycle_Count_Comments As String
Dim Hold_Finance_comments As String
Dim Hold_Adjust_Transfer As String
Dim sTitle As String, sFile As String, sErr As String
Dim rstDist As DAO.Recordset
Dim RstCCRequest As DAO.Recordset
Set DB = CurrentDb
Set RstCCRequest = DB.OpenRecordset("TblCycleCountRequest", dbOpenDynaset)
RstCCRequest.FindFirst "[ID] = " & Email_ID
Hold_Part_Nbr = Nz(RstCCRequest![Part Nbr], " ")
Hold_Part_Description = Nz(RstCCRequest![Description], " ")
Hold_Reason = Nz(RstCCRequest![Reason for Request], " ")
Hold_Comments = Nz(RstCCRequest![Request_Comments], " ")
Hold_StdCost = Nz(RstCCRequest![Standard Cost], " ")
Hold_Supplier = Nz(RstCCRequest![Supplier], " ")
hold_Item_Status = Nz(RstCCRequest![Item Status], " ")
hold_Planner = Nz(RstCCRequest![Planner Code], " ")
Hold_Date_Entered = Nz(RstCCRequest![Date Entered], " ")
Hold_CC_Status = Nz(RstCCRequest![CCReq_Status], " ")
Hold_AdHoc_Scheduled = Nz(RstCCRequest![Adhoc/Scheduled], " ")
Hold_Supply_Type = Nz(RstCCRequest![Supply Type], " ")
Hold_Date_Closed = Nz(RstCCRequest![CC_Date_Closed], " ")
Hold_Request_by = Nz(RstCCRequest![Requested By], " ")
Hold_Buyer = Nz(RstCCRequest![Buyer], " ")
Hold_Finance_comments = Nz(RstCCRequest![Finance Comments], " ")
If Nz(RstCCRequest![Adjust_Transfer], " ") = 1 Then
Hold_Adjust_Transfer = "Adjust Oracle"
Else
If Nz(RstCCRequest![Adjust_Transfer], " ") = 2 Then
Hold_Adjust_Transfer = "Transfer to REV/CCP"
Else
Hold_Adjust_Transfer = Nz(RstCCRequest![Adjust_Transfer], " ")
End If
End If
Hold_Cycle_Count_Comments = Nz(RstCCRequest![Cycle_Count_Comments], " ")
RstCCRequest.Close
Set RstCCRequest = Nothing
'Prelims
DoCmd.SetWarnings False
DoCmd.Hourglass True
Set DB = CurrentDb
sFile = " "
'SELECT Email_Distribution.Email_Address, Email_Distribution.Email_Buyer, Email_Distribution.Email_Initial_CC_Request
'From Email_Distribution
'WHERE (((Email_Distribution.Email_Buyer)="Coates, Terence D")) OR (((Email_Distribution.Email_Initial_CC_Request)=True));
' If Email_Type = "Email_Initial_CC_Request" Or Email_Type = "Email_Final_CC_Results" Then
Email_Buyer = Hold_Buyer
' Else
' Email_Buyer = "xxxxxxxxx"
' End If
sSQL = "SELECT Email_Distribution.Email_Address, Email_Distribution.Email_Buyer, "
sSQL = sSQL & "Email_Distribution.Email_Initial_CC_Request "
sSQL = sSQL & "FROM Email_Distribution "
sSQL = sSQL & "WHERE(((Email_Distribution.Email_Buyer)='"
sSQL = sSQL & Email_Buyer & "')) OR (((Email_Distribution."
sSQL = sSQL & Email_Type & ")=True)"
sSQL = sSQL & ");"
Set rstDist = DB.OpenRecordset(sSQL)
If rstDist.EOF = True Then
sErr = "no entries in Email_distribution table"
MsgBox sErr, vbInformation + vbOKOnly
Else
[B] Set objOutlook = CreateObject("Outlook.Application")
[/B]
'Prepare email message
Set objMail = objOutlook.CreateItem(olMailItem)
With objMail
'Build recordset on recipients
rstDist.MoveFirst
While Not rstDist.EOF
'Add Recipient
With .Recipients.Add(rstDist![Email_Address])
.Type = olTo
End With
rstDist.MoveNext
Wend
rstDist.Close
Set rstDist = Nothing
'Add the subject
If Email_Type = "Email_Initial_CC_Request" Then
.Subject = "Initial Cycle Count Request # " _
& Email_ID & " Part Number: " & Hold_Part_Nbr
Hold_bodyLine1 = "Please perform cycle count on following Part Number: " & _
Hold_Part_Nbr & " " & Hold_Part_Description & vbCrLf
Else
If Email_Type = "Email_Organization_CC_Approval" Then
.Subject = "Organization Approval required for Cycle Count Request # " _
& Email_ID & " Part Number: " & Hold_Part_Nbr
Hold_bodyLine1 = "Counts are complete on Cycle Count request # : " & _
Email_ID & ". Please review and approve in cycle count data base. " & vbCrLf
Else
If Email_Type = "Email_Finance_CC_Approval" Then
.Subject = "Finance Approval required for Cycle Count Request # " _
& Email_ID & " Part Number: " & Hold_Part_Nbr
Hold_bodyLine1 = "Counts are complete on Cycle Count request # : " & _
Email_ID & ". Variance is greater than $2,500. Please review and approve in cycle count data base. " & vbCrLf
Else
If Email_Type = "Email_Final_CC_Results" Then
.Subject = "Final results for Cycle Count Request # " _
& Email_ID & " Part Number: " & Hold_Part_Nbr
Hold_bodyLine1 = "Counts and adjustments are complete on Cycle Count request # : " & _
Email_ID & ". Below are results: " & vbCrLf
Else
If Email_Type = "Email_Make_Adjustments" Then
.Subject = "Oracle adjustments required for Cycle Count Request # " _
& Email_ID & " Part Number: " & Hold_Part_Nbr
Hold_bodyLine1 = "All approvals are complete on Cycle Count request # : " & _
Email_ID & ". Please make necessary adjustments in Oracle and update CC database when complete " & vbCrLf
End If
End If
End If
End If
End If
Hold_CCRequest_info = Hold_CCRequest_info & "Requested By: " & Hold_Request_by & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Date Entered: " & Hold_Date_Entered & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Reason for request: " & Hold_Reason & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Requester Comments: " & Hold_Comments & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & " " & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Buyer : " & Hold_Buyer & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Std Cost : " & Hold_StdCost & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Supplier : " & Hold_Supplier & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Supply Type: " & Hold_Supply_Type & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Planner : " & hold_Planner & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Item Status : " & Hold_CC_Status & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & " " & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Cycle Count Comments : " & Hold_Cycle_Count_Comments & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Finance Comments : " & Hold_Finance_comments & vbCrLf
Hold_CCRequest_info = Hold_CCRequest_info & "Adjust or Transfer : " & Hold_Adjust_Transfer & vbCrLf
'Add standard message text to body
.Body = .Body & Hold_bodyLine1 & vbCrLf
.Body = .Body & " " & vbCrLf
.Body = .Body & Hold_CCRequest_info & vbCrLf
.Body = .Body & " " & vbCrLf
'Closure
.Body = .Body & vbCrLf & "Thanks" & vbCrLf & vbCrLf & "Cycle Count Team" & vbCrLf
.Body = .Body & " " & vbCrLf
.Body = .Body & " " & vbCrLf
'Send the mail message
.Send
End With
End If
Exit_Run_CC_Email:
DoCmd.SetWarnings True
DoCmd.Hourglass False
Exit Sub
Err_Run_CC_Email:
sErr = "Error " & Error & " / " & Err
MsgBox sErr, vbInformation + vbOKOnly, "Error on Email subroutine"
Resume Exit_Run_CC_Email
End Sub
Public Function Add_Subinventory_Recs()
Dim RstSubinventory As Recordset
Dim RstCCDetail As Recordset
Dim DB As Database
Set DB = CurrentDb
Set RstSubinventory = DB.OpenRecordset("CC_Subinventory")
Set RstCCDetail = DB.OpenRecordset("Tbl_CC_Detail")
RstSubinventory.MoveFirst
Do Until RstSubinventory.EOF
RstCCDetail.AddNew
RstCCDetail![CC_ID] = Forms!FrmNewCycleCountRequest![ID]
RstCCDetail![CC_Subinv] = RstSubinventory![CC_Subinventory_Name]
RstCCDetail.Update
RstSubinventory.MoveNext
Loop
RstCCDetail.Close
RstSubinventory.Close
Set RstCCDetail = Nothing
Set RstSubinventory = Nothing
End Function
Public Function Calc_Count_Totals()
Dim RstCCDetail As DAO.Recordset
Dim RstMisc As DAO.Recordset
Dim DB As DAO.Database
Dim Tot_Oracle As Double
Dim Tot_Actual As Double
Dim Tot_Variance As Double
Dim No_more_Match As Boolean
Dim Count_complete As Boolean
Dim New_Stat As String
Dim Hold_Finance_Limit
Dim Tot_Variance_Val As Double
Total_Oracle = 0
Total_Actual = 0
Total_Variance = 0
Total_Variance_Value = 0
No_more_Match = False
Count_complete = True
Set DB = CurrentDb
Set RstMisc = DB.OpenRecordset("Misc_Parameters", dbOpenDynaset)
RstMisc.MoveFirst
Hold_Finance_Limit = RstMisc![Finance_approve_limit]
RstMisc.Close
Set RstMisc = Nothing
Set RstCCDetail = DB.OpenRecordset("Tbl_CC_Detail", dbOpenDynaset)
Hold_ID = Forms!FrmCycleCountRequest![ID]
RstCCDetail.FindFirst "CC_ID = " & Hold_ID
If RstCCDetail.NoMatch Then
Forms!FrmCycleCountRequest!Frm_CC_Detail![TxtTotOracle] = Total_Oracle
Forms!FrmCycleCountRequest!Frm_CC_Detail![TxtTotActual] = Total_Actual
Forms!FrmCycleCountRequest!Frm_CC_Detail![TxtTotVariance] = Total_Variance
Forms!FrmCycleCountRequest!Frm_CC_Detail![TxtTotVarianceVal] = FormatCurrency(Total_variance_val, 2)
Forms!FrmCycleCountRequest!Frm_CC_Detail![Lbl_Count_Complete].Visible = False
Else
Do While No_more_Match = False
Total_Oracle = Total_Oracle + RstCCDetail![CC_Oracle_Qty]
Total_Actual = Total_Actual + RstCCDetail![CC_Actual_Qty]
Total_Variance = Total_Variance + RstCCDetail![CC_Variance_Qty]
Total_variance_val = Total_variance_val + RstCCDetail![CC_Variance_Value]
If Count_complete = True Then
If IsNull(RstCCDetail![CC_Complete_Date]) Then
Count_complete = False
End If
End If
RstCCDetail.MoveNext
If RstCCDetail.EOF Then
No_more_Match = True
Else
If RstCCDetail![CC_ID] <> Hold_ID Then
No_more_Match = True
End If
End If
Loop
Forms!FrmCycleCountRequest!Frm_CC_Detail![TxtTotOracle] = Total_Oracle
Forms!FrmCycleCountRequest!Frm_CC_Detail![TxtTotActual] = Total_Actual
Forms!FrmCycleCountRequest!Frm_CC_Detail![TxtTotVariance] = Total_Variance
Forms!FrmCycleCountRequest!Frm_CC_Detail![TxtTotVarianceVal] = FormatCurrency(Total_variance_val, 2)
'Hide Finance Approval fields if variance value is less 5han specified Limit
If Abs(Total_variance_val) >= Hold_Finance_Limit Then
Finance_Approval_Required = True
If Count_complete = True And (Forms!FrmCycleCountRequest![CCReq_Status] = "Counts Approved- Pending Finance Approval" _
Or Forms!FrmCycleCountRequest![CCReq_Status] = "Counts Approved- Pending Oracle Adjustment" _
Or Forms!FrmCycleCountRequest![CCReq_Status] = "CC Completed") Then
Call Hide_Display_Finance_Approve("Display")
Else
Call Hide_Display_Finance_Approve("Hide")
End If
Else
Finance_Approval_Required = False
End If
If Forms!FrmCycleCountRequest![CCReq_Status] = "Count in Process" And Count_complete = True Then
Forms!FrmCycleCountRequest!Frm_CC_Detail![Lbl_Count_Complete].Visible = True
New_Stat = "Complete"
Call Manage_Status(New_Stat)
End If
End If
RstCCDetail.Close
Set RstCCDetail = Nothing
End Function
Public Function CCDetail_Calc_Variance()
Forms!FrmCycleCountRequest!Frm_CC_Detail![CC_Variance_Qty] = _
Forms!FrmCycleCountRequest!Frm_CC_Detail![CC_Oracle_Qty] - Forms!FrmCycleCountRequest!Frm_CC_Detail![CC_Actual_Qty]
Forms!FrmCycleCountRequest!Frm_CC_Detail![CC_Variance_Value] = _
Forms!FrmCycleCountRequest!Frm_CC_Detail![CC_Variance_Qty] * Forms!FrmCycleCountRequest![Standard Cost]
End Function
Public Function Manage_Status(Change As String)
Dim RstCCRequest As Recordset
Dim DB As Database
' Set DB = CurrentDb
' Set RstCCRequest = DB.OpenRecordset("TblCycleCountRequest")
Select Case Change
Case "InProcess"
Status_Hold = "Count in Process"
Case "Complete"
Status_Hold = "Initial Counts Complete/Pending Approval"
If MsgBox("OK to send email requesting Mgmt approval? ", vbInformation + vbYesNo) = vbNo Then
Cancel = True
Else
Forms!FrmCycleCountRequest![CCReq_Status] = Status_Hold
Call Run_CC_Email("Email_Organization_CC_Approval", Hold_ID)
Call Hide_Display_Mgmt_Approve("Display")
Call Hide_Display_Finance_Approve("Hide")
Call Hide_Display_Adjust("Hide")
End If
Case "Approved-Mgmt"
Status_Hold = "Counts Approved- Pending Finance Approval"
If MsgBox("OK to send email requesting Fiance approval? ", vbInformation + vbYesNo) = vbNo Then
Cancel = True
Else
Forms!FrmCycleCountRequest![CCReq_Status] = Status_Hold
Call Run_CC_Email("Email_Finance_CC_Approval", Hold_ID)
Call Hide_Display_Mgmt_Approve("Display")
Call Hide_Display_Finance_Approve("Display")
Call Hide_Display_Adjust("Hide")
End If
Case "Approved_Final"
Status_Hold = "Counts Approved- Pending Oracle Adjustment"
If MsgBox("OK to send email requesting Oracle adjustment? ", vbInformation + vbYesNo) = vbNo Then
Cancel = True
Else
Forms!FrmCycleCountRequest![CCReq_Status] = Status_Hold
Call Run_CC_Email("Email_Make_Adjustments", Hold_ID)
Call Hide_Display_Mgmt_Approve("Display")
Call Hide_Display_Finance_Approve("Display")
Call Hide_Display_Adjust("Display")
End If
Case "Done"
Status_Hold = "CC Completed"
Forms!FrmCycleCountRequest![CCReq_Status] = Status_Hold
Call Run_CC_Email("Email_Final_CC_Results", Hold_ID)
Case Else
MsgBox ("Case Else")
End Select
End Function
Public Function Lock_Counts()
' Forms!FrmCycleCountRequest!Frm_CC_Detail.Locked = True
End Function
Public Function Lock_Approvals()
' Forms!FrmCycleCountRequest![CC_Approval_Initials].Locked = True
' Forms!FrmCycleCountRequest![Finance_Approve_Initials].Locked = True
' Forms!FrmCycleCountRequest![MFG Adjust].Locked = True
' Forms!FrmCycleCountRequest![US2 Adjust].Locked = True
End Function
Public Function Calc_Actual_Total()
Dim RstActDetail As DAO.Recordset
Dim DB As DAO.Database
Dim Tot_Actual As Long
Dim No_more_Match As Boolean
Dim Hold_ID As String
Dim Hold_Subinv As String
Tot_Actual = 0
No_more_Match = False
Set DB = CurrentDb
Set RstActDetail = DB.OpenRecordset("Actual_Subinv_Count_Detail", dbOpenDynaset)
Hold_ID = Forms!Actual_Subinv_Count_Detail![TxtCC_ID]
Hold_Subinv = Forms!Actual_Subinv_Count_Detail![TxtSubInv]
RstActDetail.FindFirst "[Actual_ID] = '" & Hold_ID & "' AND Actual_Subin = '" & Hold_Subinv & "'"
If RstActDetail.NoMatch Then
Forms!Actual_Subinv_Count_Detail![TxtAct_Det_Tot] = Tot_Actual
Else
Do While No_more_Match = False
Tot_Actual = Tot_Actual + RstActDetail![Actual_Count]
RstActDetail.MoveNext
If RstActDetail.EOF Then
No_more_Match = True
Else
If RstActDetail![Actual_ID] <> Hold_ID Or RstActDetail![Actual_Subin] <> Hold_Subinv Then
No_more_Match = True
End If
End If
Loop
Forms!Actual_Subinv_Count_Detail![TxtAct_Det_Tot] = Tot_Actual
End If
RstActDetail.Close
Set RstActDetail = Nothing
End Function
Public Function Hide_Display_Mgmt_Approve(Action As String)
Dim True_False As Boolean
If Action = "Hide" Then
True_False = False
Else
True_False = True
End If
Forms!FrmCycleCountRequest![CC_Approval_Initials].Visible = True_False
Forms!FrmCycleCountRequest![CC_Approval_Date].Visible = True_False
Forms!FrmCycleCountRequest![Label66].Visible = True_False
End Function
Public Function Hide_Display_Finance_Approve(Action As String)
Dim True_False As Boolean
If Action = "Hide" Then
True_False = False
Else
True_False = True
End If
Forms!FrmCycleCountRequest![Finance_Approve_Initials].Visible = True_False
Forms!FrmCycleCountRequest![Finance_Approve_Date].Visible = True_False
Forms!FrmCycleCountRequest![TxtFinance_Comm].Visible = True_False
Forms!FrmCycleCountRequest![Frame70].Visible = True_False
Forms!FrmCycleCountRequest![Label67].Visible = True_False
End Function
Public Function Hide_Display_Adjust(Action As String)
Dim True_False As Boolean
If Action = "Hide" Then
True_False = False
Else
True_False = True
End If
Forms!FrmCycleCountRequest![MFG Adjust].Visible = True_False
Forms!FrmCycleCountRequest![US2 Adjust].Visible = True_False
Forms!FrmCycleCountRequest![Adjustments Complete].Visible = True_False
End Function
Public Function Process_Mgmt_Approval()
If IsNull(Forms!FrmCycleCountRequest![CC_Approval_Date]) Then
If Not IsNull(Forms!FrmCycleCountRequest![CC_Approval_Initials]) Then
Forms!FrmCycleCountRequest![CC_Approval_Date] = Date
If Finance_Approval_Required = True Then
Call Manage_Status("Approved-Mgmt")
Else
Call Manage_Status("Approved_Final")
End If
End If
End If
End Function
Comment