Jump to content

Recommended Posts

Posted (edited)

Boa tarde, gostava de saber se é possivel fazer um calculo como o seguinte exempo

Tenho o Campo VALOR e o Campo TIPO

E no campo tipo sei que o valor 1 e 4 é de entrada de fundos e o valor 2 e 3 é de saida

Gostava de saber se é possivel fazer uma instruçao que fizesse a soma dos de entrada e dos de saida e depois subtraisse os dois para retornar o total de fundos.

Exemplo:

total de fundos =soma(Valores onde tipo = x...) - soma(Valores onde tipo = y...)

Obrigado!

Edited by crax15

Pedro'O

Posted (edited)

boas

estude este cod e adapte com o seu exemplo que colocou.

Option Compare Database
Dim Con As ADODB.Connection
Dim Com As ADODB.Command


Private Sub cmdConsulta_Click()
Dim Comd As New ADODB.Command
Dim rst As New ADODB.Recordset
'comando sem parâmetros
Comd.ActiveConnection = CurrentProject.Connection
Comd.CommandText = "SELECT *FROM ConsTeste where ID = 2"
Comd.CommandType = adCmdText: Set rst = Comd.Execute
Texto2.SetFocus
Texto2.Text = rst!nome 'amostra o campo nome
Comd.Cancel
End Sub
Private Sub CmdInserir_Click()
Dim Comd As New ADODB.Command
Dim rst As New ADODB.Recordset
Dim sql As String
Texto2.SetFocus
If Texto2.Value <> "" Then
'insere o valor do campo texto2 na coluna nome da tabela
sql = ("INSERT INTO teste (nome) values ('" & Texto2 & "');")
Comd.ActiveConnection = CurrentProject.Connection
Comd.CommandType = adCmdText
Comd.CommandText = sql
Comd.Execute
MsgBox ("insert com sucesso")
Texto2 = ""
Else
MsgBox ("preencha o campo nome")
End If
Comd.Cancel
Set Comd = Nothing
End Sub

Private Sub cmdUpdate_Click()
Dim com As New Command
Texto2.SetFocus
Dim texto As Boolean
texto = True
'comando sem parâmetros
Dim sql As String
sql = ("UPDATE teste set moeda = " & texto & " WHERE ID = 20")
com.ActiveConnection = CurrentProject.Connection
com.CommandType = adCmdText
com.CommandText = sql
com.Execute
MsgBox ("UPDATE com sucesso")
Set com = Nothing
End Sub

cumps

acao

ou no campo aonde queres que apareçam os dados (total de fundos) na vista de estrutura escolhes o evento e depois e clikas em ...pontos e depois em construtor de código e fazes as contas.

utilizas a função me

me.nomedocampo.text = me.nomedocampo..x.value + nomedocampo..y.value etc.

penso que também deve resultar.

cumps

acao

Edited by acao
Posted

Em SQL, isso deve ficar algo como:

select
  (select sum(valor) from tbl where tipo = 1 or tipo = 4)
  - (select sum(valor) from tbl where tipo = 2 or tipo = 3);

Ou seja, calculas a soma das entradas e a soma das saídas, e depois aplicas a subtracção.

Muito, muito obrigado! Resultou!

deixo aqui o codigo de como ficou:

SELECT Distinct((SELECT SUM(valor) FROM Movimentos WHERE tipo = 1 OR tipo = 4)-(SELECT SUM(valor) FROM Movimentos WHERE tipo = 2 OR tipo = 3)) AS Saldo From Movimentos ;

tive de adicionar o distinct pois ele repetia o mesmo valor por todos os campos que tinha.

Andei lá perto... 😛

Pedro'O

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.