Notifications
Clear all

SELECT WHERE COM PARAMENTOS DE UMA CÉLULA

4 Posts
2 Usuários
0 Reactions
1,127 Visualizações
(@samuesouza)
Posts: 2
New Member
Topic starter
 

Bom dia,

Estou com um sistema em Excel onde está conectado ao banco de dados Access e preciso fazer um Select Where usando os parâmetros de uma célula do Excel

segue exemplo abaixo:

- No bando de dados do Access tenho a tabela [tbFaturamento], onde quero consultar os campos Ano [Data_de_Emissao], Mês [Data_de_Emissao], Contar os [CTRC] , Somar [Quantidade_de_Volumes], Somar [Cubagem_em_m3], Somar [Peso_Calculado_em_Kg], Somar [Valor_da_Mercadoria] e Somar [Valor_do_Frete] contudo quero que me apresente apenas valores que forem de uma [Unidade_Emissora] que está especificada no campo "B6" da aba do Excel "Anual" e também tenha o [Tipo_de_Baixa] diferente de 'CANCELADO'
e não me apresente valores repetidor de Ano e Mês.

O código que criei ficou assim:
sQuery = " SELECT YEAR(F.[Data_de_Emissao]), MONTH(F.[Data_de_Emissao]), COUNT(F.[CTRC]), " & _
"SUM(F.[Quantidade_de_Volumes]), SUM(F.[Cubagem_em_m3]), SUM(F.[Peso_Calculado_em_Kg]), " & _
"SUM(F.[Valor_da_Mercadoria]), SUM(F.[Valor_do_Frete])" & _
"FROM tbFaturamento F " & _
"WHERE F.[Unidade_Emissora] =" & Sheets("Anual").Range("B6").Value & _
" AND F.[Tipo_de_Baixa] <> 'CANCELADO' " & _
"GROUP BY YEAR(F.[Data_de_Emissao]), MONTH(F.[Data_de_Emissao]) "

Contudo está apresentando erro, mas quando especifico a [Unidade_Emissora] diretamente no código como no exemplo abaixo o mesmo código funciona...
sQuery = " SELECT YEAR(F.[Data_de_Emissao]), MONTH(F.[Data_de_Emissao]), COUNT(F.[CTRC]), " & _
"SUM(F.[Quantidade_de_Volumes]), SUM(F.[Cubagem_em_m3]), SUM(F.[Peso_Calculado_em_Kg]), " & _
"SUM(F.[Valor_da_Mercadoria]), SUM(F.[Valor_do_Frete])" & _
"FROM tbFaturamento F " & _
"WHERE F.[Unidade_Emissora] = 'BEL' " & _
" AND F.[Tipo_de_Baixa] <> 'CANCELADO' " & _
"GROUP BY YEAR(F.[Data_de_Emissao]), MONTH(F.[Data_de_Emissao]) "

Como posso usar o valor da célula "B6" da aba do Excel "Anual" para atribuir na Where ?????

 
Postado : 14/07/2017 8:16 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

samuesouza,

Bom dia!

Use assim:

sQuery = " SELECT YEAR(F.[Data_de_Emissao]), MONTH(F.[Data_de_Emissao]), COUNT(F.[CTRC]), " & _
"SUM(F.[Quantidade_de_Volumes]), SUM(F.[Cubagem_em_m3]), SUM(F.[Peso_Calculado_em_Kg]), " & _
"SUM(F.[Valor_da_Mercadoria]), SUM(F.[Valor_do_Frete])" & _
"FROM tbFaturamento F " & _
"WHERE F.[Unidade_Emissora] ='" & Sheets("Anual").Range("B6").Value & _ 'Aqui você insere uma aspa simples
"' AND F.[Tipo_de_Baixa] <> 'CANCELADO' " & _ 'e Aqui também
"GROUP BY YEAR(F.[Data_de_Emissao]), MONTH(F.[Data_de_Emissao]) "

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 14/07/2017 8:40 am
(@samuesouza)
Posts: 2
New Member
Topic starter
 

Bom dia Wagner Morel,

Agora Funcionou perfeitamente ! ! !
Muito Obrigado mesmo pela ajuda ! ! não sabia mais oque fazer...

Mas consegue me explicar por que a necessidade da aspa simples nos dois locais ? ?
para que não retorne a cometer o mesmo erro ?

Novamente Obrigado ! ! !

 
Postado : 14/07/2017 8:59 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

samuesouza,

Simples (kkkkk). A resposta está (também) no próprio texto que você enviou.

Ao passar um parâmetro para o SQL você não deve digitar a aspa simples quando se trata de um texto? Então... só isso!

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 14/07/2017 9:19 am