devxlogo

Porting VB-Specific Objects to Access 8.0

Porting VB-Specific Objects to Access 8.0

Code portability is extremely important, especially now that VBA is available in so many products. Someproblems might occur if you want to use VB4 or VB5 code in Access 8 without making any changes. If thecode you are porting references some VB-specific object, object method, or property, Access complainswhen you compile the imported code. For instance, the “App” object exists in VB but not in Access.Therefore, this statement won’t compile under Access:

 Msgbox App.Title

To get around this problem, create a class in Access 8 to “replace” the VB4 object, method, or property notavailable in Access. In this case, create a clsVBShadow class in Access:

 Option Compare DatabaseOption ExplicitPrivate strTitle As StringPrivate strEXEName As StringPrivate strMin As StringPrivate Sub Class_Initialize()        strTitle = "Microsoft Access"         ' Or whatever you want to return.        strEXEName = "?"        strMin = "?"End SubPublic Property Get Title() As String        Title = strTitleEnd PropertyPublic Property Get EXEName() As String        EXEName = strEXENameEnd Property' complete with more properties...

In any module in your Access 8 application, declare this global object:

 Public App As New clsVBShadow

At this point, any code you import from VB4 that accesses the App object still works unchanged, and youcan replace each method or property of that object with what you want.

devx-admin

Share the Post: