SOMAR DATAS POSTERIORES

ADILSOO 29/08/2012 20:02:31
#408879
Boa noite galera, é assim, queria saber como posso fazer isso..

Quero somar os valores com datas maiores do que a data informada mas não sei bem como posso fazer isso, sei que o BETWEEN, usa-se para ver entre 2 datas, agora como seria pra fazer com datas maiores do que a informada?
MARCELO.TREZE 29/08/2012 20:22:55
#408883
como assim adilson não entendi?

posta um exemplo
ADILSOO 29/08/2012 20:31:41
#408884
Aew Marcelo, blz?

Então, to tentando fazer assim..

 sSQL = [Ô]SELECT * FROM lancamentofuncionario WHERE dtlanc < #[Ô] & Format(txtdtini.Text, [Ô]yyyy/mm/dd[Ô]) & [Ô]# and codfunc = [ô][Ô] & txtcodfunc.Text & [Ô][ô][Ô] 


A ideia é, vou pegar e fazer um loop e sair somando alguns campos, até que a soma desses campos satisfaça o critério(Valor) solicitado pelo usuário, assim que o valor for alcançado, vou pegar a data do registro em que o valor estipulado pelo está, ex: o usuário informa [Ô]01/01/2012[Ô] eu vou sair somando somente as datas posteriores a esta, assim que chegar no valor solicitado sai do loop, pega a data e fim, eu tentei fazer dessa forma, mas está retornando erro...
MARCELO.TREZE 29/08/2012 20:40:55
#408885
bom vamos primeiro posterior então o sinal deve ser [ô]>[ô] e não [ô]<[ô]

está meio confuso, o valor esta dentro do banco de dados?

exemplo o usuario inforama a datainicial e um valor, e vc vai fazer a soma na query para verificar este valor?

ou vc vai fazer a soma fora da quey?

ainda não entendi


ADILSOO 29/08/2012 20:50:57
#408889
Sim Marcelo, eu inverti o sinal, desculpa aí, mas então, eu acho que teria que fazer fora e em Loop, por que a hora que chegar no valor ele tem que pegar em que data deu aquele valor e apresentar para o usuário, por ex: o usuário informa a data [Ô]01/08/2012[Ô] o funcionário [Ô]8[Ô] e o valor de [Ô]R$ 1.000,00[Ô] vou sair somando o dia 01/08/2012, 02/08/2012, 03/08/2012, e aí vai, a hora que chegar no valor [Ô]R$ 1.000,00[Ô] sai do loop, pega a data vamos supor a data [Ô]16/08/2012[Ô] e apresenta que o valor de [Ô]R$ 1.000,00[Ô] é atingido até o dia [Ô]16/08/2012[Ô]..

O nome do campo data é: [Ô]dtlanc[Ô] --- esse em [Ô]date[Ô]
O nome do campo funcionário é: [Ô]codfunc[Ô] --- esse em [Ô]INT[Ô]
Os campos a serem somados é: [Ô]rendimento, hetinerebag, hetinerecx, dsrbag, dsrcx[Ô] ---- esses em [Ô]double[Ô]

Será que deu pra entender mais ou menos agora?
MARCELO.TREZE 29/08/2012 21:09:31
#408892
Resposta escolhida
Quase, estes campos a serem somados é que ficaram pendentes, porém vamos lá

você teria de fazer algo mais ou menos assim:

Dim Soma As Double

sSQL = [Ô]SELECT * FROM lancamentofuncionario WHERE dtlanc > = #[Ô] & Format(txtdtini.Text, [Ô]yyyy/mm/dd[Ô]) & [Ô]#[Ô]
Set RS = CNN.Execute(sSQL)

Do While Not RS.EOF
Soma = Soma + rs!campoqueserásomado
If Soma = ValorInformado Then
msgbox [Ô]Valor atingido em [Ô] & format(Rs!dtlanc,[Ô]dd/mm/yyyy[Ô])
Exit Do
End If
Rs.MoveNext
Loop



ADILSOO 29/08/2012 21:18:29
#408896
Então, dessa forma segue o mesmo erro anterior..
MARCELO.TREZE 29/08/2012 21:26:17
#408898
ta explicado vc ta usando o MySQL nele vc não usa # usa sempre apostrofo ([ô]) isso para qualquer tipo de de campo (data,integer, moeda, etc), e o formato de data é YYYY-MM-DD

tente assim

sSQL = [Ô]SELECT * FROM lancamentofuncionario WHERE dtlanc > = [ô][Ô] & Format(txtdtini.Text, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô][Ô]
ADILSOO 29/08/2012 22:23:04
#408910
Vou fazer os testes, por enquanto obrigado Marcelo, até mais, abraços.
Tópico encerrado , respostas não são mais permitidas