Título: Ayuda Código Vba Publicado por: Xantus en 10 Febrero 2019, 16:40 pm Buenas tardes.
Quisiera pedirle a alguien que me revise el código que pongo a continuación, algo está mal pero no consigo saber que.. Situación: Tengo una consulta "EnvioPrimera" que filtra datos de una tabla y muestra aquellos en los que la columna "Envio_1_reclamacion" está en blanco. lo que quiero es que la función abra la consulta, y envíe un correo llamando a la funcion Enviar_Email_EnvioPrimera , de forma que mande el correo, escriba la fecha del día de hoy en el cmapo fecha_1_reclamación, lo actualice y pase a la siguiente hasta que todas las lineas de la columna tengan la fecha del día y finalice el proceso. Para ello tengo el siguiente código: Código: Private Sub Comando60_DblClick(Cancel As Integer) Copio ademas el inicio de la funcion Enviar_Email_EnvioPrimera: Código: Private Sub Enviar_Email_Envioprimera(NUMERO_DE_CONTRATO, OFICINA, FECHA_1_RECLAMACION, CONTRATO, CCM, SEGURO, GARANTIA_RECOMPRA, ENVIO_RENT_and_TECH) Espero alguien me pueda decir donde está el error.. Error de compilación: El número de argumentos es incorrecto o la asignación de propiedad no es válida. Dicho error me lo marca en: Enviar_Email_Envioprimera rs("NUMERO_DE_CONTRATO"), rs("OFICINA"), rs("FECHA_1_RECLAMACION"), rs("CONTRATO"), Date, rs("CCM"), rs("SEGURO"), rs("GARANTIA_RECOMPRA"), rs("ENVIO_RENT_and_TECH") Gracias de antemano!. Un saludo. Xantus. Título: Re: Ayuda Código Vba Publicado por: MCKSys Argentina en 10 Febrero 2019, 17:46 pm Hola!
El mensaje de error te lo dice explícitamente: Error de compilación: El número de argumentos es incorrecto o la asignación de propiedad no es válida. Tu función (8 parámetros): Código
Tu llamada (9 parámetros): Código
Saludos! Título: Re: Ayuda Código Vba Publicado por: Xantus en 10 Febrero 2019, 17:51 pm Cierto.
Sin embargo al quitar el parámetro date y ejecutar me da el siguiente error. Error de compilación: El argumento no es opcional. Que puede ser? Gracias! Título: Re: Ayuda Código Vba Publicado por: Serapis en 10 Febrero 2019, 23:10 pm estás enmascarando variables...
La declaración de esta función tiene todos los parámetros de tipo variant... Citar Private Sub Enviar_Email_Envioprimera(NUMERO_DE_CONTRATO, OFICINA, FECHA_1_RECLAMACION, CONTRATO, CCM, SEGURO, GARANTIA_RECOMPRA, ENVIO_RENT_and_TECH) Pero luego dentro de la función estás declarando variables con los mismos nombres... Citar ... Dim CONTRATO As String Dim CCM As String, GARANTIA_RECOMPRA As String, SEGURO As String, Con lo que forzosamente debe saltarte un error de duplicación de nombre de variables (no recuerdo de memoria el mensaje de erro exacto pero es similar) Prueba este código para verlo mejor: Código
Debes declarar en la función el tipo específico del parámetro si es conocido en tiempo de diseño (que asumo que sí), que la mayoría parecen ser strings... Además el uso de variants debe restringirse a lo estrictamente necesario, es decir cuando forzosamente un parámetro pueda ser igualmente un string, un buleano, un array, etc... porque su uso indiscriminado ralentiza en exceso la operatoria hasta 10 veces, por la comprobación de tipos y enlace en tiempo de ejecución (late binding). Con lo que si más adelante en el código usas tales variables, en realidad estás usando Y sobre el argumento no opcional, es que estás omitiendo pasar el valor de un parámetro... ...de todos modos si pones el código completo (de la función llamante y la llamada), podría verse que otros problemas tienes, con código parcial solo se puede indicar lo que se ve. |