il fatto è che txtGgDataEmis = Day(txtDataEmis) da errore solo se inserisco quel loop che riempie la combo perchè txtDataEmis risulta poi essere vuoto...non so se vi è kiaro...speriamo

codice:
	Set cmbIdComR.DataSource = rs
        cmbIdComR.DataField = "commessa"
        
   
    'Riempio la ComboBox della Commessa di Riferimento
    Do Until rs.EOF
       cmbIdComR.AddItem rs("commessa")
        rs.MoveNext
    Loop
   

Private Sub txtDataEmis_Change()

    txtGgDataEmis = Day(txtDataEmis)
    txtMmDataEmis = Month(txtDataEmis)
    txtAaDataEmis = Year(txtDataEmis)

End Sub
sembra come se alla fine del loop si trovasse tutto su un recordset vuoto e quindi i campi del form rimangono vuoti rendendo impossibile la funzione Day(txtDataEmis)

...