Ne fai 3 ed a seconda della Selezione rendi VISIBILE solo quella correlata.
Io non userei questa tecnica in quanto le Combo sono Oggetti BOUND e di fatto CARICANO dati... quindi X3
Il fatto è che l'ordine delle Colonne è dato dal predicato SQL, quindi basta cambiare il predicato SQL della combo.
Basterebbe una cosa simile
Private Sub NomeOptionButton_AfterUpdate()
Dim sSQL As String
Select Case Me!NomePtionButton.Value
Case Is=0
sSQL="SELECT IdPK, Campo1, Campo2, Campo3 From T1 OrderBy Campo1"
Case Is=1
sSQL="SELECT IdPK, Campo2, Campo1, Campo3 From T1 OrderBy Campo2"
Case Is=2
sSQL="SELECT IdPK, Campo3, Campo1, Campo2 From T1 OrderBy Campo3"
End Select
Me!NomeCombo.RowSource=sSQL
End Sub
Questo ha un piccolo svantaggio, come vedi le colonne cambiano di posto, e, se nel tuo codice recuperi il valore puntando all'indice colonna cambiano i riferimenti... ci sono metodi per mantenere l'allineamento ma se serve ne vale la pena altrimenti no...!