FILTRAR POR DATA

DOUGLASGARCIA 04/01/2012 14:04:34
#392386
boa tarde

tenho um formulario que ao abrir ele filtra pela data que é informada no textbox, o codigo é esse:
Private Sub conexão()
Set delet = New ADODB.Recordset
delet.Open [Ô]Select * from MOVIMENTOS where data= [ô][Ô] & frmdata.txtdata.Text & [Ô][ô][Ô] & [Ô] order by op [Ô], cnSQL, 1, 2
End Sub
só que da erro de tipo de dados incompativeis
verifiquei e sei porque estou tratando como texto e não é texto

o formato do campo é data

como trato a data na expressão?
ALTAIR148 04/01/2012 14:07:34
#392388
Boa tarde,

Tenta assim

Private Sub conexão()
Set delet = New ADODB.Recordset
delet.Open [Ô]Select * from MOVIMENTOS where data= [Ô] & frmdata.txtdata.Text & [Ô][Ô] & [Ô] order by op [Ô], cnSQL, 1, 2
End Sub
DANLEONHART 04/01/2012 23:30:21
#392431
Eu faria assim:

Private Sub conexão()
Set delet = New ADODB.Recordset
delet.Open [Ô]SELECT * FROM Movimentos WHERE data=#[Ô] & frmdata.txtdata.Text & [Ô]# ORDER BY op [Ô], cnSQL, 1, 2
End Sub


Se o [Ô][txt-color=#0000f0]frmdata.txtdata.Text[/txt-color][Ô] for um Textbox com conteúdo no formato de data...vale informar também se o campo de seu BD também esta configurado com Tipo [Ô]Data/Hora[Ô].
MARCELO.TREZE 05/01/2012 11:05:32
#392442
Resposta escolhida
bom se o seu banco for access e campo for do tipo data/hora, então seria assim

Private Sub conexão()
Set delet = New ADODB.Recordset
delet.Open [Ô]Select * from MOVIMENTOS where data=#[ô][Ô] & Format(frmdata.txtdata.Text,[Ô]mm/dd/yyyy[Ô]) & [Ô]# order by op [Ô], cnSQL, 1, 2
End Sub


agora um conselho:

evite acento em funcões, declarações, etc

FILMAN 06/01/2012 14:46:57
#392566
Concordo com o que o nosso amigo MARCELO-TREZE disse

Citação:

evite acento em funcões, declarações, etc



Você pode estar fazendo de acordo com o que o nosso amigo marcelo postou ou convertendo para data o valor da TEXTBOX

Public Function ConverteData(ByVal Obj as TextBox, ByRef DataConv as Date) As Boolean
On Error Goto Falha_Conversao
ConverteData = True
If Not IsDate(Obj.Text) Then
ConverteData = False
Exit Function
Else
DataConv = CDate(Obj.Text)
End If

Falha_Conversao:
ConverteData = False
Exit Function
End Function


Para Chamar a Função faça assim

Private Sub conexão()
Dim dt as Date

if ConverteData(frmdata.txtdata, dt) then
Set delet = New ADODB.Recordset
delet.Open [Ô]SELECT * FROM movimentos WHERE data=#[ô][Ô] & dt & [Ô][ô]# Order By op [Ô], cnSQL, 1, 2
Else
MsgBox [Ô]Data Inválida, favor verificar a data informada[Ô], vbInformation
Unload Me
frmdata.Show
End if

End Sub



Espero Ter ajudado
Tópico encerrado , respostas não são mais permitidas