I think I now understand what is going on.
The combo boxes were defined with their individual items in the ribbon record. They did not refresh.
As a test, I tried storing the items for one combo in a table and populating the combo using the getItemCount, getItemLabel and getItemImage callbacks. InvalidateControl then refreshed the ribbon and I was able to select the same item repeatedly, as required.
Unfortunately, I now have a problem with getItemImage. When I try to load an imageMso it always displays a large image. The code for this is below:
Sub GetComboImage(control As IRibbonControl, index As Integer, ByRef Image)
Dim cmd As New adodb.Command, rs1 As adodb.Recordset
Set rs1 = New adodb.Recordset
rs1.Open "SELECT Image FROM tblRibbonCombos WHERE Combo = '" & control.ID & "' AND SortOrder = " & index, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
If rs1.EOF = False Then
rs1.MoveFirst
Image = rs1("Image")
End If
rs1.Close
Set rs1 = Nothing
End Sub
For the other Combos that are defined with their individual items in the uSysRibbons record using the imageMso property (e.g. imageMso="ExportExcel"), these are displayed as small images.
Any assistance would be appreciated. Thanks.