Solved

Runtime Error 91 object variable not found

Posted on 2008-06-09
5
1,169 Views
Last Modified: 2013-12-25
Within the last 6 months we've upgraded from exchange 5.5 and access 97 to exchange 2003 and access 2003.

In our exchange environment, we have public folder that people post employee file notes to - incident reports, good job, etc - via an outlook form that we designed some time ago.

In the access database that keeps all of this information there is an import function.  A employee in hr would click import and it would write all of this information to the access database, each record being a separate email in the public folder where it pulls from.

Now, since the upgrade, I keep getting the error:  runtime error 91 object variable or with block variable not set.

When you click debug, it brings you to the vb code behind this database, which is posted below.
The debugger is pointing to the following line as being the problem:
If objItems(i).UserProperties("Exported") = 0 Then

The whole code is below.

Option Compare Database
Option Explicit

Sub ImportFileNotesFromOutlook()
   
    ' Set up DAO objects (uses existing "FileNotes" table
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("FileNotes")
   
    ' Set up Outlook objects
    Dim ol As New Outlook.Application
    Dim olns As Outlook.NameSpace
    Dim cf As Outlook.MAPIFolder
    Dim c As Outlook.MailItem
    Dim objItems As Outlook.Items
    Dim Prop As Outlook.UserProperty
    Dim iNum As Integer
    Dim i As Integer
   
    Set olns = ol.GetNamespace("MAPI")
    Set cf = olns.Folders("Public Folders").Folders("All Public Folders").Folders("Employee File Notes")
    Set objItems = cf.Items
    iNum = objItems.Count
    If iNum > 0 Then
        For i = 1 To iNum
            If objItems(i).UserProperties("Exported") = 0 Then
                Set c = objItems(i)
                rst.AddNew
                rst!EENumber = c.UserProperties("Employee Number")
                rst!EmployeeName = c.UserProperties("Employee Name")
                rst!Department = c.UserProperties("EmployeeDepartment")
                rst!WrittenBy = c.UserProperties("Written By")
                rst!EmployeeNumber = c.UserProperties("Employee Number of Writer")
                rst!DateAndTimeOfEvent = c.UserProperties("Event Date and Time")
                rst!AreaObserved = c.UserProperties("Area Observed")
                rst!Description = c.UserProperties("Description of Event")
                rst!CorrectiveActionTaken = c.UserProperties("Corrective Action Taken")
                rst!FollowUpRequired = c.UserProperties("Follow up required")
                rst!FollowUpTime = c.UserProperties("Follow-up Time")
                rst.Update
                c.UserProperties("Exported") = -1
                c.Save
            End If
        Next i
        rst.Close
        MsgBox "Finished."
    Else
        MsgBox "No File Notes to export."
    End If
   
End Sub

Private Sub cmdimport_Click()
'On Error GoTo Err_cmdImport_Click
'
    ImportFileNotesFromOutlook
'
'Exit_cmdImport_Click:
'    Exit Sub
'
'Err_cmdImport_Click:
'    MsgBox Err.Description
'    Resume Exit_cmdImport_Click
'
End Sub

Please help.  This looks just fine to me.....and it worked for years before the upgrade.

Thanks!




0
Comment
Question by:Maddiegirl
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 10

Accepted Solution

by:
cool12399 earned 150 total points
ID: 21746958
Hi,

Two things:

(a) try changing If objItems(i).UserProperties("Exported") = 0 to
If  cf.Items(i).UserProperties("Exported")
(b) If that doesn't work, make sure the 'exported' properties exists. From the sounds of it, that is a deprecated attribute, so you'll need to find an equivalent, perhaps viewing the properties of cf.items
0
 

Author Comment

by:Maddiegirl
ID: 21746995
Changing it to If  cf.Items(i).UserProperties("Exported") seems to have worked for that problem.  Thank you!

I now have another, same database. Care to take a look?

Run-time error 3163  The field is too small to accept the amount of data you attempted to add.  Try inserting or pasting less data.

It's triggering on the line:
rst!EmployeeName = c.UserProperties("Employee Name")

Thanks.
0
 
LVL 13

Assisted Solution

by:game-master
game-master earned 100 total points
ID: 21747982


good morning...

Run-time error 3163  The field is too small to accept the amount of data you attempted to add.  Try inserting or pasting less data. means that
the <"YOUR DATA BASE FIELD"> cannot able to hold more characters...

steps to do..
1. open ur database on design view.
2. change the "Field Size" property of your field "EmployeeName"

that will fixed the error..
if same error appear kindly inform me..

game-master
0
 

Author Comment

by:Maddiegirl
ID: 21751002
I found one record that was causing the 3163 error when trying to do the import.  Thank you for your help there.

Sadly I am not back to the error 91 on the same line, even after changing

 If objItems(i).UserProperties("Exported") = 0 Then
 
to            If cf.Items(i).UserProperties("Exported") Then

per cool12399's suggestion.  Can you explain a bit more about option b?

Some of the data did import.

Thanks.
0
 

Author Closing Comment

by:Maddiegirl
ID: 31465570
Thanks for your help, guys.  I was able to figure it out with your assitance.
0

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Does exchange server encrypt my email? 11 103
SPF settings for 3rd party IPs 8 72
EXCHANGE, SPF 2 51
Excel 2007 Random Generate List Based on Defined Source Cells 3 27
This article explains how to install and use the NTBackup utility that comes with Windows Server.
In-place Upgrading Dirsync to Azure AD Connect
In this video we show how to create a Shared Mailbox in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >> Sha…
In this video we show how to create an Address List in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Organization >> Ad…

738 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