Mestres boa noite!
Estou precisando muito de uma ajuda de vocês com um dilema que não consigo resolver de forma alguma. Vamos lá.
Tenho duas tabelas no meu projeto com os nomes: Baseline e Gerar.
Criei um formulário com o nome de Dashboard, onde, tenho 1 subform com o nome de Gerar subform. Neste subform eu tenho a seguinte query abaixo. Que está funcionando.
Traduzindo para o SQL
SELECT Gerar.Loja, Count(Gerar.ID) AS Total, IIf([Total]<[Qtd_sensores],'Multstatus',[result]) AS Classificacao, Gerar.status AS result, Gerar.Data_carga, Baseline.Qtd_sensores
FROM Gerar INNER JOIN Baseline ON Gerar.Client = Baseline.Loja
GROUP BY Gerar.Loja, Gerar.status, Gerar.Data_carga, Baseline.Qtd_sensores
HAVING (((Gerar.Loja)<>"Estoque"));
Nesta query eu utilizo uma variável chamada "Classificacao" com uma expressão de IIF que verifica se a quantidade [Total] gerada pelo Count (Count(Gerar.ID) AS Total) for menor que a [Qtd_sensores], então, classificacao vai receber "Multistatus", caso contrário, recebe [result] que é uma varável que pega os valores de Status.
No form "Dashboard" eu tenho 5 imagens com 5 labels no meio que deve exibir a contagem dos registro de acordo com a classificação da loja, ou seja, conta quantas lojas estão com a classificação de "Online", "Suspeito", "Manutenção", "Entregues", "Enviados" e "Multistatus". Porém, não estou conseguindo fazer está contagem corretamente, visto que não consigo fazer Query, pois "Classificacao" não é um campo da minha tabela e sim uma variável que crio uma expressão na query.
Atualmente estou fazendo as query em funções que chamo no on load do formuário Dashboatd, mas estou buscando pelo campo "status" da tabela Gerar que não retrata a realidade da classificaçao da loja.
Exemplo:
Function suspeito()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim result As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Count(Gerar.ID) AS conta ,Gerar.Loja, Gerar.Status FROM Gerar GROUP BY Gerar.Loja, Gerar.Status HAVING (((Gerar.Status) = 'suspeito'))ORDER BY Gerar.Status;")
rs.MoveLast
result = rs.RecordCount
If Not rs.EOF Then
Me.Lb_manutencao.Caption = CStr(result)
Else
Me.Lb_manutencao.Caption = "0"
End If
rs.Close
Set rs = Nothing
End Function
Como podem observar na imagem abaixo, a quantidade exibida no circulo amarelo (suspeito) está em 334 e a real quantidade que deve ser exibido buscando da variável Classificacao deveria ser 6.
Pessoal, por favor, conto com a ajude de vocês para resolver este meu problema.
Desde já agradeço.
Estou precisando muito de uma ajuda de vocês com um dilema que não consigo resolver de forma alguma. Vamos lá.
Tenho duas tabelas no meu projeto com os nomes: Baseline e Gerar.
Criei um formulário com o nome de Dashboard, onde, tenho 1 subform com o nome de Gerar subform. Neste subform eu tenho a seguinte query abaixo. Que está funcionando.
Traduzindo para o SQL
SELECT Gerar.Loja, Count(Gerar.ID) AS Total, IIf([Total]<[Qtd_sensores],'Multstatus',[result]) AS Classificacao, Gerar.status AS result, Gerar.Data_carga, Baseline.Qtd_sensores
FROM Gerar INNER JOIN Baseline ON Gerar.Client = Baseline.Loja
GROUP BY Gerar.Loja, Gerar.status, Gerar.Data_carga, Baseline.Qtd_sensores
HAVING (((Gerar.Loja)<>"Estoque"));
Nesta query eu utilizo uma variável chamada "Classificacao" com uma expressão de IIF que verifica se a quantidade [Total] gerada pelo Count (Count(Gerar.ID) AS Total) for menor que a [Qtd_sensores], então, classificacao vai receber "Multistatus", caso contrário, recebe [result] que é uma varável que pega os valores de Status.
No form "Dashboard" eu tenho 5 imagens com 5 labels no meio que deve exibir a contagem dos registro de acordo com a classificação da loja, ou seja, conta quantas lojas estão com a classificação de "Online", "Suspeito", "Manutenção", "Entregues", "Enviados" e "Multistatus". Porém, não estou conseguindo fazer está contagem corretamente, visto que não consigo fazer Query, pois "Classificacao" não é um campo da minha tabela e sim uma variável que crio uma expressão na query.
Atualmente estou fazendo as query em funções que chamo no on load do formuário Dashboatd, mas estou buscando pelo campo "status" da tabela Gerar que não retrata a realidade da classificaçao da loja.
Exemplo:
Function suspeito()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim result As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT Count(Gerar.ID) AS conta ,Gerar.Loja, Gerar.Status FROM Gerar GROUP BY Gerar.Loja, Gerar.Status HAVING (((Gerar.Status) = 'suspeito'))ORDER BY Gerar.Status;")
rs.MoveLast
result = rs.RecordCount
If Not rs.EOF Then
Me.Lb_manutencao.Caption = CStr(result)
Else
Me.Lb_manutencao.Caption = "0"
End If
rs.Close
Set rs = Nothing
End Function
Como podem observar na imagem abaixo, a quantidade exibida no circulo amarelo (suspeito) está em 334 e a real quantidade que deve ser exibido buscando da variável Classificacao deveria ser 6.
Pessoal, por favor, conto com a ajude de vocês para resolver este meu problema.
Desde já agradeço.