Diciamo che ci sarebbe da capire meglio il fine di questo esercizio... perchè le soluzioni possono essere anche diverse.
IN linea banale e semplicistica hai semplicemente ragionato non da programmatore... ma da utilizzatore...!
In programmazione, risulta più utile o conveniente avere come riferimento del Mese il Numero equivalente, e questo per vari motivi, NON ultimo l'ordinamento.
Ti bastava popolare la ListBox considerando 2 Colonne, la prima Colonna che definiamo BoundColumn sarà l'indice Numerico e la possiamo impostare a Larghezza=0 per non vederla, la 2° Colonna sarà semplicemente di Visualizzazione e conterrà il Nome del Mese.
Quindi dopo aver predisposto la ListBox alla modalità "TipoOrigineRIga=Elenco valori" ed il Numero di Colonne=2 con Larghezza Colonne="0cm;3cm"
Puoi popolare la tua ListBox con questo codice su evento Load della Maschera chiamando la Funzione
Private Sub Form_Load()
Call LoadMonth(Me!NomeListBox)
End Sub
La funzione la puoi mettere anche in un Modulo Standard:
Function LoadMonths(ByRef ctl As Access.Control, Optional DefaultValue)
Dim iM As Integer
If Not (TypeOf ctl Is ComboBox Or TypeOf ctl Is ListBox) Then Exit Function
ctl.RowSource = vbNullString
For iM = 1 To 12
ctl.AddItem iM & ";" & StrConv(MonthName(iM), vbProperCase)
Next
If IsMissing(DefaultValue) Then
ctl.Value = Month(Now)
Else
ctl.Value = DefaultValue
End If
End Function
Se poi vorrai leggere nella Tua TextBox gli ItemsSelected, farai un ciclo sulla collection ItemsSelected leggendo la Column(1) invece che la Column(0) che è la BoundColumn restituita leggendo la Default_Propery [Value].
Buon lavoro.