Solved

Acc2010 The object you referenced ... isn't an OLE object

Posted on 2011-09-14
4
2,206 Views
Last Modified: 2012-05-12
I'm trying to run our Acc 2003 database application in Acc 2010. I have not converted the database, just run it in Acc2010.

Seems to work fine, but when closing a print preview I get
"The object you referenced in the Visual Basic procedure as an OLE Object isn't an OLE object"
The ONClose property runs a sub macro which uses a SetValue command to set a form (from which the report preview was opened) to visible.

Before the report preview was opened the form in question had it's visible value set to no (so it is still open) but hidden.

Worked fine in Acc2003.
So has the syntax changed or dependencies for setvalue on form objects?

A references issue?
These references are loaded (none show MISSING):
Visual Basic for applications (vbe7.dll)
Microsoft Access 14.0 Object Library
OLE Automation (STDOLE2.TLB)
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Object 2.5 Library
Microsoft OLE DB Service Component 1.0 Type Library

Any help greatly appreciated!

0
Comment
Question by:ComputerFundi
  • 2
4 Comments
 
LVL 77

Expert Comment

by:peter57r
ID: 36541299
Code please.
0
 

Author Comment

by:ComputerFundi
ID: 36541758
Form events run macros not VBA so what follows is macro statements (in acc2010 format)

Submacro: Print_Targets Dept
SetValue
Item = [Forms]![Target_Input].[Visible]
Expression  = No

OpenReport
Report Name Subject Targets_by Dept_KS5
View Print Preview
Filter Name
Where Condition
Window Mode Normal
MaximizeWindow
End Submacro

Submacro: ONClose

SetValue
Item = [forms]![Target_Input].[Visible]
Expression = Yes

End Submacro

It is the SetValue statement in the ONclose section which fails with the error
0
 
LVL 84

Accepted Solution

by:
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 500 total points
ID: 36541978
What value are you setting? I presume it's the Visible property, but cannot be sure (I don't use macros).

These types of errors can result from many things. One of the more common is incorrectly referring to an Object (for example, not properly referring to a subform control). Earlier versions of Access were far more forgiving of these types of errors, but 2007/2010 is more strict.

In many cases, you're better off building a new, blank database in 2010 (you can use the .mdb format to do this), and then import everything from your old database. This will maintain compatibility with older versions, but will "fixup" the container to be fully compatible with 2010.

Are you sure you need this reference:

Microsoft OLE DB Service Component 1.0 Type Library

This is generally only used to build data links, and isn't really something that you typically reference in an Access app. You can determine if you need it like this:

1) Make a backup of your database
2) Compile your database - from the VBA window, click Debug - Compile. Fix any errors, and continue doing this until the menuitem is disabled
3) Compact your database
4) Remove the reference (i.e. uncheck it).
5) Compile again.

If Step #5 doesn't result in any errors, then you don't need that reference and can leave it out. While in many cases it does no real harm to leave in these refs, they cause unnecessary bloat, and can cause code issues, performance issues, etc etc.


0
 

Author Closing Comment

by:ComputerFundi
ID: 36542668
Fantastic! Thank you:
So here's what I did -
1. In acc2003 (on the unconverted db) - I followed your procedure to remove the reference to Microsoft OLE DB Service Component 1.0 Type Library, which worked - clearly it wasn't needed.
2. I created an empty Accdb file and imported all the tables in the backend (data) db. Compacted it. Done
3. Created another empty ACCDB file and imported all the objects including local (but not linked) tables.
4. Added this library:
 Microsoft ActiveX Data Objects 2.8 Library as per this allenbrowne page: http://allenbrowne.com/ser-38.html#LibVer
5. Compiled the db. OK
6. linked tables from ACCDB backend
7. Compacted the dB
7. Tested - so far no issues. The Report close function (with that nice 'tabbed' view of the report) works perfectly.

Again MANY THANKS!
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

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

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…
Preparing an email is something we should all take special care with – especially when the email is for somebody you may not know very well. The pressures of everyday working life stacked with a hectic office environment can make this a real challen…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.
In Microsoft Access, when working with VBA, learn some techniques for writing readable and easily maintained code.

808 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