CADASTRO EM DETERMINADA DATA
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/:
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/:
select * from TABELA where ADMISSAO = DATA1 and SAIDA = DATA2
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
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
THULIO, vc está usando a clausula BETWEEN de maneira errada
http://www.w3schools.com/sql/sql_between.asp
http://www.w3schools.com/sql/sql_between.asp
é imaginei isso.... alguma dica do que posso por no lugar?
Select campo From tabela Where campo Between 1 And 2
assim
Tresidente.RecordSource = [Ô]select * from Masculino where Add between #[Ô] Format(Txtinicial.Text, MM/DD/YYYY) & [Ô]# and #[Ô] & Format(txtFinal.Text, MM/DD/YYYY) & [Ô]#[Ô]
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
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
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.
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.
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.
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) & [Ô]#[Ô]
???
Tresidente.RecordSource = [Ô]select * from Masculino where Add between #[Ô] & Format(Txtinicial.Text, MM / DD / YYYY) & [Ô]# and #[Ô] & Format(Txtfinal.Text, MM / DD / YYYY) & [Ô]#[Ô]
???
posso até chutar uma coisa mude o nome do campo add para outra coisa tipo addCampos
Tópico encerrado , respostas não são mais permitidas