AJUDA COM 2 SELECT NA MESMA TABELA
Boa tarde galera, blz?
Estou com uma dúvida para fazer dois SELECT na mesma tabela, por exemplo:
Eu preciso consultar um [Ô]CONDOMÃNIO[Ô] no banco (Access), e um determinado [Ô]PERÃODO[Ô] de lançamentos por data.
Eu coloquei assim, mas não esta dando certo.
SELECT NumCond, NomeCond, DataEmissao, Descricao, Quantidade FROM Copias WHERE NumCond = [Ô] & txtNumCond.Text), ([Ô]SELECT NumCond, NomeCond, DataEmissao, Descricao, Quantidade FROM Copias WHERE DataEmissão BETWEEN #[Ô] & mskInicial.Text & [Ô]# and #[Ô] & mskFinal.Text & [Ô]#[Ô])
Seu eu deixar para consultar somente o CondomÃnio ele busca normal, se eu colocar para buscar só por Datas já não da certo. Então acho que estou com dois problemas, um para unir dois SELECT e outro para buscar entre as Datas.
Se alguém puder me ajudar ficarei muito agradecido.
Estou com uma dúvida para fazer dois SELECT na mesma tabela, por exemplo:
Eu preciso consultar um [Ô]CONDOMÃNIO[Ô] no banco (Access), e um determinado [Ô]PERÃODO[Ô] de lançamentos por data.
Eu coloquei assim, mas não esta dando certo.
SELECT NumCond, NomeCond, DataEmissao, Descricao, Quantidade FROM Copias WHERE NumCond = [Ô] & txtNumCond.Text), ([Ô]SELECT NumCond, NomeCond, DataEmissao, Descricao, Quantidade FROM Copias WHERE DataEmissão BETWEEN #[Ô] & mskInicial.Text & [Ô]# and #[Ô] & mskFinal.Text & [Ô]#[Ô])
Seu eu deixar para consultar somente o CondomÃnio ele busca normal, se eu colocar para buscar só por Datas já não da certo. Então acho que estou com dois problemas, um para unir dois SELECT e outro para buscar entre as Datas.
Se alguém puder me ajudar ficarei muito agradecido.
Por que usar dois SELECT?
Tente assim:
SELECT NumCond, NomeCond, DataEmissao, Descricao, Quantidade FROM Copias WHERE NumCond = [Ô] & txtNumCond.Text & [Ô] And DataEmissão BETWEEN #[Ô] & mskInicial.Text & [Ô]# and #[Ô] & mskFinal.Text & [Ô]#[Ô]
Tente assim:
SELECT NumCond, NomeCond, DataEmissao, Descricao, Quantidade FROM Copias WHERE NumCond = [Ô] & txtNumCond.Text & [Ô] And DataEmissão BETWEEN #[Ô] & mskInicial.Text & [Ô]# and #[Ô] & mskFinal.Text & [Ô]#[Ô]
Boa noite Jaba!
Então, a minha intenção é fazer duas consultas, se der pra fazer dessa forma beleza. Não deu pra testar, porque não estou conseguindo consultar por data.
Se souber me informar se está errada a forma eu agradeço.
Eu utilizei dessa forma em outro formulário e funcionou, só que puxa da seguinte forma: MM/dd/yyyy, não consegui converter de jeito nenhum, se alguém puder me ajudar.
Banco Access.
Então, a minha intenção é fazer duas consultas, se der pra fazer dessa forma beleza. Não deu pra testar, porque não estou conseguindo consultar por data.
Se souber me informar se está errada a forma eu agradeço.
Eu utilizei dessa forma em outro formulário e funcionou, só que puxa da seguinte forma: MM/dd/yyyy, não consegui converter de jeito nenhum, se alguém puder me ajudar.
Banco Access.
Dim myDate As Date = mskInicial.Text
Dim myDates As Date = mskFinal.Text
[Ô]select NumCond, NomeCond, DataEmissao, Descricao, Quantidade from Copias where dataemissao between #[Ô] & Format(myDate, [Ô]dd/MM/yyyy[Ô]) & [Ô]# and #[Ô] & Format(myDates, [Ô]dd/MM/yyyy[Ô]) & [Ô]# And NumCond= [Ô] & txtCod.Text
Basta mudar para MM/dd/yyyy ou dd/MM/yyyy
Dim myDates As Date = mskFinal.Text
[Ô]select NumCond, NomeCond, DataEmissao, Descricao, Quantidade from Copias where dataemissao between #[Ô] & Format(myDate, [Ô]dd/MM/yyyy[Ô]) & [Ô]# and #[Ô] & Format(myDates, [Ô]dd/MM/yyyy[Ô]) & [Ô]# And NumCond= [Ô] & txtCod.Text
Basta mudar para MM/dd/yyyy ou dd/MM/yyyy
O campo foi definido no Access como tipo de dados data?
Se sim, tente o seguinte:
Se sim, tente o seguinte:
SELECT format(campodata, [Ô]dd/mm/yyyy[Ô]) FROM tabela
Você não precisa de duas querys a não ser que precise para outras situações
Primeiro consulta por data no ACCESS vc ate esta passando a expressão certa, mas o formato da Data com certeza esta errado!
Formatação de data para o Access é Mês/Dia/Ano
Qualquer duvida poste ai
Primeiro consulta por data no ACCESS vc ate esta passando a expressão certa, mas o formato da Data com certeza esta errado!
Formatação de data para o Access é Mês/Dia/Ano
Dim _dtinicial As DateTime = Convert.ToDateTime(mskInicial.Text)
Dim _dtfinal As DateTime = Convert.ToDateTime(mskFinal.Text)
SELECT
NumCond,
NomeCond,
DataEmissao,
Descricao,
Quantidade
FROM Copias
WHERE NumCond = [Ô] & txtNumCond.Text
AND DataEmissão BETWEEN #[Ô] & _dtinicial.ToString([Ô]MM/dd/yyyy[Ô]) & [Ô]# AND #[Ô] & _dtfinal.ToString([Ô]MM/dd/yyyy[Ô]) & [Ô]#[Ô]
Qualquer duvida poste ai
Filman, você testeu esse código de consulta.
Antes da sua resposta tinha testado com .toString e gerou erro.
A sua gera o mesmo erro.
Antes da sua resposta tinha testado com .toString e gerou erro.
A sua gera o mesmo erro.
Galera, Boa noite!
Gostaria de agradecer a todos pela ajuda, muito obrigado mesmo, eu testei os códigos e funcionou perfeitamente, agora estou conseguindo consultar por dia, mês, ano.
Queria deixar claro que é admirável a atitude da galera do site VB Mania em querer ajudar o próximo, compartilhando conhecimentos, PARABéNS a todos.
Aproveitando o ensejo, para encerrar o tópico,eu coloquei o seguinte código para que, caso o usuário coloque a data inicial maior que a data final, me mostrasse uma mensagem informando, mas não está funcionando corretamente. Segue abaixo o código:
If Val(mskInicial.Text) > Val(mskFinal.Text) Then
MessageBox.Show([Ô]A Data Inicial não Pode ser Maior do que a Data Final !!![Ô] & vbCrLf & [Ô]Favor Corrigir.[Ô], [Ô]Alerta de Erro...[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
mskInicial.Clear()
mskFinal.Clear()
mskInicial.Focus()
Exit Sub
End If
Pelo que vi, ele só pega os primeiros números, ou seja o dia.
Tenho que converter também?
Obs.: Até amanhã estarei encerrando esse tópico e abrindo outro com essa nova dúvida, caso não consiga resposta.
Gostaria de agradecer a todos pela ajuda, muito obrigado mesmo, eu testei os códigos e funcionou perfeitamente, agora estou conseguindo consultar por dia, mês, ano.
Queria deixar claro que é admirável a atitude da galera do site VB Mania em querer ajudar o próximo, compartilhando conhecimentos, PARABéNS a todos.
Aproveitando o ensejo, para encerrar o tópico,eu coloquei o seguinte código para que, caso o usuário coloque a data inicial maior que a data final, me mostrasse uma mensagem informando, mas não está funcionando corretamente. Segue abaixo o código:
If Val(mskInicial.Text) > Val(mskFinal.Text) Then
MessageBox.Show([Ô]A Data Inicial não Pode ser Maior do que a Data Final !!![Ô] & vbCrLf & [Ô]Favor Corrigir.[Ô], [Ô]Alerta de Erro...[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
mskInicial.Clear()
mskFinal.Clear()
mskInicial.Focus()
Exit Sub
End If
Pelo que vi, ele só pega os primeiros números, ou seja o dia.
Tenho que converter também?
Obs.: Até amanhã estarei encerrando esse tópico e abrindo outro com essa nova dúvida, caso não consiga resposta.
Troque o Val pelo CDate, assim:
If CDate(mskInicial.Text) > CDate(mskFinal.Text) Then
If CDate(mskInicial.Text) > CDate(mskFinal.Text) Then
Obrigado Jaba, funcionou perfeitamente.
Quero agradecer a todos que me ajudaram nesse tópico, mas infelizmente só posso marcar um.
Parabéns a todos pela iniciativa.
Quero agradecer a todos que me ajudaram nesse tópico, mas infelizmente só posso marcar um.
Parabéns a todos pela iniciativa.
Tópico encerrado , respostas não são mais permitidas