Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Great Plains - VBA 6 - Import Package Error 3

Status
Not open for further replies.

Onyx962

Programmer
Apr 30, 2008
2
US
I developed a new User Form using VBA 6 for Great Plains 8.0. This new form contains a DataGrid control and an ADO Data Control for use in connecting to and updating a table in a SQL Server 2000 database. Once I had my form working correctly on my own PC, I exported a package from the Customization Maintenance dialog. This package contains the new form (frmMiscUnmatched), and the following references:

Microsoft ActiveX Data Objects 2.8 Library
Microsoft ADO Data Control 6.0 (SP6) (OLEDB)
Microsoft DataGrid Control 6.0 (SP6) (OLEDB)


The first time I attempted to import this package into a different Great Plains installation, I received the following errors:

Name: frmMiscUnmatched
Type: User Form
Errors during load. Refer to 'C:\Program Files\Microsoft Business Solutions\Great Plains\s3f0.log' for details. -- Inside that log file was this error: "Line 2: Property OleObjectBlob in frmMiscUnmatched could not be set."

Name: Microsoft ADO Data Control 6.0 (SP6) (OLEDB)
Type: Reference
Object library not registered.


I did some research and discovered that the computer I was attempting to install to did NOT have MSADODC.OCX in System32, which is needed for the Microsoft ADO Data Control. I added this file to the System32 directory and registered it using the following command: "regsvr32 C:\Windows\system32\MSADODC.OCX"


Then, I tried importing the same package again. This time I got the following errors:

Name: frmMiscUnmatched
Type: User Form
Errors during load. Refer to 'C:\Program Files\Microsoft Business Solutions\Great Plains\s3f0.log' for details. -- (log file contains the same error as before)

Name: Microsoft DataGrid Control 6.0 (SP6) (OLEDB)
Type: Reference
Name conflicts with existing module, project, or object library.


I removed the DataGrid component from the package and attempted to import it that way. That eliminated the confliction error that I listed above. However, the error from the log file still remains: ("Line 2: Property OleObjectBlob in frmMiscUnmatched could not be set.")

I found this thread here, it looks like the OP is having the exact same problem as me:
I followed the link someone suggested at the bottom of that thread and ended up downloading VB6Cli.exe ( This is a utility designed to fix License problems with ActiveX Controls that ship with Microsoft Visual Basic 6.0. I tried running it on the other computer I am trying to install to, and I got this message: "Microsoft Visual Basic 6.0 was not detected on this system".

On my own PC, I have the full Visual Basic 6.0 installed. The other computer only has VBA. I am thinking that this is the problem. But is there a faster way for me to get the needed components onto the other computer instead of completely installing Visual Basic 6.0?


If anyone has any other ideas or input into my current situation, I would greatly appreciate it!

Thanks.
 
Onyx962 said:
But is there a faster way for me to get the needed components onto the other computer instead of completely installing Visual Basic 6.0?
Not only faster, but you would be breaking your license agreement if you install VB6 on computers other than your own.

You need to create an install package that includes the VB6 controls you are using.

 
>You need to create an install package that includes the VB6 controls you are using.

Even that may not help. Since you are trying to use VB6 controls in a VBA app on a machine without VB6 you will find that, even if you use an installer to package and deploy the controls you'll get an error because UserForms generally require a design-time licences for many VB6 controls (even at run-time), and you only get run-time licencing with deployed controls. And, as the OP has discovered, you can't apply VB6 design-time licencing (which is what VB6Cli does) onto a machine that doesn't actually have VB6
 
I wonder if you could get away with it if you enclosed the desired controls in an ActiveX control?
 
Well, strongm is right on the money. But I haven't been able to find a way to get around it.

@BobRodes: I have never created my own ActiveX control but if there is a possibility that would work I will give it a try! I will look into it.

The Visual Basic for Applications within Great Plains does not allow me to create an EXE. So I can't really create an install package anyways. It has its own Customization Maintenance screen from which I can select the references I use, and the forms I create, and export them into a *.package file. Then, I can simply import this *.package file into another installation of Great Plains.

One of the things I tried recently was simply going on one of the non-development computers (without VB6 installed) and creating my form from scratch within the Great Plains VBA. As soon as I tried adding a DataGrid to the form, it said "The control could not be created because it is not properly licensed."

I communicated with Microsoft through a support ticket, and according to the representative, I would have to install full blown Visual Basic 6 on the other computer in order for my DataGrid to work. I need both design-time and run-time licensing for the control. The reason I need design-time I believe is because when I import a *.package file, it adds my form and references into their VBA editor. So even if they aren't going to be modifying my form, the option is still available.

The representative at Microsoft recommended trying a FlexGrid instead. So I tried the same thing on the non-development computer, and got the same licensing problem when trying to add the FlexGrid to the form.

I cannot install Visual Basic 6 on all of the computers I want to use this on....
Is there an alternative to the DataGrid and FlexGrid that will work in VBA and allow me to display (and possibly edit?) information from one table in a MSSQL2000 database? What would be the best way for me to do this if there isn't something similar to a DataGrid?
 
If you're having trouble with those two, you'll probably have trouble with any of the other ActiveX controls too. That means that you're limited to the native controls. An alternative is to research third-party grid controls, of which there are several. The first example I find when googling to "activex control data grid" is
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top