FILTRO GRIDVIEW COM DATA
Ola pessoal, estou precisando de uma ajudinha, estou tentando montar um select para filtrar os dados da minha tabela de contratos pela data de vencimento, porém já tentei de tudo mas, nao consegui, gostaria que me ajudassem a resolver isso. Meus dados estão armazenados em access no formato de data.
vejam abaixo meu select
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dim da As OleDbDataAdapter = New OleDbDataAdapter([Ô]SELECT ID_LANCAMENTO, DESCR_MODAL, ESPECIE_CONTR, DT_INSERT, ID_FORNECEDOR, NOME_FORNECEDOR, CNPJ_FORNECEDOR, VALOR_CONTRATO, DATA_ASSINATURA, DATA_VENCIMENTO, OBJETO_CONTRATO, ID_OPRID, CHAVE_CONTRATO, NUM_VINC_CONTR, VERSAO, FLAG_CONTABIL FROM MMC_CONTRATOS WHERE ID_FORNECEDOR LIKE [ô]%[Ô] & ID_FORNECEDOR_P.Text & [Ô]%[ô] AND CNPJ_FORNECEDOR LIKE [ô]%[Ô] & CNPJ_FORNECEDOR_P.Text & [Ô]%[ô] AND NOME_FORNECEDOR LIKE [ô]%[Ô] & NOME_FORNECEDOR_P.Text & [Ô]%[ô] AND ESPECIE_CONTR LIKE [ô]%[Ô] & ESPECIE_CONTR_P.Text & [Ô]%[ô] AND DESCR_MODAL LIKE [ô]%[Ô] & DESCR_MODAL_P.Text & [Ô]%[ô] AND[txt-color=#e80000] DATA_VENCIMENTO between [ô][Ô] & DATA_MAIOR.Text & [Ô][ô] AND [ô][Ô] & DATA_MENOR.Text & [Ô][ô][Ô],[/txt-color] myConnection)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
vejam abaixo meu select
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dim da As OleDbDataAdapter = New OleDbDataAdapter([Ô]SELECT ID_LANCAMENTO, DESCR_MODAL, ESPECIE_CONTR, DT_INSERT, ID_FORNECEDOR, NOME_FORNECEDOR, CNPJ_FORNECEDOR, VALOR_CONTRATO, DATA_ASSINATURA, DATA_VENCIMENTO, OBJETO_CONTRATO, ID_OPRID, CHAVE_CONTRATO, NUM_VINC_CONTR, VERSAO, FLAG_CONTABIL FROM MMC_CONTRATOS WHERE ID_FORNECEDOR LIKE [ô]%[Ô] & ID_FORNECEDOR_P.Text & [Ô]%[ô] AND CNPJ_FORNECEDOR LIKE [ô]%[Ô] & CNPJ_FORNECEDOR_P.Text & [Ô]%[ô] AND NOME_FORNECEDOR LIKE [ô]%[Ô] & NOME_FORNECEDOR_P.Text & [Ô]%[ô] AND ESPECIE_CONTR LIKE [ô]%[Ô] & ESPECIE_CONTR_P.Text & [Ô]%[ô] AND DESCR_MODAL LIKE [ô]%[Ô] & DESCR_MODAL_P.Text & [Ô]%[ô] AND[txt-color=#e80000] DATA_VENCIMENTO between [ô][Ô] & DATA_MAIOR.Text & [Ô][ô] AND [ô][Ô] & DATA_MENOR.Text & [Ô][ô][Ô],[/txt-color] myConnection)
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Lembrando que estou utilizando o controle DateTiimePicker para preenchimento do intervalo de datas.
Ao trabalhar com campo do tipo DATE no ACCESS, utilize o caractere sustenido (#) antes das datas, além da formatação MM/DD/YYYY.
Exemplo:
[txt-color=#0000f0]SELECT [/txt-color]*
[txt-color=#0000f0]FROM [/txt-color]Tabela1
[txt-color=#0000f0]WHERE [/txt-color]CampoData
[txt-color=#0000f0]BETWEEN [/txt-color]#01/01/2010# [txt-color=#0000f0]AND [/txt-color]#12/31/2010#
Exemplo:
[txt-color=#0000f0]SELECT [/txt-color]*
[txt-color=#0000f0]FROM [/txt-color]Tabela1
[txt-color=#0000f0]WHERE [/txt-color]CampoData
[txt-color=#0000f0]BETWEEN [/txt-color]#01/01/2010# [txt-color=#0000f0]AND [/txt-color]#12/31/2010#
ok, consegui trazer os resultados, porém já percebi que não está seguindo o formato MM/DD/YYYY, como faço para colocar esse formato no select já q o vb.net não me permite o que fiz abaixo, assim como é aceito no visual basic.
AND DATA_VENCIMENTO BETWEEN # [Ô] & Format(DATA_MAIOR.Text, [Ô]MM/DD/YYYY[Ô]) & [Ô] # AND # [Ô] & Format(DATA_MENOR.Text, [Ô]MM/DD/YYYY[Ô]) & [Ô] # [Ô], myConnection)
AND DATA_VENCIMENTO BETWEEN # [Ô] & Format(DATA_MAIOR.Text, [Ô]MM/DD/YYYY[Ô]) & [Ô] # AND # [Ô] & Format(DATA_MENOR.Text, [Ô]MM/DD/YYYY[Ô]) & [Ô] # [Ô], myConnection)
MsgBox(FormatDateTime(DateTimePicker1.Value, DateFormat.ShortDate))
segue o código fonte em anexo.
A unica diferença que encontrei foi no formato que a data está armazenada no access no seu exemplo está (17-ago-94), no meu banco está (17/08/1994), será que pode ser isso que está interferindo?
eu acredito que não que ver no exemplo mude a string de comando para SELECT * FROM Products WHERE LastOrder BETWEEN
e terá o mesmo resultado . de uma olhadinha no exemplo o seu código fonte deve algo diferente
e terá o mesmo resultado . de uma olhadinha no exemplo o seu código fonte deve algo diferente
Fiz igual ao seu exemplo porém continua buscando da mesma forma, veja como está preenchido no datatimepicker e o resultado e obtive no gridview.
Ué mas o que resultado tem de errado?
Veja que no meu criterio de data está 02/08/2011 e está me retornando 08/02/2010, ou seja quando busca os dados no banco ele inverte os valores do campo data para MM/dd/yyyy.
Tópico encerrado , respostas não são mais permitidas