Boa tarde!
Amigos pesquisei aqui no fórum, mas não encontrei algo que pudesse
adaptar a minha necessidade.
Tenho uma tabela chamada "Itens de Orçamento", nela fica gravada os "detalhes" do pedido do cliente.
Bom nela fica gravada o preço que o cliente pagou pelo produto.
Devido a forma como meu cliente trabalha, um mesmo produto tem preços variados, pois para cada cliente e um caso.
Como meu chefe se nega a criar uma tabela de preços para cada cliente, toda vez que vou fazer um pedido tenho de verificar qual o preço mais alto pago por aquele produto pelo cliente.
Eu criei uma consulta, e fiz um pequeno formulário qu me traz essa informações.
Oque gostaria , é e que quando eu selecionasse o produto, uma msgbox me informasse qual o maior preço pago por esse produto.
Seria fácil utilizar a função DMax, o problema e que não sei como colocar um critério que filtrasse o preço pelo cliente, visto que na tabela "Itens de orçamento " não consta o ´código do cliente.
O Código do cliente esta na tabela Orçamento, cuja tabela "Itens de Orçamento" esta vinculada pelo campo NumPedido.
Seria possível uma msgbxo com essa informações?
Abaixo a sql da consulta que me traz o maior preço do item., bem como a quantidade já comprada do item.
SELECT Cliente.Código, Item.Descrição, Cliente.CpNome, Max([Itens de Orçamento].[Valor Unitário]) AS [MáxDeValor Unitário], Sum([Itens de Orçamento].Quantidade) AS SomaDeQuantidade, [Itens de Orçamento].[Código do Item]
FROM Cliente INNER JOIN (Orçamento INNER JOIN (Item INNER JOIN [Itens de Orçamento] ON Item.[Código do Item] = [Itens de Orçamento].[Código do Item]) ON Orçamento.[Nota Fiscal] = [Itens de Orçamento].[Nota Fiscal]) ON Cliente.Código = Orçamento.Código
GROUP BY Cliente.Código, Item.Descrição, Cliente.CpNome, [Itens de Orçamento].[Código do Item], Orçamento.Enviado
HAVING (((Cliente.Código)=[Forms]![Orcamento].[Código]) AND (([Itens de Orçamento].[Código do Item])=[Forms]![Orcamento].[Selecionar Produto]) AND ((Orçamento.Enviado)="Sim"))
ORDER BY Item.Descrição;
como disse com a função DMax eu busco omair preço , mas não esta filtrado pelo cliente:
eis o código que esta num evento após atualizar a seleção do item:
Dim PrecoMax
PrecoMax = DMax("[Valor Unitário]", "Itens de Orçamento", "[Código do Item ] = [Selecionar Produto]")
MsgBox " O maior preço de produto foi de " & PrecoMax
Att
NEy Santos
Amigos pesquisei aqui no fórum, mas não encontrei algo que pudesse
adaptar a minha necessidade.
Tenho uma tabela chamada "Itens de Orçamento", nela fica gravada os "detalhes" do pedido do cliente.
Bom nela fica gravada o preço que o cliente pagou pelo produto.
Devido a forma como meu cliente trabalha, um mesmo produto tem preços variados, pois para cada cliente e um caso.
Como meu chefe se nega a criar uma tabela de preços para cada cliente, toda vez que vou fazer um pedido tenho de verificar qual o preço mais alto pago por aquele produto pelo cliente.
Eu criei uma consulta, e fiz um pequeno formulário qu me traz essa informações.
Oque gostaria , é e que quando eu selecionasse o produto, uma msgbox me informasse qual o maior preço pago por esse produto.
Seria fácil utilizar a função DMax, o problema e que não sei como colocar um critério que filtrasse o preço pelo cliente, visto que na tabela "Itens de orçamento " não consta o ´código do cliente.
O Código do cliente esta na tabela Orçamento, cuja tabela "Itens de Orçamento" esta vinculada pelo campo NumPedido.
Seria possível uma msgbxo com essa informações?
Abaixo a sql da consulta que me traz o maior preço do item., bem como a quantidade já comprada do item.
SELECT Cliente.Código, Item.Descrição, Cliente.CpNome, Max([Itens de Orçamento].[Valor Unitário]) AS [MáxDeValor Unitário], Sum([Itens de Orçamento].Quantidade) AS SomaDeQuantidade, [Itens de Orçamento].[Código do Item]
FROM Cliente INNER JOIN (Orçamento INNER JOIN (Item INNER JOIN [Itens de Orçamento] ON Item.[Código do Item] = [Itens de Orçamento].[Código do Item]) ON Orçamento.[Nota Fiscal] = [Itens de Orçamento].[Nota Fiscal]) ON Cliente.Código = Orçamento.Código
GROUP BY Cliente.Código, Item.Descrição, Cliente.CpNome, [Itens de Orçamento].[Código do Item], Orçamento.Enviado
HAVING (((Cliente.Código)=[Forms]![Orcamento].[Código]) AND (([Itens de Orçamento].[Código do Item])=[Forms]![Orcamento].[Selecionar Produto]) AND ((Orçamento.Enviado)="Sim"))
ORDER BY Item.Descrição;
como disse com a função DMax eu busco omair preço , mas não esta filtrado pelo cliente:
eis o código que esta num evento após atualizar a seleção do item:
Dim PrecoMax
PrecoMax = DMax("[Valor Unitário]", "Itens de Orçamento", "[Código do Item ] = [Selecionar Produto]")
MsgBox " O maior preço de produto foi de " & PrecoMax
Att
NEy Santos