Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

manga

Erro 800a0414

Recommended Posts

Pessoal, tô recebendo o seguinte erro e não tenho a menor idéia do que seja:

 

Erro de compilação do Microsoft VBScript error '800a0414'

 

Não é possível usar parênteses ao chamar um Sub

 

/websoccer/controle/pc_cobranca_go.asp, line 38

 

EnviaEmail(id, tipo, valor)

 

O código é esse:

If Request.Form("dsform") = 1 Then  RS.Open "tbl_pgtos", connect, 0, 1, 2  For Each FormField in Request.Form  If Ucase(FormField) <> "DSFORM" AND Ucase(FormField) <> "SUBMIT.X" AND Ucase(FormField) <> "SUBMIT.Y" Then	id = Request.Form(FormField)	id_socio = FormField	qString = "SELECT * FROM tbl_pgtos WHERE id = "&id	Set RS = connect.execute(qString)	If RS.EOF Then  msg = msg & "ID: "&id&" - Nenhum registro encontrado."	Else  If RS("ic_vip") = -1 Then 	 tipo = "VIP" 	 valor = Application("wcusto_vip") * 3  Else 	 tipo = "Padrão" 	 valor = Application("wcusto_socio") * 3  End If****LINHA 38:	EnviaEmail(id, tipo, valor)	End IfEnd IfNextFechar()'Response.Redirect "pc_cobranca.asp?msg="&msgEnd If

Alguém já viu isso ? :wacko:

 

Valeu

Manga

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim você criou uma Sub para enviar um emal, correto? Para chama-la e passar os parâmetros não use (), chame ela assim:

EnviaEmail id, tipo, valor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu mais uma vez Salgado!Agora para eu aprender: Tenho outras funções que chamo usando parenteses e nunca tive esse erro. Você sabe a razão?Manga

Compartilhar este post


Link para o post
Compartilhar em outros sites

Function's se usa com parenteses, Sub's não.

Function's retorna dados, Sub's não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é Salgado, mas EnviaEmail está definida no código como Function e não Sub:

 

Function EnviaEmail(id, tipo, valor)Dim MailerDim MessageTextetc.....

E como estou só testando ela não envia email, só escreve o corpo do texto. Talvez por não retornar um valor o ASP considere ela uma SUB, será isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deve ser, você pode postar sua Function?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro. Note que essa é a versão para teste, por isso não gera email

 

Function EnviaEmail(id, tipo, valor)Dim MailerDim MessageText'Set Mailer = Server.CreateObject("SMTPsvg.Mailer")'Mailer.Organization = Application("wMailer_Organization")'Mailer.DateTime = Application("wMailer_DateTime")'Mailer.SMTPLog = Application("wMailer_SMTPlog")'Mailer.FromName   = RS("ds_nome")'Mailer.FromAddress= RS("ds_email")'Mailer.RemoteHost = Application("wMailer_RemoteHost")'Mailer.AddRecipient Application("wMailer_Name"), Application("wMailer_Address")'Mailer.Subject    = "Cobrança Sócio "&tipo&" - Período: "&RS("dt_inicio")&" a "&RS("dt_fim")MessageText = RS("ds_nome")&","& "<br>" & "<br>" _	&"Seguem abaixo os dados referentes à cobrança de sua associação à WebSoccer." & "<br>" & "<br>" _	&"Sócio: "&tipo & "<br>" _	&"Nome: "&RS("ds_nome_comp") & "<br>" _	&"Período: "&RS("dt_inicio")&" a "&RS("dt_fim") & "<br>" _	&"Valor: "&valor&",00" & "<br>" _	&"Vencimento: "&RS("dt_venc") & "<br>" & "<br>"Response.Write MessageText'Mailer.BodyText = MessageText'If Not Mailer.SendMail then'	msg = msg &"Erro na cobrança para ID: "&RS("id")&" Erro: "&Mailer.Response'Else	connect.execute "UPDATE tbl_pgtos SET dt_cobranca = CDate('"&Date&"') WHERE id = "&id&""	msg = msg& "Cobrança para ID: "&RS("id")&" - Nome: "&RS("ds_nome")&" enviada com sucesso"'End If'Set Mailer = NothingEnd Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi você deve fazer assim:

 

variavel = EnviaEmail(id, tipo, valor)

 

Tenta aí!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, prá gente concluir esse tópico o que pude aprender é o seguinte:

 

Mesmo que você crie uma Function, se ela não retornar um valor numa instrução tipo functionnome = X+Y , o ASP vai entendê-la como uma Sub. Isso fica claro na mensagem de erro que recebi. Mesmo tendo declarado EnviaEmail como Function, o ASP retornou:

 

Erro de compilação do Microsoft VBScript error '800a0414'

 

Não é possível usar parênteses ao chamar um Sub

 

pc_cobranca_go.asp, line 38 EnviaEmail(id, tipo, valor)

 

Como eu estava passando as variáveis entre parenteses o erro aconteceu. Para resolver, bastou alterar o nome de Function para Sub e passar as variáveis sem parenteses como o Salgado falou:

 

EnviaEmail id, tipo, valor

 

É isso aí, Valeu a ajuda!

T+

Manga

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.