Si hai ragione... e ti confermo che sia l'evento CLICK che AFTERUPDATE comprono il DOUBLECLICK.
Ti propongo questa variante che ho provato e funziona
Ipotizzo che la ListBox abbia come Colonna Associata un campo PK di Tipo Counter(Long) ma puoi modificare facilmente la variabile che uso per memorizzare il codice.
Option Compare Database
Option Explicit
' Questa è la Variabile da modificare a seconda della BoundColumn
Dim oldlngID As Long
Private Sub NomeListBox_AfterUpdate()
oldlngID = Me.NomeListBox.Value
MsgBox "DOPOAGG"
End Sub
Private Sub NomeListBox_BeforeUpdate(Cancel As Integer)
Cancel = (Me.NomeListBox.Value = oldlngID)
End Sub
Private Sub NomeListBox_DblClick(Cancel As Integer)
MsgBox "DOPPIOCLICK"
End Sub
Da verifica l'evento AFTER_UPDATE si verifica solo alla 1° volta che viene selezionato un NUOVO ITEM, poi su quell'ITEM viene attivato il DOPPIOCLICK se lo esegui... per il fatto che annullo il BeforeUpdate, quindi di conseguenza si eliminano AFTER e CLICK...