CADASTRO EM DETERMINADA DATA

THULIO 14/09/2011 14:28:21
#384248
Olá no meu sistema de cadastro, preciso encontrar os registro em determinada data.
Então tenho duas datas, um data de admissão e outra data de saida.
Preciso enviar pra uma listbox os registro encontrados em duas datas estabelecidas...
como faço/:
EDERMIR 14/09/2011 15:17:40
#384251
select * from TABELA where ADMISSAO = DATA1 and SAIDA = DATA2
THULIO 14/09/2011 15:33:42
#384255
usei esse codigo....so que não ta dando certo..alguem consegue corrigir?
o erro é o seguinte
Run - time error [ô]3075[ô];

Syntax error in date in query expression [ô]Add between # Format (txtinicial.text,MM/DD/YYYY)[ô]



If optadd.Value = True Then
If Not IsDate(Txtinicial.Text) Then
MsgBox [Ô]Data inicial inválida[Ô], vbCritical
Txtinicial.SetFocus
Exit Sub
End If
Dim totalresid As Integer
listdata.Clear
Tresidente.RecordSource = [Ô]select * from Masculino where Add between [Ô] & [Ô]#[Ô] & [Ô] Format(Txtinicial.Text, MM/DD/YYYY) [Ô]
Tresidente.Refresh
Do While Not Tresidente.Recordset.EOF
listdata.AddItem Tresidente.Recordset([Ô]Data[Ô]) & Space(1) & Tresidente.Recordset([Ô]Nome[Ô]) & Space(1) & Tresidente.Recordset([Ô]Codigo[Ô]) & Space(1) & Tresidente.Recordset([Ô]add[Ô])
totalresid = totalresid + Tresidente.Recordset([Ô]Codigo[Ô])
Tresidente.Recordset.MoveNext
Loop
Txtunidade.Text = totalresid
Else

If Not IsDate(Txtfinal.Text) Then
MsgBox [Ô]Data final inválida[Ô], vbCritical
Txtfinal.SetFocus
Exit Sub
End If
Dim totalresidf As Integer
listdata.Clear
Tresidente.RecordSource = [Ô]select * from Masculino where Final between [Ô] & [Ô]#[Ô] & [Ô] Format(Txtfinal.Text, MM/DD/YYYY) [Ô] & [Ô]#[Ô] & [Ô]Order by Data[Ô]
Tresidente.Refresh
Do While Not Tresidente.Recordset.EOF
listdata.AddItem Tresidente.Recordset([Ô]Data[Ô]) & Space(1) & Tresidente.Recordset([Ô]Nome[Ô]) & Space(1) & Tresidente.Recordset([Ô]Codigo[Ô]) & Space(1) & Tresidente.Recordset([Ô]add[Ô])
totalresidf = totalresid + Tresidente.Recordset([Ô]Codigo[Ô])
Tresidente.Recordset.MoveNext
Loop
Txtunidade.Text = totalresid
End If


SAMUKA 14/09/2011 15:44:58
#384259
THULIO, vc está usando a clausula BETWEEN de maneira errada

http://www.w3schools.com/sql/sql_between.asp
THULIO 14/09/2011 15:48:59
#384260
é imaginei isso.... alguma dica do que posso por no lugar?
TECLA 14/09/2011 18:00:44
#384278
Select campo From tabela Where campo Between 1 And 2
MARCELO.TREZE 14/09/2011 18:48:55
#384283
assim

Tresidente.RecordSource = [Ô]select * from Masculino where Add between #[Ô] Format(Txtinicial.Text, MM/DD/YYYY)  & [Ô]# and #[Ô] & Format(txtFinal.Text, MM/DD/YYYY)  & [Ô]#[Ô]

MARCELO.TREZE 15/09/2011 08:35:43
#384309
Resposta escolhida
analizando melhor sua pergunta entendi o qeu deseja

vc possui dois campos datas na tabela (admissão e saida), até ai tudo bem.

mas qual o resultado que prentende obter, pois havendo dois campos de data tanto admissão como saida a possibilidade de consulta poderá ser mais ampla, exemplo:

vc pode pesquisar funcionários admitidos entre 01/01/2000 e 31/12/2005, que ainda estariam trabalhando

SQL= [Ô]select * from funconarios where (admissao between #01/01/2000# and #12/31/2005#) and saida = null[Ô]


ou vc pode pesquisar funcionários admitidos entre 01/01/2000 e 31/12/2005, que tenham saido entre 01/10/2009 e 01/10/2010

SQL= [Ô]select * from funconarios where (admissao between #01/01/2000# and #12/31/2005#) and (saida between #10/01/2009# and #10/01/2010#) [Ô]


e assim poderiam haver mais alguns tipos de consulta, porém se atente ao básico repare que tratei a consultas entre parenteses[Ô]()[Ô], para que a query possa interpretar cada consulta separadamente.

THULIO 20/09/2011 13:57:14
#384755
Marcelo ..entendi o que você quis dizer, porém eu mesmo estou fiz confusão, porque se eu trabalhar com dois campos como nesse ultimo exemplo, não é o que quero, na verdade seu primeiro exemplo é o que pretendo, que é entre dois txts encontrar a data colocada no meio desses dois. porém o seu primeiro exemplo esta com erro, antes do primeiro format.
THULIO 20/09/2011 14:00:27
#384756
Eu inserir um & antes do format ai está dando erro de overflow....

Tresidente.RecordSource = [Ô]select * from Masculino where Add between #[Ô] & Format(Txtinicial.Text, MM / DD / YYYY) & [Ô]# and #[Ô] & Format(Txtfinal.Text, MM / DD / YYYY) & [Ô]#[Ô]

???
MARCELO.TREZE 20/09/2011 14:02:32
#384757
posso até chutar uma coisa mude o nome do campo add para outra coisa tipo addCampos

Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas