La aplicación utiliza un valor de tipo no válido para la operación actual.
Esto quiere decir que estamos parametrizando mal. Necesitamos decirle al objeto Command que el parámetro es de tipo Date. Según dices, el campo que buscamos en la base de datos, fecha, es de tipo Date, ¿verdad? Intentemos esto:
Sustituye esta linea
Recordset1_cmd.Parameters.Append Recordset1_cmd.CreateParameter("param1", 133, 1, -1, Recordset1__MMColParam)
por esta
Recordset1_cmd.Parameters.Append Recordset1_cmd.CreateParameter("param1", 7, 1, Recordset1__MMColParam)
Asi, tal como está. Esto quiere decir que el parámetro es de tipo Date. Fíjate en las equivalencias en esta página:
http://www.w3schools.com/ado/ado_datatypes.asp
Prueba y nos cuentas
Un saludo