PESQUISA ENTRE DATAS COM SOMA DE VALORES VB.NET
Bom dia,
VB.NET
BD Access
Olha eu peço a ajuda de vocês, para o seguinte:
Quero criar um Form onde consultarei os vencimentos por perÃodo. Entre datas.
Exemplo: Os recebimentos de eu tiver para o perÃodo de 20/06/2012 a 10/07/2012,
Então quero que o código, faça a busca no Banco de Dados nesse perÃodo e coloque no DBGridView só os recebimentos desse perÃodo pesquisado e num txtbox me dê o valor total da coluna valor a receber no perÃodo pesquisado.
Pode me dar mais essa força, por favor?
Obrigado
JMRF
Assim você faz a consulta pelo perÃodo:
Assim você soma a coluna:
[Ô]select * from tabela where data between datainicial and datafinal[Ô]
Assim você soma a coluna:
Dim valor As Decimal
For Each coluna As DataGridViewRow In DataGridView1.Rows
valor = valor + coluna.Cells(2).Value
Next
label.Text = valor
Boa noite,
Por favor, o que está errado nesse código?
Eu tenho uns dados cadastrados num BD Access nas seguintes datas:
05/05/2012
07/05/2012
25/05/2012
10/06/2012
25/06/2012
Acontece que quando faço a pesquisa entre datas com o Código abaixo (estou usando DateTimerPicker na Pesquisa),
se eu seleciono no primeiro DateTimerPicker:
Data Inicial: a data de 01/05/2012
e no outro DateTimerPicker a Data Final:10/06/2012
Só aparece do DataGridView a linha com a data: 05/05/2012
Se eu seleciono Data Final 11 ou 12/06/2012 continua mostrando só a linha com a data 05/05/2012
quando seleciono no DateTimerPicker de Data Final: 13/06/2012 aparecem no DBGrid as linhas:
05/05/2012
07/05/2012 e
10/06/2012
Se eu seleciono no DateTimerPicker a data inicial 08/06/2012 e data final 30/06/2012,
ou seja só data dentro do mes de junho, me mostra as linhas no DataGridView com as datas:
07/05/2012
10/06/2012
25/05/2012
25/06/2012
Ou seja a Data Inicial é no mes de junho e mostra as datas 05/05/2012 e 25/05/2012 que são de maio
porque está acontecendo esse erro?
Podem me ajudar, por favor?
JMRF
Por favor, o que está errado nesse código?
Eu tenho uns dados cadastrados num BD Access nas seguintes datas:
05/05/2012
07/05/2012
25/05/2012
10/06/2012
25/06/2012
Acontece que quando faço a pesquisa entre datas com o Código abaixo (estou usando DateTimerPicker na Pesquisa),
se eu seleciono no primeiro DateTimerPicker:
Data Inicial: a data de 01/05/2012
e no outro DateTimerPicker a Data Final:10/06/2012
Só aparece do DataGridView a linha com a data: 05/05/2012
Se eu seleciono Data Final 11 ou 12/06/2012 continua mostrando só a linha com a data 05/05/2012
quando seleciono no DateTimerPicker de Data Final: 13/06/2012 aparecem no DBGrid as linhas:
05/05/2012
07/05/2012 e
10/06/2012
Se eu seleciono no DateTimerPicker a data inicial 08/06/2012 e data final 30/06/2012,
ou seja só data dentro do mes de junho, me mostra as linhas no DataGridView com as datas:
07/05/2012
10/06/2012
25/05/2012
25/06/2012
Ou seja a Data Inicial é no mes de junho e mostra as datas 05/05/2012 e 25/05/2012 que são de maio
porque está acontecendo esse erro?
Podem me ajudar, por favor?
JMRF
Boa noite,
Por favor, o que está errado nesse código?
Eu tenho uns dados cadastrados num BD Access nas seguintes datas:
05/05/2012
07/05/2012
25/05/2012
10/06/2012
25/06/2012
Acontece que quando faço a pesquisa entre datas com o Código abaixo (estou usando DateTimerPicker na Pesquisa),
se eu seleciono no primeiro DateTimerPicker:
Data Inicial: a data de 01/05/2012
e no outro DateTimerPicker a Data Final:10/06/2012
Só aparece do DataGridView a linha com a data: 05/05/2012
Se eu seleciono Data Final 11 ou 12/06/2012 continua mostrando só a linha com a data 05/05/2012
quando seleciono no DateTimerPicker de Data Final: 13/06/2012 aparecem no DBGrid as linhas:
05/05/2012
07/05/2012 e
10/06/2012
Se eu seleciono no DateTimerPicker a data inicial 08/06/2012 e data final 30/06/2012,
ou seja só data dentro do mes de junho, me mostra as linhas no DataGridView com as datas:
07/05/2012
10/06/2012
25/05/2012
25/06/2012
Ou seja a Data Inicial é no mes de junho e mostra as datas 05/05/2012 e 25/05/2012 que são de maio
porque está acontecendo esse erro?
Podem me ajudar, por favor?
JMRF
Private Sub btn_Consult_Click(sender As System.Object, e As System.EventArgs) Handles btn_Consult.Click
Dim css As String = My.Settings.EstoqueConnectionString
Dim conect As New OleDb.OleDbConnection
conect.ConnectionString = css
conect.Open()
Dim selcom As New OleDb.OleDbCommand
selcom.Connection = conect
selcom.CommandText = [Ô]SELECT * FROM tb_saidas_estoque WHERE data_de_saida BETWEEN #[Ô] & DTPIni.Text & [Ô]# AND #[Ô] & DTPFin.Text & [Ô]# order by data_de_saida[Ô]
[ô][Ô]Select * from tb_saidas_estoque WHERE data_de_saida between >= DTPIni.text and data_de_saida <= DTPFin.text Order by data_de_saida[Ô]
[ô][Ô]SELECT * FROM tb_saidas_estoque WHERE data_de_saida >= #DTPIni#[Ô] And [Ô]<= #DTPFin#[Ô]
[ô][Ô]select * from tb_saidas_estoque where data_de_saida >= #DTPIni#[Ô] And [Ô]<= #DTPFin#[Ô]
[ô][Ô]select * from tb_saidas_estoque where data_de_saida BETWEEN #[Ô] & DTPIni.Text & [Ô]# AND #[Ô] & DTPFin.Text & [Ô]#[Ô]
Dim vleitor As OleDb.OleDbDataReader
vleitor = selcom.ExecuteReader()
Dim c As Integer = 0
DgvConsulta.Rows.Clear()
Do While vleitor.Read
c = c + 1
ReDim Preserve avalor_materiais_produtos(c)
ReDim Preserve amateriais_produtos(c)
ReDim Preserve adata_de_saida(c)
ReDim Preserve asaidas(c)
avalor_materiais_produtos(c) = vleitor([Ô]valor_materiais_produtos[Ô])
amateriais_produtos(c) = vleitor([Ô]materiais_produtos[Ô])
adata_de_saida(c) = vleitor([Ô]data_de_saida[Ô])
asaidas(c) = vleitor([Ô]saidas[Ô])
DgvConsulta.Rows.Add(avalor_materiais_produtos(c), amateriais_produtos(c), adata_de_saida(c), asaidas(c))
Loop
conect.Close()
End Sub
End Class
Por favor, o que está errado nesse código?
Eu tenho uns dados cadastrados num BD Access nas seguintes datas:
05/05/2012
07/05/2012
25/05/2012
10/06/2012
25/06/2012
Acontece que quando faço a pesquisa entre datas com o Código abaixo (estou usando DateTimerPicker na Pesquisa),
se eu seleciono no primeiro DateTimerPicker:
Data Inicial: a data de 01/05/2012
e no outro DateTimerPicker a Data Final:10/06/2012
Só aparece do DataGridView a linha com a data: 05/05/2012
Se eu seleciono Data Final 11 ou 12/06/2012 continua mostrando só a linha com a data 05/05/2012
quando seleciono no DateTimerPicker de Data Final: 13/06/2012 aparecem no DBGrid as linhas:
05/05/2012
07/05/2012 e
10/06/2012
Se eu seleciono no DateTimerPicker a data inicial 08/06/2012 e data final 30/06/2012,
ou seja só data dentro do mes de junho, me mostra as linhas no DataGridView com as datas:
07/05/2012
10/06/2012
25/05/2012
25/06/2012
Ou seja a Data Inicial é no mes de junho e mostra as datas 05/05/2012 e 25/05/2012 que são de maio
porque está acontecendo esse erro?
Podem me ajudar, por favor?
JMRF
Private Sub btn_Consult_Click(sender As System.Object, e As System.EventArgs) Handles btn_Consult.Click
Dim css As String = My.Settings.EstoqueConnectionString
Dim conect As New OleDb.OleDbConnection
conect.ConnectionString = css
conect.Open()
Dim selcom As New OleDb.OleDbCommand
selcom.Connection = conect
selcom.CommandText = [Ô]SELECT * FROM tb_saidas_estoque WHERE data_de_saida BETWEEN #[Ô] & DTPIni.Text & [Ô]# AND #[Ô] & DTPFin.Text & [Ô]# order by data_de_saida[Ô]
[ô][Ô]Select * from tb_saidas_estoque WHERE data_de_saida between >= DTPIni.text and data_de_saida <= DTPFin.text Order by data_de_saida[Ô]
[ô][Ô]SELECT * FROM tb_saidas_estoque WHERE data_de_saida >= #DTPIni#[Ô] And [Ô]<= #DTPFin#[Ô]
[ô][Ô]select * from tb_saidas_estoque where data_de_saida >= #DTPIni#[Ô] And [Ô]<= #DTPFin#[Ô]
[ô][Ô]select * from tb_saidas_estoque where data_de_saida BETWEEN #[Ô] & DTPIni.Text & [Ô]# AND #[Ô] & DTPFin.Text & [Ô]#[Ô]
Dim vleitor As OleDb.OleDbDataReader
vleitor = selcom.ExecuteReader()
Dim c As Integer = 0
DgvConsulta.Rows.Clear()
Do While vleitor.Read
c = c + 1
ReDim Preserve avalor_materiais_produtos(c)
ReDim Preserve amateriais_produtos(c)
ReDim Preserve adata_de_saida(c)
ReDim Preserve asaidas(c)
avalor_materiais_produtos(c) = vleitor([Ô]valor_materiais_produtos[Ô])
amateriais_produtos(c) = vleitor([Ô]materiais_produtos[Ô])
adata_de_saida(c) = vleitor([Ô]data_de_saida[Ô])
asaidas(c) = vleitor([Ô]saidas[Ô])
DgvConsulta.Rows.Add(avalor_materiais_produtos(c), amateriais_produtos(c), adata_de_saida(c), asaidas(c))
Loop
conect.Close()
End Sub
End Class
Bom dia,
No seu banco de dados o campo que contém as datas ele é de que tipo? texto, data?
No seu banco de dados o campo que contém as datas ele é de que tipo? texto, data?
Boa tarde,
ALTAIR148,
Está como texto com máscara ____/____/____
Obrigado
JMRF
Boa tarde,
Aà é que está o problema amigo, essa mascara de nada serve para o VB.NET, isso ocorre muito, de salvarem data em campos texto, para que sua consulta funcione o campo deve ser do tipo DATA.
Aà é que está o problema amigo, essa mascara de nada serve para o VB.NET, isso ocorre muito, de salvarem data em campos texto, para que sua consulta funcione o campo deve ser do tipo DATA.
Boa tarde,
ALTAIR148,
Coloquei no meu BD Access data_cadastro como [Ô]Date/Hora[Ô] que é a opção que tem no banco. Não coloquei máscara nem Formato nenhum tipo: Data abreviada etc deixei em branco.
No meu código do programa no vb.net coloquei:
Dim adata_cadastro(1) As Date
Acontece que quando vou no meu cadastro de Materiais_produtos e clico no botão alterar, para eu apagar a data antida e substituir pela nova:
Seleciono no [Ô]DataTimePicker[Ô] a data de 05 de junho de 2012, mas fica registrado no BD 31/12/1899 e ainda com a hora junto como faço para gravar no BD 05/06/2012 e sem 00:02:25 ou 00:00:00.
Obrigado
Um abraço
JMRF
ALTAIR148,
Coloquei no meu BD Access data_cadastro como [Ô]Date/Hora[Ô] que é a opção que tem no banco. Não coloquei máscara nem Formato nenhum tipo: Data abreviada etc deixei em branco.
No meu código do programa no vb.net coloquei:
Dim adata_cadastro(1) As Date
Acontece que quando vou no meu cadastro de Materiais_produtos e clico no botão alterar, para eu apagar a data antida e substituir pela nova:
Seleciono no [Ô]DataTimePicker[Ô] a data de 05 de junho de 2012, mas fica registrado no BD 31/12/1899 e ainda com a hora junto como faço para gravar no BD 05/06/2012 e sem 00:02:25 ou 00:00:00.
Obrigado
Um abraço
JMRF
Tem que formatar a data tipo:
Só adaptar e pronto.
No link abaixo explica-se como tratar datas no VB.NET.
Dim data As Date
data = DateTimePicker1.Value
MsgBox(Format(data, [Ô]dd/MM/yyyy[Ô]))
Só adaptar e pronto.
No link abaixo explica-se como tratar datas no VB.NET.
Valeu, pessoal, consegui resolver o problema da pesquisa entre datas.
Vou batalhar agora na soma dos valores da coluna que é a segunda parte da ajuda que solicitei, mas ainda não tentei, vou começar as tentativas e qualquer coisa posto o resultado ou o pedido de ajuda de vocês.
Perfeito seu código para somar os valores na coluna do DBGrid no perÃodo da consulta.
Tudo resolvido
Parabéns...
Resta-me dizer o meu
Muito Obrigado a todos que me ajudaram.
JMRF
Vou batalhar agora na soma dos valores da coluna que é a segunda parte da ajuda que solicitei, mas ainda não tentei, vou começar as tentativas e qualquer coisa posto o resultado ou o pedido de ajuda de vocês.
Perfeito seu código para somar os valores na coluna do DBGrid no perÃodo da consulta.
Tudo resolvido
Parabéns...
Resta-me dizer o meu
Muito Obrigado a todos que me ajudaram.
JMRF
Tópico encerrado , respostas não são mais permitidas