CONSULTA, AONDE ESTOU ERRANDO

RICARDOCIRO 17/03/2010 17:22:47
#337224
Estou precisando criar uma consulta por intervalo de datas, ate ai tudo bem, achei um artigo no site do macoratti que me ajudou.
So que agora preciso alterar essa consulta, que alem do intervalo de datas, eu filtre pelo requisitante tambem.

Segue
Private Sub obtemdados()
lblmensagem.Text = [Ô][Ô]
If (dtpInicio.Value <= dtpFim.Value) Then
[ô]declaracao de variavel
Dim ds As New DataSet([Ô]solicitacao_material[Ô])
Dim conexaodb As New OleDb.OleDbConnection(My.Settings.conOleDb)
Dim da As New OleDb.OleDbDataAdapter
Dim cmd As New OleDb.OleDbCommand( _
([Ô]select controle, data, obs from solicitacao_material Where data Between #[Ô] + dtpInicio.Value.ToShortDateString() + [Ô]# and #[Ô] + dtpFim.Value.ToShortDateString() + [Ô]# Order by controle[Ô]), conexaodb)
Try
conexaodb.Open()

Catch ex As Exception
lblmensagem.Text = ex.Message
conexaodb.Close()
End Try
cmd.CommandType = CommandType.Text
da.SelectCommand = cmd
da.SelectCommand.Connection = conexaodb
Try
da.Fill(ds)
dgvexcel.dataSource = ds.Tables(0)
Catch ex As Exception
lblmensagem.Text = ex.Message
End Try
conexaodb.Close()
Else
lblmensagem.Text = [Ô]Erro ao combinar as datas, verifique[Ô]
End If
End Sub

O exemplo acima funciona perfeitamente, agora quando crio a consulta com o parametro do requisitante, nao funciona.
Segue.

Private Sub obtemdados()
lblmensagem.Text = [Ô][Ô]
If (dtpInicio.Value <= dtpFim.Value) Then
[ô]declaracao de variavel
Dim ds As New DataSet([Ô]solicitacao_material[Ô])
Dim conexaodb As New OleDb.OleDbConnection(My.Settings.conOleDb)
Dim da As New OleDb.OleDbDataAdapter
Dim cmd As New OleDb.OleDbCommand( _
([Ô]select controle, data, obs from solicitacao_material Where data Between #[Ô] + dtpInicio.Value.ToShortDateString() + [Ô]# and #[Ô] + dtpFim.Value.ToShortDateString() + [Ô]and requerido por=[Ô] & txtrequisitante.Text + [Ô]# Order by controle[Ô]), conexaodb)
Try
conexaodb.Open()

Catch ex As Exception
lblmensagem.Text = ex.Message
conexaodb.Close()
End Try
cmd.CommandType = CommandType.Text
da.SelectCommand = cmd
da.SelectCommand.Connection = conexaodb
Try
da.Fill(ds)
dgvexcel.dataSource = ds.Tables(0)
Catch ex As Exception
lblmensagem.Text = ex.Message
End Try
conexaodb.Close()
Else
lblmensagem.Text = [Ô]Erro ao combinar as datas, verifique[Ô]
End If
End Sub

Aonde estou errando, alguem pode me ajudar..

Agradeço desde já.
GLAUCIO 17/03/2010 17:27:53
#337227
Resposta escolhida
Ricardo,
Você tá errando na formulação da query.


([Ô]select controle, data, obs from solicitacao_material Where data Between #[Ô] + dtpInicio.Value.ToShortDateString() + [Ô]# and #[Ô] + dtpFim.Value.ToShortDateString() + [Ô]# and requerido por=[ô][Ô] & txtrequisitante.Text + [Ô][ô] Order by controle[Ô]), conexaodb)


Você esqueçeu de colocar no [ô]requerido por[ô] aspas. E colocou o último [ô]#[ô] na posição errada.
Tópico encerrado , respostas não são mais permitidas