Vídeo recomendado
https://youtu.be/diWPPPhW-9E

MontaClausulaWhere consultar varias colunas de dadas

Discussões sobre a integração do Excel com o Banco de Dados Access

Moderador: joseA

jonasjtg
Colaborador
Colaborador
Mensagens: 32
Registrado em: Seg Jun 01, 2015 1:09 pm

MontaClausulaWhere consultar varias colunas de dadas

Mensagem por jonasjtg »

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


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
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

Mensagem por Reinaldo »

vc pode utilizar if ..or


jonasjtg
Colaborador
Colaborador
Mensagens: 32
Registrado em: Seg Jun 01, 2015 1:09 pm

Re: MontaClausulaWhere consultar varias colunas de dadas

Mensagem por jonasjtg »

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


Avatar do usuário
Reinaldo
Jedi
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

Mensagem por Reinaldo »

jonasjtg 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.
Coluna1
01/01/2015
Coluna2
01/02/2015
Coluna3
01/03/2015
Coluna4
01/02/2015
jonasjtg 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
Algo "esquisito" no trecho do codigo

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
Creio que está faltanto/omitido o Select Case....
Mas vamos lá tentar:

Código: Selecionar todos

Case 0 'Procura por uma unica Data
sqlWhere = sqlWhere & " (" & NomeCampo & ") EQ #" & Format(txtDataini, "mm/dd/yyyy")
Se for utilizar mais de um campo poderia ser algo do tipo:
sqlWhere = sqlWhere & " " & NomeCampo & " EQ #" & Format(txtDataini, "mm/dd/yyyy") & "# or " NomeCampo2 & " EQ #" & Format(txtDataini, "mm/dd/yyyy")".....
Para duas datas segue o mesmo raciocinio


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


jonasjtg
Colaborador
Colaborador
Mensagens: 32
Registrado em: Seg Jun 01, 2015 1:09 pm

Re: MontaClausulaWhere consultar varias colunas de dadas

Mensagem por jonasjtg »

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
Anexos
Buscadedataemvariascolunas.rar
(182.83 KiB) Baixado 374 vezes


Avatar do usuário
Reinaldo
Jedi
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

Mensagem por Reinaldo »

Somente agora consegui retornar a este tópico, porem não tive tempo para uma analise mais profunda;
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#;
ou ainda:

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#;
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.


jonasjtg
Colaborador
Colaborador
Mensagens: 32
Registrado em: Seg Jun 01, 2015 1:09 pm

Re: MontaClausulaWhere consultar varias colunas de dadas

Mensagem por jonasjtg »

Não deu certo ainda conto com sua ajuda!


jonasjtg
Colaborador
Colaborador
Mensagens: 32
Registrado em: Seg Jun 01, 2015 1:09 pm

Re: MontaClausulaWhere consultar varias colunas de dadas

Mensagem por jonasjtg »

Consegui Valeu!


BRUNO ZAU
Acabou de chegar
Acabou de chegar
Mensagens: 2
Registrado em: Qua Abr 05, 2017 11:05 pm

Re: MontaClausulaWhere consultar varias colunas de dadas

Mensagem por BRUNO ZAU »

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...
Anexos
SAME - FORUM PESQUISAS DE DATAS.rar
(279.71 KiB) Baixado 344 vezes


Avatar do usuário
Reinaldo
Jedi
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

Mensagem por Reinaldo »

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)


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder