<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2722.900" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2><<<</FONT></DIV>
<DIV><FONT face=Arial size=2>how does mine know to go to Ver 10 instead of Ver.
9?</FONT></DIV>
<DIV><FONT face=Arial size=2>>>></FONT></DIV>
<DIV><FONT face=Arial size=2>Rocky,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>As I wrote in addition to my first message - all MS
Office object libraries have the same GUID -
uuid(2DF8D04C-5BFA-101B-BDE5-00AA0044DE52) -all the rest is the COM "trick" -
you should have on your PC in system registry under </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV>[HKEY_CLASSES_ROOT\TypeLib\{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}]</DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>key only the description of Office 10 object
library location or you've also Office 9 object library description/location and
even Office 8 object library description/location etc. but Office 10 object
library location is described/mentioned first in system registry - according to
the COM rules it will be used as default - nothing ''magical'/tricky
at all...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Have a look in system registry at
<DIV>[HKEY_CLASSES_ROOT\TypeLib\{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}] key and
its subkeys...</DIV>
<DIV> </DIV></FONT></DIV>
<DIV><FONT face=Arial size=2>HTH,</FONT></DIV>
<DIV><FONT face=Arial size=2>Shamil</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=bchacc@san.rr.com href="mailto:bchacc@san.rr.com">Rocky Smolin -
Beach Access Software</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=accessd@databaseadvisors.com
href="mailto:accessd@databaseadvisors.com">accessd@databaseadvisors.com</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, February 05, 2003 8:08
PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [AccessD] Office 10.0
Library vs. Office 9.0 Library</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>Shamil:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I understand. About 30%. :)
</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>But if as you say "Each version of MS Access
"knows" its own version of MS Office type library - e.g. here is how MS
Access 2000 "gets knowledge" that its Commandbars object is
from MS Office 9.0 Object library:" how does mine know to go to Ver 10
instead of Ver. 9?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Rocky</FONT></DIV>
<DIV><FONT face=Arial size=2> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></FONT>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=shamil@smsconsulting.spb.ru
href="mailto:shamil@smsconsulting.spb.ru">Shamil Salakhetdinov</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=accessd@databaseadvisors.com
href="mailto:accessd@databaseadvisors.com">accessd@databaseadvisors.com</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, February 05, 2003 1:56
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [AccessD] Office 10.0
Library vs. Office 9.0 Library</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>Rocky,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>CommandBars is a property of
Access.Application object (default instance) - so there is no any need to
search for "(hundreds) of registered references" - the code just gets the
object ref (memory address) of already created collection
Access.Application.CommandBars . Commandbars is a collection i.e. it
supports COM's standard Collection interface(_NewEnum, Add, Remove, Item,
Count) + it has its own interface including FindControl method.
Because of late binding FindControl is called via IDispatch COM interface of
CommandBars coclass. IDispatch interface has GetIdsOfNames method, which is
used to find the numeric Id of FindControl method. The info for IDispatch is
stored in type library - for CommandBars this typelibrary is included into
MS Office object library. Each version of MS Access "knows" its own version
of MS Office type library - e.g. here is how MS Access 2000 "gets
knowledge" that its Commandbars object is from MS Office 9.0
Object library:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>// typelib filename: msacc9.olb</FONT></DIV>
<DIV><FONT face=Arial size=2>[<BR>
uuid(4AFFC9A0-5F99-101B-AF4E-00AA003F0F07),<BR>
version(9.0),<BR> helpstring("Microsoft Access 9.0 Object
Library"),<BR> helpfile("acmain9.chm"),<BR>
helpcontext(00000000)<BR>]<BR>library Access<BR>{<BR> //
TLib : // TLib : Microsoft Visual Basic for
Applications Extensibility 5.3 :
{0002E157-0000-0000-C000-000000000046}<BR>
importlib("VBE6EXT.OLB");<BR> // TLib : Microsoft ActiveX
Data Objects 2.1 Library :
{00000201-0000-0010-8000-00AA006D2EA4}<BR>
importlib("msado21.tlb");<BR> // TLib : Microsoft Office
9.0 Object Library :
{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}<BR>
importlib("MSO9.DLL");<BR></FONT><FONT face=Arial size=2>....</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>- importlib("MSO9.DLL") statement creates this
static link in MS Access Object Library. IDispatch uses MS Office Object
Library GUID ({2DF8D04C-5BFA-101B-BDE5-00AA0044DE52} for MS Office 9)
statically written to MS Access object library to get (via system registry)
location of MS Office Object library file, loads this object library and its
typelib and finds numeric ID of FindControl method. </FONT><FONT face=Arial
size=2>Then marchalling is used to create parameters array and Fincontrol
method is called using Invoke method of IDispatch interface... (It may
happen that MS Office type library gets preloaded on MS Access start-up - I
don't know these internal details but the nature of COM is to activate a
feature/create object instances on first call to them only not in advance -
so I guess that MS Office Object library is loaded when CommandBars
collection is created during MS Access start-up or on first call to
CommandBars collection, which can be the call from your
code...)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>It looks a little bit complicated but it
doesn't take that much time to care about or see any difference with early
binding for two late bound calls as in your case...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Hope this explains some late binding internal
details,</FONT></DIV>
<DIV><FONT face=Arial size=2>Shamil</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV>----- Original Message ----- </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=bchacc@san.rr.com href="mailto:bchacc@san.rr.com">Rocky Smolin -
Beach Access Software</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=accessd@databaseadvisors.com
href="mailto:accessd@databaseadvisors.com">accessd@databaseadvisors.com</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, February 05, 2003
12:21 AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [AccessD] Office 10.0
Library vs. Office 9.0 Library</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>Shamil and Bryan:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thanks so much. That was way too easy,
:)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>But how does the program know which library
to go to without searching all of those (hundreds) of registered
references?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I don't notice any pause at all.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Best,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Rocky Smolin<BR>Beach Access
Software</FONT></DIV>
<DIV> </DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=shamil@smsconsulting.spb.ru
href="mailto:shamil@smsconsulting.spb.ru">Shamil Salakhetdinov</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=accessd@databaseadvisors.com
href="mailto:accessd@databaseadvisors.com">accessd@databaseadvisors.com</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, February 04, 2003
12:11 PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [AccessD] Office 10.0
Library vs. Office 9.0 Library</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>> How can I convert this to late
binding?</FONT></DIV>
<DIV><FONT face=Arial size=2>Rocky,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>This is easy - just use this
code:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Dim cbc As Object '
CommandBarControl<BR>Set cbc = CommandBars("Menu
Bar").FindControl(ID:=4, recursive:=True)<BR>cbc.Enabled =
False</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>and remove the reference to the MS
Office object library.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>HTH,</FONT></DIV>
<DIV><FONT face=Arial size=2>Shamil</FONT></DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=bchacc@san.rr.com href="mailto:bchacc@san.rr.com">Rocky
Smolin - Beach Access Software</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=accessd@databaseadvisors.com
href="mailto:accessd@databaseadvisors.com">accessd@databaseadvisors.com</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, February 04, 2003
10:35 PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [AccessD] Office
10.0 Library vs. Office 9.0 Library</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>Shamil:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I'm having a little trouble finding
enough help in Help and the ADH to figure out how to do late
binding. I'm currently using the following three lines to turn
off the print button:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Dim cbc As CommandBarControl<BR>Set cbc =
CommandBars("Menu Bar").FindControl(ID:=4,
recursive:=True)<BR>cbc.Enabled = False<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>How can I convert this to late
binding?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>(BTW, I'm trying to repair my Office
installation now. Maybe it will get rid of Version 10 and
replace it with Version 9 which will solve the problem.)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Best,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Rocky</FONT></DIV>
<DIV><FONT face=Arial size=2> </DIV></FONT>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=shamil@smsconsulting.spb.ru
href="mailto:shamil@smsconsulting.spb.ru">Shamil Salakhetdinov</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=accessd@databaseadvisors.com
href="mailto:accessd@databaseadvisors.com">accessd@databaseadvisors.com</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, February 04,
2003 10:25 AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [AccessD] Office
10.0 Library vs. Office 9.0 Library</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>Rocky,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>The only stable solution I know is to
use late binding - then you'll not need a reference to Office 9 or
10.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>HTH,</FONT></DIV>
<DIV><FONT face=Arial size=2>Shamil</FONT></DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=bchacc@san.rr.com href="mailto:bchacc@san.rr.com">Rocky
Smolin - Beach Access Software</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=AccessD@databaseadvisors.com
href="mailto:AccessD@databaseadvisors.com">AccessD@databaseadvisors.com</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, February 04,
2003 7:30 PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> [AccessD] Office
10.0 Library vs. Office 9.0 Library</DIV>
<DIV><BR></DIV>
<DIV><FONT face=Arial size=2>Dear List:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>In order to turn off the print button
on the file menu I used the CommandBar object which required the
Office Library. I have Version 10.0. My customer,
however, has Version 9.0. He doesn't have 10.0. I
don't have 9.0. So now in the update we have to uncheck the
10.0 (missing) library, and check the 9.0 library. Awkward phone
support at best.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>What's the best way around
this? Can I get 9.0? Or can he get 10.0? Or
what? They're running Office 2000. Pro, I
believe.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>MTIA</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Rocky Smolin<BR>Beach Access
Software</FONT></DIV>
<DIV><FONT face=Arial
size=2></FONT> </DIV></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>