SOMATORIO DO VB
[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]
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]
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??
VC quer somar quais valores em que momento nesta sua rotina??
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??
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