Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
MontaClausulaWhere consultar varias colunas de dadas
Moderador: joseA
MontaClausulaWhere consultar varias colunas de dadas
Boa Tarde pessoal sou novo no forum e tambem em tudo preciso da ajuda de vcs como fazer uma busca de datas com varias colunas tambem com data.
Obs to usando modelo de Excel + Access
exemplo
1 coluna data inicial
2 coluna de data
3 coluna de data
4 coluna de data
5 coluna de data final
olhando o exemplo do mauro eu vi que ele fez em 1 colunas a busca mas quero fazer e varias colunas a busca de uma vez
Obs to usando modelo de Excel + Access
exemplo
1 coluna data inicial
2 coluna de data
3 coluna de data
4 coluna de data
5 coluna de data final
olhando o exemplo do mauro eu vi que ele fez em 1 colunas a busca mas quero fazer e varias colunas a busca de uma vez
Re: MontaClausulaWhere consultar varias colunas de dadas
Desculpa não entende!
Poderia me explicar melhor os codigos são estes! Como eu faço para adicionar mais colunas de buscas?
Call MontaClausulaWhere2(txtDataini2.Name, "pdata", sqlWhere) 'Coluna pdata
Private Sub MontaClausulaWhere2(ByVal NomeControle As String, ByVal NomeCampo As String, ByRef sqlWhere As String)
'pdata
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 LocEntreDatas2
Case 0 'Procura por uma unica Data
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(txtDataini2, "mm/dd/yyyy") & "# AND #" & Format(txtDatafim2, "mm/dd/yyyy") & "#"
Case 1 'Procura entre duas Datas
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(txtDataini2, "mm/dd/yyyy") & "# AND #" & Format(txtDatafim2, "mm/dd/yyyy") & "#"
End Select
Else
sqlWhere = sqlWhere & " UCASE(" & NomeCampo & ") LIKE UCASE('" & Trim(Me.Controls(NomeControle).Text) & "')"
End If
End If
End Sub
Poderia me explicar melhor os codigos são estes! Como eu faço para adicionar mais colunas de buscas?
Call MontaClausulaWhere2(txtDataini2.Name, "pdata", sqlWhere) 'Coluna pdata
Private Sub MontaClausulaWhere2(ByVal NomeControle As String, ByVal NomeCampo As String, ByRef sqlWhere As String)
'pdata
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 LocEntreDatas2
Case 0 'Procura por uma unica Data
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(txtDataini2, "mm/dd/yyyy") & "# AND #" & Format(txtDatafim2, "mm/dd/yyyy") & "#"
Case 1 'Procura entre duas Datas
sqlWhere = sqlWhere & " (" & NomeCampo & ") BETWEEN #" & Format(txtDataini2, "mm/dd/yyyy") & "# AND #" & Format(txtDatafim2, "mm/dd/yyyy") & "#"
End Select
Else
sqlWhere = sqlWhere & " UCASE(" & NomeCampo & ") LIKE UCASE('" & Trim(Me.Controls(NomeControle).Text) & "')"
End If
End If
End Sub
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: MontaClausulaWhere consultar varias colunas de dadas
Coluna1jonasjtg escreveu:Sou novo no forum e estou aprendendo o Modelo de Cadastro com BD Access.
Se puder me ajdua 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.
01/01/2015
Coluna2
01/02/2015
Coluna3
01/03/2015
Coluna4
01/02/2015
Algo "esquisito" no trecho do codigojonasjtg escreveu:O codigo que to estudando e do projeto.
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
Código: Selecionar todos
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
Mas vamos lá tentar:
Código: Selecionar todos
Case 0 'Procura por uma unica Data
sqlWhere = sqlWhere & " (" & NomeCampo & ") EQ #" & Format(txtDataini, "mm/dd/yyyy")
sqlWhere = sqlWhere & " " & NomeCampo & " EQ #" & Format(txtDataini, "mm/dd/yyyy") & "# or " NomeCampo2 & " EQ #" & Format(txtDataini, "mm/dd/yyyy")".....
Para duas datas segue o mesmo raciocinio
Re: MontaClausulaWhere consultar varias colunas de dadas
Não deu Certo Rmarco!
Vou anexa o projeto para ficar mais fácil quem quiser ajudar!
Quando abrir form de pesquisa vai ter:
1 vacinação
Data inicial 01/01/2015
data final 30/12/2018
"O QUE EU QUERO E FAZER AS BUSCA DE DATAS ENTRE VARIAS COLUNAS QUE CONTEM DATAS."
exemplo
as colunas são
pdata,pvacina,sdata,svacina,tdata,tvacina,qdata,qvacina
Vou anexa o projeto para ficar mais fácil quem quiser ajudar!
Quando abrir form de pesquisa vai ter:
1 vacinação
Data inicial 01/01/2015
data final 30/12/2018
"O QUE EU QUERO E FAZER AS BUSCA DE DATAS ENTRE VARIAS COLUNAS QUE CONTEM DATAS."
exemplo
as colunas são
pdata,pvacina,sdata,svacina,tdata,tvacina,qdata,qvacina
- Anexos
-
- Buscadedataemvariascolunas.rar
- (182.83 KiB) Baixado 374 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: MontaClausulaWhere consultar varias colunas de dadas
Somente agora consegui retornar a este tópico, porem não tive tempo para uma analise mais profunda;
A sintaxe para utilizar varias colunas é:
ou ainda:
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.
A sintaxe para utilizar varias colunas é:
Código: Selecionar todos
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#;
Código: Selecionar todos
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#;
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.
Re: MontaClausulaWhere consultar varias colunas de dadas
Boa noite Caros Amigos
Estou com dificuldade de filtro por data com mais de uma coluna. Trabalho com o modelo de fomulário anexo e preciso filtrar entre datas as colunas: DataAdmissao e DatadeInternacao. Consegui realizar apenas com uma coluna no caso a DataAdmissao (utilizando os ensinamentos do fórum), quando incluo a outra não consigo. Sou iniciante no assunto e até onde cheguei foi através do fórum, sou muito grato pelas informações constantes aqui. Gostaria muito de ter uma ajuda para este filtro. Antecipo meus agradecimentos...
Estou com dificuldade de filtro por data com mais de uma coluna. Trabalho com o modelo de fomulário anexo e preciso filtrar entre datas as colunas: DataAdmissao e DatadeInternacao. Consegui realizar apenas com uma coluna no caso a DataAdmissao (utilizando os ensinamentos do fórum), quando incluo a outra não consigo. Sou iniciante no assunto e até onde cheguei foi através do fórum, sou muito grato pelas informações constantes aqui. Gostaria muito de ter uma ajuda para este filtro. Antecipo meus agradecimentos...
- Anexos
-
- SAME - FORUM PESQUISAS DE DATAS.rar
- (279.71 KiB) Baixado 344 vezes
- Reinaldo
- Jedi
- Mensagens: 1537
- Registrado em: Sex Ago 01, 2014 4:09 pm
- Localização: Garça - SP / SCS - SP
Re: MontaClausulaWhere consultar varias colunas de dadas
Não entendi o que pretende. A primeira necessidade e ter bem definido o que fazer.
Voce pretende pesquisar:
Somente data de admissão ou data de admissão inicio e fim
Somente data de internação ou data de internação inicio e fim
Data de Admissão e Data de Internação.
O que espere de retorno em cada caso (se houver)
Voce pretende pesquisar:
Somente data de admissão ou data de admissão inicio e fim
Somente data de internação ou data de internação inicio e fim
Data de Admissão e Data de Internação.
O que espere de retorno em cada caso (se houver)