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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Variável
Omar Chaves
não registrado
ENUNCIADA !
Postada em 07/05/2004 21:38 hs   
Como faço para somar 4 variáveis de tipo Integer sendo que uma delas tem o valor igual
a zero.
A = 2 , B = 0, C=0 e D = 2
Fiz uma soma assim;
Text1 = A + B + C + D
O retorno foi  Text1 = 0.
Sendo que deveria ser Text1 = 4
Por que a soma esta dando Zero(0).
Como eu deveria fazer para dar certo
Omar
 
   
Jose.Niz
CURITIBA
PR - BRASIL
Postada em 07/05/2004 22:22 hs         
Poste o seu código contendo todos os eventos onde é alterado o valod da textbox text1.
     
Omar Chaves
não registrado
ENUNCIADA !
Postada em 08/05/2004 21:49 hs   
Private Sub Testar1()
Dim W1 As Integer
 Dim BD As Database
Dim strSQL As String, TabVendas As Recordset
Set BD = Workspaces(0).OpenDatabase(App.Path & "\Vendas.mdb")
strSQL = "select sum(Qtdade) as Soma " & " from TabVendas WHERE TabVendas.Codpro= '" & TxtCodigo.Text & "' And TabVendas.DataRegistro between #" & Format(Text1, "mm/dd/yyyy") & "# and #" & Format(Text2, "mm/dd/yyyy") & "#"
Set TabVendas = BD.OpenRecordset(strSQL)
 
If Not IsNull(TabVendas!soma) Then
W1 = TabVendas!soma
 End If
 Private Sub Testar2()
Dim W2 As Integer
 Dim BD As Database
Dim strSQL As String, TabVendas As Recordset
Set BD = Workspaces(0).OpenDatabase(App.Path & "\Vendas.mdb")
strSQL = "select sum(Qtdade) as Somab " & " from TabVendas WHERE TabVendas.Codpro= '" & TxtCodigo.Text & "' And TabVendas.DataRegistro between #" & Format(Text1, "mm/dd/yyyy") & "# and #" & Format(Text2, "mm/dd/yyyy") & "#"
Set TabVendas = BD.OpenRecordset(strSQL)
 
If Not IsNull(TabVendas!somab) Then
W2 = TabVendas!somab
 End If
   
Private Sub Testar1()
Dim W3 As Integer
 Dim BD As Database
Dim strSQL As String, TabVendas As Recordset
Set BD = Workspaces(0).OpenDatabase(App.Path & "\Vendas.mdb")
strSQL = "select sum(Qtdade) as Somac " & " from TabVendas WHERE TabVendas.Codpro= '" & TxtCodigo.Text & "' And TabVendas.DataRegistro between #" & Format(Text1, "mm/dd/yyyy") & "# and #" & Format(Text2, "mm/dd/yyyy") & "#"
Set TabVendas = BD.OpenRecordset(strSQL)
 
If Not IsNull(TabVendas!somac) Then
W3 = TabVendas!somac
 End If
  
 
txtSAcuMes = W1 + W2 + W3 
 
   
Jose.Niz
CURITIBA
PR - BRASIL
Postada em 08/05/2004 22:18 hs         
Sem a postagem do seu código seria impossivel saber o que estava acontecendo.
 
As variáveis W1, W2 e W3 estão definidas dentro de procedimentos, logo os valores atribuidos a elas só são visíveis dentro desses procedimentos.
Como você deve estar trabalhando sem definir a opção Option Explicit (que obriga a definição de variáveis) no topo do código quando vc utiliza txtSAcuMes = W1 + W2 + W3 o VB esta definindo uma segunda cópia dessas variáveis com valor zero.
 
Resumindo: Você tem as variaveis W1, W2 e W3 com valores dentro dos procedimentos e W1, W2 e W3 do lado de fora dos procedimentos com valor zero, é como se você tivesse uma cópia dessas variaveis porem com valores diferentes.
 
Solução:
1) Inclua a linha Option Explicit no topo do form ou módulo;
2) Mova a definição dessas variaveis para logo após a linha Option Explicit (remova-as de dentro dos procedimentos).
 
Sempre que as variaveis são definidas no topo do form/módulo elas são visiveis em todos os procedimentos/funções que estão no form/módulo em questão.
Ainda, se a variavel for definida como Public no topo de um módulo ela será visivel em qualquer procedimento/função de qualquer form/módulo.
 
 
TÓPICO EDITADO
   
Página(s): 1/1    


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