FILTRAR POR DATA
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?
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?
Boa tarde,
Tenta assim
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
Eu faria assim:
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[Ô].
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[Ô].
bom se o seu banco for access e campo for do tipo data/hora, então seria assim
agora um conselho:
evite acento em funcões, declarações, etc
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
Concordo com o que o nosso amigo MARCELO-TREZE disse
Você pode estar fazendo de acordo com o que o nosso amigo marcelo postou ou convertendo para data o valor da TEXTBOX
Para Chamar a Função faça assim
Espero Ter ajudado
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