Autor
|
Tema: Ayuda Código Vba (Leído 2,646 veces)
|
Xantus
Desconectado
Mensajes: 2
|
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: Private Sub Comando60_DblClick(Cancel As Integer)
Dim rs As DAO.Recordset If MsgBox("Se va a proceder al envío de 1ª Reclamación, ¿Continuar?", vbYesNo + vbExclamation, "Atención") = vbNo Then Exit Sub Set rs = CurrentDb.OpenRecordset("Select * from [EnvioPrimera]") If rs.EOF Then MsgBox "No hay registros pendientes de reclamar.", vbInformation, "Atención" Else Do Until rs.EOF 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") rs.Edit rs("FECHA_1_RECLAMACION") = Date rs.Update rs.MoveNext Loop MsgBox "Correos Enviados Correctamente.", vbInformation End If rs.Close Set rs = Nothing End Sub Copio ademas el inicio de la funcion Enviar_Email_EnvioPrimera: Private Sub Enviar_Email_Envioprimera(NUMERO_DE_CONTRATO, OFICINA, FECHA_1_RECLAMACION, CONTRATO, CCM, SEGURO, GARANTIA_RECOMPRA, ENVIO_RENT_and_TECH)
On Error GoTo Err_CORREO_Click Dim dbs As Database, qdf As QueryDef, consulta As String Dim cuerpo As String, para As String, cc As String, asunto As String Dim comentario As String Dim CONTRATO As String Dim CCM As String, GARANTIA_RECOMPRA As String, SEGURO As String, _ Anexo_1 As String, Anexo_2 As String, _ Anexo_3 As String, Anexo_4 As String 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.
|
|
|
En línea
|
|
|
|
MCKSys Argentina
|
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): Private Sub Enviar_Email_Envioprimera(NUMERO_DE_CONTRATO, OFICINA, FECHA_1_RECLAMACION, CONTRATO, CCM, SEGURO, GARANTIA_RECOMPRA, ENVIO_RENT_and_TECH)
Tu llamada (9 parámetros): 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")
Saludos!
|
|
|
En línea
|
MCKSys Argentina "Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
|
|
|
Xantus
Desconectado
Mensajes: 2
|
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!
|
|
|
En línea
|
|
|
|
Serapis
|
estás enmascarando variables... La declaración de esta función tiene todos los parámetros de tipo variant... 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... ... 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: Private Sub Command1_Click() Call Enviar_Email_Envioprimera("hola", " esto no se vera", #11/2/2019#, "blablabla", "ccm", "muy seguro", "no recompramos", "a saber") End Sub Private Sub Enviar_Email_Envioprimera(NUMERO_DE_CONTRATO, OFICINA, FECHA_1_RECLAMACION, CONTRATO, CCM, SEGURO, GARANTIA_RECOMPRA, ENVIO_RENT_and_TECH) Dim CONTRATO As String Dim CCM As String, GARANTIA_RECOMPRA As String, SEGURO As String MsgBox CONTRATO & vbCrLf & CCM & vbCrLf & GARANTIA_RECOMPRA & vbCrLf & SEGURO End Sub
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.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda con codigo en C (no me ejecuta un for y necesito ayuda)
« 1 2 3 »
Programación C/C++
|
Søra
|
22
|
13,274
|
22 Mayo 2010, 00:22 am
por Littlehorse
|
|
|
¿Cuál es la diferencia entre código objeto, código máquina y código binario?
Programación General
|
Aikanáro Anário
|
9
|
31,399
|
23 Diciembre 2010, 15:19 pm
por pucheto
|
|
|
ayuda codigo
Programación C/C++
|
kunai
|
3
|
2,863
|
1 Junio 2011, 12:56 pm
por Akai
|
|
|
ayuda!! necesito ayuda con este pequeño codigo en c++
Programación C/C++
|
giraffe
|
1
|
6,273
|
27 Mayo 2015, 06:25 am
por engel lex
|
|
|
Ayuda con un código
Programación C/C++
|
Lady_Shagrath
|
6
|
10,110
|
4 Marzo 2023, 03:43 am
por Lady_Shagrath
|
|