Notifications
Clear all

consulta entre datas com varias colunas

3 Posts
2 Usuários
0 Reactions
1,330 Visualizações
(@jonasjtg)
Posts: 0
New Member
Topic starter
 

Sou novo no forum e estou estudando!
Se puder me ajuda na minha aprendizagem agradeço!

E mais ou menos assim seria em um campo data inicio eu colocaria a data inicial e data final.
Ai ele ira pesquisa em todas as colunas as datas e mostrar os dados

Exemplo?

data inicio
01/01/2015
data final
01/04/2015
ao clicar em busca ele verifica todas as colunas e retorna com resultado.

Coluna1
01/01/2015
Coluna2
01/02/2015
Coluna3
01/03/2015
Coluna4
01/02/2015

O codigo que to estudando.

Private Sub MontaClausulaWhere(ByVal NomeControle As String, ByVal NomeCampo As String, ByRef sqlWhere As String)
'DatadeNasc
If Trim(Me.Controls(NomeControle).Text) <> vbNullString Then
If sqlWhere <> vbNullString Then
sqlWhere = sqlWhere & " AND"
End If

If IsDate(Me.Controls(NomeControle).Text) Then 'Verifica se é Data
Select Case LocEntreDatas

Case 0 'Procura por uma unica Data
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(txtDataini, "mm/dd/yyyy") & "# AND #" & Format(txtDatafim, "mm/dd/yyyy") & "#"
Case 1 'Procura entre duas Datas
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(txtDataini, "mm/dd/yyyy") & "# AND #" & Format(txtDatafim, "mm/dd/yyyy") & "#"
End Select

Else
sqlWhere = sqlWhere & " UCASE(" & NomeCampo & ") LIKE UCASE('" & Trim(Me.Controls(NomeControle).Text) & "')"
End If
End If
End Sub

'DatadeNasc
Call MontaClausulaWhere(txtDataini.Name, "DatadeNasc", sqlWhere) 'Coluna DatadeNasc

Private Sub chkEntreDatas_Click()
If chkEntreDatas.Value = True Then
chkEntreDatas.Caption = "Entre as Datas"
cboOrdenarPor.Value = "DatadeNasc"

Else

With chkEntreDatas
.Caption = "Data Inicio"
.Enabled = False

Me.Data1.Text = txtDataini.Text
Me.Data2.Text = txtDatafim.Text

End With

txtDatafim.Value = ""
cboOrdenarPor.Value = ""
End If
End Sub

 
Postado : 02/06/2015 5:32 am
(@jonasjtg)
Posts: 0
New Member
Topic starter
 

Se alguém quiser ajudar eu anexo o projeto para poder ajudar mais!

 
Postado : 03/06/2015 8:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Vide em http://www.tomasvasquez.com.br/forum/vi ... XNmmtJVjko

Somente agora consegui retornar a este tópico, porem não tive tempo para uma analise mais profunda;
A sintaxe para utilizar varias colunas é:

Case 1 'Procura entre duas Datas
WHERE (pdata)>#1/1/2015# And (pdata)<#5/31/2015# OR (pVacina)>#1/1/2015# And (pVacina)<#5/31/2015#;

ou ainda:

Case 1 'Procura entre duas Datas
'WHERE pdata Between #1/1/2015# And #5/31/2015# OR pVacina Between #1/1/2015# And #5/31/2015#;

Adicionando quantos "OR" forem necessários.

Porem como seu projeto tem varias clausulas where, alem do "case"; então é preciso definir/ter uma visão completa do que e com o que será filtrado.
Algo que não consegui enxergar.

 
Postado : 06/06/2015 3:34 pm