PESQUISAR ENTRE 2 DATAS
Boa noite amigos!
Pessoal to tentando fazer uma pesquisa no banco de dados que torne registros entre 2 datas, e me da esse erro
Erro: Tipo de dados incompativel na expressão de criterio
To fazendo assim:
==============================================================
Dim dtInicial As Date = dtpDataInicial.Value
Dim dtFinal As Date = dtpDataFinal.Value
Try
Dim dt As New DataTable
Dim ds As New DataSet
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CN1
Con.Open()
Dim sql As String = [Ô] Select * FROM TBvendas WHERE datacompra BETWEEN [ô][Ô] & dtInicial & [Ô][ô] AND [ô][Ô] & dtFinal & [Ô][ô] [Ô]
Dim comando As New OleDbCommand(Sql, Con)
Dim da As New OleDbDataAdapter(comando)
da.Fill(dt)
da.Fill(ds, [Ô]TBvendas[Ô])
dgVendasRealiz.DataSource = dt
====================================================================
percebi que ao passar o valor para varivel ela fica assim( 25/1/1980) sei que esse formato é americano, e tenho que usar o format, mas não to conseguindo.Sera isso mesmo o problema?
Pessoal to tentando fazer uma pesquisa no banco de dados que torne registros entre 2 datas, e me da esse erro
Erro: Tipo de dados incompativel na expressão de criterio
To fazendo assim:
==============================================================
Dim dtInicial As Date = dtpDataInicial.Value
Dim dtFinal As Date = dtpDataFinal.Value
Try
Dim dt As New DataTable
Dim ds As New DataSet
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CN1
Con.Open()
Dim sql As String = [Ô] Select * FROM TBvendas WHERE datacompra BETWEEN [ô][Ô] & dtInicial & [Ô][ô] AND [ô][Ô] & dtFinal & [Ô][ô] [Ô]
Dim comando As New OleDbCommand(Sql, Con)
Dim da As New OleDbDataAdapter(comando)
da.Fill(dt)
da.Fill(ds, [Ô]TBvendas[Ô])
dgVendasRealiz.DataSource = dt
====================================================================
percebi que ao passar o valor para varivel ela fica assim( 25/1/1980) sei que esse formato é americano, e tenho que usar o format, mas não to conseguindo.Sera isso mesmo o problema?
conversão
verifique pq esta usando aspas simples na concatenação o q indica ser formato string e não formato data, não adianta qq conversão se mantiver as aspas simples
depende do banco muda o caractere na concatenação
CDate(string).ToString([Ô]dd/MM/yyyy[Ô])
verifique pq esta usando aspas simples na concatenação o q indica ser formato string e não formato data, não adianta qq conversão se mantiver as aspas simples
depende do banco muda o caractere na concatenação
Amigo agora da indo sem erro, mas não preenche o GridView.
[txt-color=#0000f0]Dim dtInicial As String = Format(dtpDataInicial.Value, [Ô]dd/MM/yyyy[Ô]).ToString
Dim dtFinal As String = Format(dtpDataFinal.Value, [Ô]dd/MM/yyyy[Ô]).ToString[/txt-color]
Dim dt As New DataTable
Dim ds As New DataSet
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CN1
Con.Open()
Dim sql As String = [Ô] Select * FROM TBvendas WHERE datacompra BETWEEN [Ô] & dtInicial & [Ô] AND [Ô] & dtFinal & [Ô] [Ô]
Dim comando As New OleDbCommand(Sql, Con)
Dim da As New OleDbDataAdapter(comando)
da.Fill(dt)
da.Fill(ds, [Ô]TBvendas[Ô])
dgVendasRealiz.DataSource = dt
Con.Close()
Con.Dispose()
NICKOSOFT ta assim agora, ele vai sem dar erro, mas não preenche o Grid?
O que sera? Tem ideia
[txt-color=#0000f0]Dim dtInicial As String = Format(dtpDataInicial.Value, [Ô]dd/MM/yyyy[Ô]).ToString
Dim dtFinal As String = Format(dtpDataFinal.Value, [Ô]dd/MM/yyyy[Ô]).ToString[/txt-color]
Dim dt As New DataTable
Dim ds As New DataSet
Dim Con As New OleDbConnection
Con.ConnectionString = My.Settings.CN1
Con.Open()
Dim sql As String = [Ô] Select * FROM TBvendas WHERE datacompra BETWEEN [Ô] & dtInicial & [Ô] AND [Ô] & dtFinal & [Ô] [Ô]
Dim comando As New OleDbCommand(Sql, Con)
Dim da As New OleDbDataAdapter(comando)
da.Fill(dt)
da.Fill(ds, [Ô]TBvendas[Ô])
dgVendasRealiz.DataSource = dt
Con.Close()
Con.Dispose()
NICKOSOFT ta assim agora, ele vai sem dar erro, mas não preenche o Grid?
O que sera? Tem ideia
Coloque esses campos como data na tabela e utiliza a tralha nas consultas. Assim:
Dim sql As String = [Ô] Select * FROM TBvendas WHERE datacompra BETWEEN #[Ô] & dtInicial & [Ô]# AND #[Ô] & dtFinal & [Ô]#[Ô]
vc mantem no erro de forma diferente...
vc insere uma string onde se esperava a data inicial e a data final....
dtinicial e dtfinal tem q ser date, e vc deve formatar a data no formato do banco, ai deve passar a funcionar....
como não precisa caracter pra fechar, isso AND [Ô] & dtFinal & [Ô] [Ô] pode ficar AND [Ô] & dtFinal
vc insere uma string onde se esperava a data inicial e a data final....
dtinicial e dtfinal tem q ser date, e vc deve formatar a data no formato do banco, ai deve passar a funcionar....
como não precisa caracter pra fechar, isso AND [Ô] & dtFinal & [Ô] [Ô] pode ficar AND [Ô] & dtFinal
Tópico encerrado , respostas não são mais permitidas