A good question! Many years ago we wrote a tool to automate this process for VB6 projects. It is OCX Updater:
http://10tec.com/vb6-project-references-update/ I do not know whether this approach can be applied to MS Access forms, but I have an idea.
You can export an Access form to a text file using the undocumented Application.SaveAsText method:
Howto: Export all Forms into text file[s] If you open the exported text file, you'll find a block describing an iGrid instance on a form similar to this:
Begin CustomControl
Enabled = NotDefault
SizeMode =1
OldBorderStyle =0
OverlapFlags =85
Left =226
Top =226
Width =9360
Height =7950
AutoActivate =1
BorderColor =12835293
Name ="grdMain"
OleData = Begin
0x000e0000d0cf11e0a1b11ae1000000000000000000000000000000003e000300 ,
0xfeff090006000000000000000000000001000000020000000000000000100000 ,
0x0400000001000000feffffff0000000003000000ffffffffffffffffffffffff ,
0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ,
.........
0x0000000000000000000000000000000000000000000000000000000000000000 ,
0x0000000000000000
End
OLEClass ="10Tec iGrid Control 6.5"
Class ="iGrid650_10Tec.iGrid"
GUID = Begin
0x96e1085a89311b47b8a27282712a55b4
End
GridlineColor =10921638
LayoutCachedLeft =226
LayoutCachedTop =226
LayoutCachedWidth =9586
LayoutCachedHeight =8176
End
Theoretically we can replace the OLEClass, Class and GUID for the old iGrid with the corresponding values from the new version of the OCX and load the new text form definition using the Application.LoadFromText method, but the only thing I am not sure about is that OleData binary field. Can we use it "as is" when upgrading to the new control this way?
You can experiment with the forms from your real-world Access database app and tell us the result here. Keep us informed, please. I think this question is interesting for many Access developers using our ActiveX grid. If all is ok, maybe, eventually we will create a tool like OCX Updater for MS Access.