Early versus dispid binding

B

bjnova

If I have an old Access 97 database, how can I tell if the form controls are
bound early or dispid?
 
D

Dirk Goldgar

bjnova said:
If I have an old Access 97 database, how can I tell if the form
controls are bound early or dispid?

I have no idea what "dispid" means. Could you enlighten me?
 
D

Dan Artuso

Hi Dirk,
I think he means Dispatch Id. It's to do with late binding and COM interfaces.
I beleive all VB and VBA objects implement the IDispatch interface which is what
allows us to use late binding by being able to call methods by name on an object
that is not known until runtime.

I have no idea how that relates to Access controls :)
 
D

david epsom dot com dot au

I think that the OLE controls are using late binding
with a cached dspid. Why do you ask?

(david)
 
B

bjnova

I refer you to this KB article

http://support.microsoft.com/kb/q246237

The issue comes up for me because I will shortly be involved in
troubleshooting a botched conversion of a 97 db to a 2000 db; searching the
KN for entirely different reasons I came across this article. My trouble is
that I have almost no knowledge of the principles involved (what the heack is
the/a "v-table"?).

The article sets the context initially as an issue of automation but the
context is not retained throughout the article, and I am not sure if the
problems arises only in automation situations.
 
D

Dan Artuso

Hi,
I doubt very much that this will affect you as it's specfically for other applications that are
automating Access. It should not affect code running within Access itself.
vTable refers to a virtual function table, basically a table of function pointers.
I'm certainly no expert in these matters but I find them quite interesting.
Here's another good link:
http://www.windowsdevcenter.com/pub/a/oreilly/windows/news/mojica_1000.html

In a nutshell, by breaking binary compatability, some Access 2000 functions are not in the same 'place'
as their counterparts in Access 97.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top