USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Socorro ! Urgente !
Bilbo
não registrado
Postada em 22/12/2004 11:40 hs   
Fiz um loop Do While e dentro dele coloquei a seguinte função:
 
Private Function AuxShr(Numero, BShr)
AuxShr = Int(Numero / (2 ^ BShr))
End Function
 
Quando rodo o sistema ocorre um erro. Se eu colocar esta função fora do Do While o problema desaparece, mas só que preciso de rodá-la dentro do loop para que seja executada em cada registro do banco. Como faço ?
 
Muito grato,
Bilbo.
     
X-Crow Original
Pontos: 2843
VITÓRIA
ES - BRASIL
Postada em 22/12/2004 12:05 hs         
Experimente Mudar a declaração da mesma:
De:
Private Function AuxShr(Numero, BShr)
AuxShr = Int(Numero / (2 ^ BShr))
End Function
Para:
Private Function AuxShr(ByVal Numero, ByVal BShr)
AuxShr = Int(Numero / (2 ^ BShr))
End Function
Isso pode estar ocorrendo devido ao fato de você estar passando o valor por referência.
Espero ter ajudado... Abraços, Sidnei
     
Bilbo
não registrado
Postada em 22/12/2004 12:22 hs   
Não resolveu. Ocorre o seguinte erro:
 
Error Type:
Microsoft VBScript compilation (0x800A03EA)
Syntax error
/online/cadastro/mudasenha.asp, line 39, column 8
Private Function AuxShr(ByVal Numero, ByVal BShr)
-------^
     
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
Postada em 22/12/2004 13:12 hs         
Private Function AuxShr(Numero, BShr)
  if (2 ^ BShr)  > 0 then'não deixa dividir por zero
     AuxShr = Int(Numero / (2 ^ BShr))
  else
     AuxShr  = 0
  end if
End Function
 
     
Bilbo
não registrado
Postada em 22/12/2004 16:07 hs   
O problema não é a divisão por zero e sim o Private Function. Ainda não consegui resolver isto. Quem pode me ajudar ?
     
X-Crow Original
Pontos: 2843
VITÓRIA
ES - BRASIL
Postada em 23/12/2004 12:16 hs         
Você está declarando a function dentro do loop??Emoções
Vou exemplificar:
Private Sub LE_Registros()
' ...
' ...
RsRecordset.moveMin
'Correto:
Do

Resultado = Resultado + AuxShr(Pass_Numero, Pass_BShr)

Loop until RsRecordset.eof=true
Msgbox Resultado
End Sub
 
Private Function AuxShr(Numero, BShr)
' Deve estar no mesmo módulo da sub acima
  if (2 ^ BShr)  > 0 then 'não deixa dividir por zero
     AuxShr = Int(Numero / (2 ^ BShr))
  else
     AuxShr  = 0
  end if
End Function
Obs.: Espero que você não tenha declarado a function dentro do loop. Digo isso pois pela forma que vc descreveu o problema é o q parece q você fez. Por não acreditar nisso reescrevia estrutura acima. Tente e veja se funciona.
Abraços, Sidnei
 
Editado em 01/01/2005
 
 
Não resolveu. Ocorre o seguinte erro:
 
"Error Type:
Microsoft VBScript compilation (0x800A03EA)
Syntax error
/online/cadastro/mudasenha.asp, line 39, column 8
Private Function AuxShr(ByVal Numero, ByVal BShr)"
 
Mannow isso é um erro de ASP! Você postou no fórum errado Emoções!
Mas mesmo assim vamos tentar de novo:
1 - Tire o "private" da declaração:
Function AuxShr(Numero, BShr)
2 - Declare a função fora da sub(Vc não pode aninhar um sub/func dentro de outra).
Abraços
TÓPICO EDITADO
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página