Prueba esto. En tu consulta inicial cambia de:
consulta_dia.Open "SELECT * FROM registro where dia='" & fecha2.Value & "'", conexionBD, adOpenDynamic, adLockOptimistica
consulta_dia.Open "SELECT * FROM registro where dia='" & Format(fecha2.Value, "YYYY/MM/DD") & "'", conexionBD, adOpenStatic, adLockOptimistic
y en la sumatoria has que el motor trabaje por ti, si haces la consulta y solo recorres para hacer la suma cambia de :
'SUMATORIA DE TOTAL
If consulta_dia.State = adStateOpen Then
consulta_dia.Close
End If
consulta_dia.Open "SELECT * FROM facturacion where dia='" & fecha2 & "'", conexionBD, adOpenDynamic, adLockOptimistic
While Not consulta_dia.BOF And Not consulta_dia.EOF
monto = monto + consulta_dia.Fields("monto")
consulta_dia.MoveNext
Wend
Text1 = total
a esto
'SUMATORIA DE TOTAL
If consulta_dia.State = 1 then consulta_dia.close
consulta_dia.Open "SELECT sum(monto) as Total FROM facturacion where dia='" & format(fecha2, "YYYY/MM/DD") & "'", conexionBD, adOpenStatic, adLockOptimistic
If consulta_dia.RecordCount > 0 then
Text1 = consulta_dia!Total
End If
Si vas a usar para otra cosa consulta_dia entonces si usa tu While-Wend
Saludos