SOMATORIO DO VB

USUARIO.EXCLUIDOS 28/07/2005 08:10:59
#96345
[txt-size=4][txt-color=#ff0000]Estou tendo um problema c/ o meu banco de dados. Eu tenho uma tabela com o nome Residencial e tem os respectivos campos: Residencial, Condominio, Numero, Taxa_incendio, Seguro_incendio, IPTU, Cota_Extra e Total. Todos os campos estão c/ o tipo de dados Número c/ menos o Número q é texto. O problema mesmo q está dando é na minha aplicação, pois quando incluo os registros nos campos (.text) ele não está aparecendo no total o somatório dos campos. Abaixo está toda a rotina do Formulário Residencial:[/txt-color][/txt-size]

Option Explicit
Dim WithEvents rs_imobiliaria As ADODB.Recordset
Dim strsql As String

Private Sub Salvar()

'Se estiver no modo de inclusão então salva
If Adodc1.Recordset.EditMode = adEditAdd Then
On Error GoTo SalvarFailure:
Adodc1.Recordset.Update 'salva o registro
On Error GoTo 0 'desabilita o tratamento de erros
'Como não precisa salvar, então desabilita a opção Salvar do Menu
mnuSalvar.Enabled = False

End If 'Inicio Tratamento de erros (SalvarDone e SalvarFailure são chamadas Labels)

Call rTotal 'Chama a rotina de somatorio de Total

SalvarDone:

Exit Sub

SalvarFailure:
MsgBox Err.Number & vbCrLf & Err.Description 'Exibe a descrição do erro

Resume SalvarDone 'continua a execução a partir da linha SalvarDone

End Sub

Private Sub cmd_alterar_Click()

'MsgBox ("Em Desenvolvimento! Aguarde!")

Call Visivel
MsgBox ("Deseja mesmo Alterar o Registro ?")
cmd_Gravar.Enabled = True
End Sub

Private Sub cmd_excluir_Click()

'ativa o tratamento de erros
On Error GoTo DeleteFailure:

If MsgBox("Deseja Salvar os dados ?", vbYesNo) = vbYes Then

'exclui o registro
Adodc1.Recordset.Delete
'O registro atual agora é invalido então movemos para o anterior
Adodc1.Recordset.MovePrevious

'Se estivermos no inicio do arquivo movemos para o primeiro registro
End If

If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveFirst
End If 'Inicio do tratamento de errosDeleteDone:

DeleteDone:
Exit Sub

DeleteFailure:

MsgBox Err.Number & vbCrLf & Err.Description

Resume DeleteDone

txt_Residencial.SetFocus

Call Invisivel

End Sub

Private Sub cmd_Fechar_Click()

'Se estiver no modo de inclusão, então pergunta se quer salvar

Call Invisivel

If Adodc1.Recordset.EditMode = adEditAdd Then

If MsgBox("Deseja Salvar os dados ?", vbYesNo) = vbYes Then

Call Salvar

End If

End If

Unload Me

End Sub

Private Sub cmd_Gravar_Click()

'Se estiver no modo de inclusão , então pergunta se quer salvar
If Adodc1.Recordset.EditMode = adEditAdd Then

If MsgBox("Deseja Salvar os dados ?", vbYesNo) = vbYes Then

Call Salvar

End If

End If

txt_Residencial.SetFocus

Call Invisivel
End Sub

Private Sub cmd_imprimir_Click()

Dim aux As String
Dim sCaminho As String

sCaminho = App.Path

On Error GoTo trata_erro

Crystal.ReportFileName = sCaminho & "ptImovel_Residencial.rpt"

CommonDialog1.CancelError = True

CommonDialog1.Flags = 64

CommonDialog1.ShowPrinter

Crystal.Action = 1

Exit Sub

trata_erro:

MsgBox "Erro no Relatório!" & vbCrLf & _
"Informe ao Técnico Responsável"

End Sub

Private Sub cmd_incluir_Click()

'Inclui uma nova linha em branco na memória
Adodc1.Recordset.AddNew
'habilita a opção Salvar do Menu
Call Visivel

mnuSalvar.Enabled = True

txt_Residencial.SetFocus
txt_Total.Text = ""
cmd_Gravar.Enabled = True

End Sub


Private Sub cmd_Primeiro_Click(Index As Integer)

If rs_imobiliaria.BOF = False And rs_imobiliaria.EOF = False Then
rs_imobiliaria.MoveFirst
End If

End Sub

Private Sub cmd_Proximo_Click()

If rs_imobiliaria.BOF = False And rs_imobiliaria.EOF = False Then
rs_imobiliaria.MoveNext
End If

End Sub

Private Sub cmd_Ultimo_Click(Index As Integer)

If rs_imobiliaria.BOF = False And rs_imobiliaria.EOF = False Then
rs_imobiliaria.MoveLast
End If

End Sub

Private Sub Form_Load()

Me.Top = 590
Me.Left = 0
End Sub

Private Sub mnuAlterar_Click()

Call cmd_alterar_Click

End Sub

Private Sub mnuDeletar_Click()

Call cmd_excluir_Click

End Sub

Private Sub mnuImprimir_Click()

Call cmd_imprimir_Click

End Sub

Private Sub mnuNovo_Click()

Call cmd_incluir_Click

End Sub

Private Sub mnuSair_Click()

Call cmd_Fechar_Click

End Sub

Private Sub mnuSalvar_Click()

Call cmd_Gravar_Click

End Sub

Private Sub Invisivel()

txt_Residencial.Enabled = False
lbl_Residencial.Enabled = False
txt_Condominio.Enabled = False
lbl_Condominio.Enabled = False
txt_Cota_Extra.Enabled = False
lbl_Cota_Extra.Enabled = False
txt_IPTU.Enabled = False
lbl_IPTU.Enabled = False
txt_Numero.Enabled = False
lbl_Numero.Enabled = False
txt_Seguro_Incendio.Enabled = False
lbl_Seguro_Incendio.Enabled = False
txt_Taxa_Incendio.Enabled = False
lbl_Taxa_Incendio.Enabled = False
txt_Total.Enabled = False
lbl_Total.Enabled = False

End Sub

Private Sub Visivel()

txt_Residencial.Enabled = True
lbl_Residencial.Enabled = True
txt_Condominio.Enabled = True
lbl_Condominio.Enabled = True
txt_Cota_Extra.Enabled = True
lbl_Cota_Extra.Enabled = True
txt_IPTU.Enabled = True
lbl_IPTU.Enabled = True
txt_Numero.Enabled = True
lbl_Numero.Enabled = True
txt_Seguro_Incendio.Enabled = True
lbl_Seguro_Incendio.Enabled = True
txt_Taxa_Incendio.Enabled = True
lbl_Taxa_Incendio.Enabled = True
' txt_Total.Enabled = True
lbl_Total.Enabled = True

End Sub

Private Sub rTotal()

Dim Resultado As String

If Residencial.Visible = True Then

Resultado = Val(txt_Residencial.Text) _
+ Val(txt_Condominio.Text) _
+ Val(txt_Taxa_Incendio.Text) _
+ Val(txt_Seguro_Incendio.Text) _
+ Val(txt_IPTU.Text) _
+ Val(txt_Cota_Extra)

txt_Total.Text = Val(Resultado)
End If

Adodc1.Recordset.Update 'salva o registro do campo total
End Sub

[txt-backcolor=#0000ff]Tem como modificar isso?!! Alguém pode me ajudar?!!

Obrigado desde já!![/txt-backcolor][txt-size=3] [/txt-size]
LCSD 28/07/2005 10:20:32
#96365
Por favor, explique melhor o que VC quer fazer, e em qual momento VC quer fazer??

VC quer somar quais valores em que momento nesta sua rotina??
LCSD 28/07/2005 12:31:28
#96397
SE VC tiver que somar só um registro por vez, VC pode cirar uma função SOMAR_CAMPOS, e fazer TXTTOTAL = txt1+txt2+txt3.....

Agora, se VC quiser somar TODOS OS REGISTROS da usa tabela, será melhor VC fazer um SUM destes campos e exibir no seu TXT.

Qual dos dois se aplica na sua aplicação?? Registro por Registro, ou uma SOMA de um intervalo de registros??
Tópico encerrado , respostas não são mais permitidas