TABELAS
Pessoal, meu problema é o seguinte, conforme abaixo estou montando uma planilha com os dados de um banco de nome Materiais uso duas Tabelas - (baixas) e (Localizacao).
1º Problema - Na tabela Baixa exite dados repetidos, ou seja, ex: cód. 000649 02 pc e 000649 05 pc, preciso mostrar uma vez esse cód. e somar suas quantidades, é possivel?
2º Problema - Na tabela Localizacao tenho a descricao do material, preciso casar essa descricao com o cód. da Tabela Baixa, é possivel? Na Tabela Localizacao eu tenho cadastrado tambem o cód.
Se eu colocar uma rotina para cada busca, funciona parcialmente, ja testei. No caso de carregar primeiramente os códigos de baixas dos materiais cai no primeiro problema. E quanto a descrição, carrega todas não comparado com o cód. ja carregado. Alguem pode me dar uma luz?
Private Sub MontaBaixas()
Dim BdBaixas As DAO.Database
Dim TbBaixas As DAO.Recordset, TbLc As DAO.Recordset
Dim Ln3
Ln3 = 4
Plan421.Range("a4:m5000").ClearContents
Set BdBaixas = OpenDatabase("C:\Estoque\Materiais.mdb")
Set TbBaixas = BdBaixas.OpenRecordset("SELECT * FROM BAIXAS ORDER BY CODIGO", dbOpenSnapshot)
Set TbLc = BdLc.OpenRecordset("SELECT * FROM LOCALIZACAO ORDER BY CÓ“DIGO", dbOpenSnapshot)
Do Until TbBaixas.EOF
Ln3 = Ln3 + 1
Plan421.Range("A" & Ln3) = TbBaixas("Codigo")
Plan421.Range("C" & Ln5) = TbLc("Descrição")
Ln3 = Ln3 + 1
TbBaixas.MoveNext
Loop
BdBaixas.Close
1º Problema - Na tabela Baixa exite dados repetidos, ou seja, ex: cód. 000649 02 pc e 000649 05 pc, preciso mostrar uma vez esse cód. e somar suas quantidades, é possivel?
2º Problema - Na tabela Localizacao tenho a descricao do material, preciso casar essa descricao com o cód. da Tabela Baixa, é possivel? Na Tabela Localizacao eu tenho cadastrado tambem o cód.
Se eu colocar uma rotina para cada busca, funciona parcialmente, ja testei. No caso de carregar primeiramente os códigos de baixas dos materiais cai no primeiro problema. E quanto a descrição, carrega todas não comparado com o cód. ja carregado. Alguem pode me dar uma luz?
Private Sub MontaBaixas()
Dim BdBaixas As DAO.Database
Dim TbBaixas As DAO.Recordset, TbLc As DAO.Recordset
Dim Ln3
Ln3 = 4
Plan421.Range("a4:m5000").ClearContents
Set BdBaixas = OpenDatabase("C:\Estoque\Materiais.mdb")
Set TbBaixas = BdBaixas.OpenRecordset("SELECT * FROM BAIXAS ORDER BY CODIGO", dbOpenSnapshot)
Set TbLc = BdLc.OpenRecordset("SELECT * FROM LOCALIZACAO ORDER BY CÓ“DIGO", dbOpenSnapshot)
Do Until TbBaixas.EOF
Ln3 = Ln3 + 1
Plan421.Range("A" & Ln3) = TbBaixas("Codigo")
Plan421.Range("C" & Ln5) = TbLc("Descrição")
Ln3 = Ln3 + 1
TbBaixas.MoveNext
Loop
BdBaixas.Close
1) SELECT Codigo, Count(OutroCampo) AS Total FROM BAixa
GROUP BY Codigo;
2) SELECT Baixa.*,Localizacao.Descricao FROM Baixa,Localizacao WHERE Localizacao.CodBaixa=Baixa.Cod
GROUP BY Codigo;
2) SELECT Baixa.*,Localizacao.Descricao FROM Baixa,Localizacao WHERE Localizacao.CodBaixa=Baixa.Cod
Desculpe, viajei.
1) SELECT Codigo, Sum(Saida) AS Total FROM BAixa
GROUP BY Codigo;
Vê se funciona.
Abraços,
1) SELECT Codigo, Sum(Saida) AS Total FROM BAixa
GROUP BY Codigo;
Vê se funciona.
Abraços,
E ele é um campo numérico ?
Pq testei aqui isso e funcionou.
Abraços,
Pq testei aqui isso e funcionou.
Abraços,
Então é isso, pq o sum espera um valor.
Tenta assim
SELECT Codigo, Sum(Val(Saida)) AS Total FROM BAixa
GROUP BY Codigo;
Acho q a função Val deve funcionar. Se não existir, tem de achar uma para converter para ÂÂÂ'numérico para poder usar o SUM.
Fico no aguardo.
Abraços,
Tenta assim
SELECT Codigo, Sum(Val(Saida)) AS Total FROM BAixa
GROUP BY Codigo;
Acho q a função Val deve funcionar. Se não existir, tem de achar uma para converter para ÂÂÂ'numérico para poder usar o SUM.
Fico no aguardo.
Abraços,
Dica,
nunca use string para armazenar valores numéricos, ainda + se vc vai fazer operações com eles.
Abraços,
nunca use string para armazenar valores numéricos, ainda + se vc vai fazer operações com eles.
Abraços,
eu prefiro assim
TBBaixas.movefirst
Do While NotTbBaixas.EOF
Ln3 = Ln3 + 1
Plan421.Range("A" & Ln3) = TbBaixas("Codigo")
Plan421.Range("E" & Ln3) = TbBaixas("TOTAL")
Ln3 = Ln3 + 1
TbBaixas.MoveNext
Loop
Abraços,
TBBaixas.movefirst
Do While NotTbBaixas.EOF
Ln3 = Ln3 + 1
Plan421.Range("A" & Ln3) = TbBaixas("Codigo")
Plan421.Range("E" & Ln3) = TbBaixas("TOTAL")
Ln3 = Ln3 + 1
TbBaixas.MoveNext
Loop
Abraços,
sim
é uma opção
no access pode ser número (double)
Abraç.s
é uma opção
no access pode ser número (double)
Abraç.s
Set TbLc = BdBaixas.OpenRecordset("SELECT BAIXAS.*,LOCALIZACAO.DESCRIÇÃO FROM BAIXAS,LOCALIZACAO WHERE LOCALIZACAO.CÓ“DIGO=BAIXAS.CODIGO", dbOpenSnapshot
Tem um campo Codigo acentuado e o outro não...
Não é isso ?
Abraços,
Tem um campo Codigo acentuado e o outro não...
Não é isso ?
Abraços,
Tópico encerrado , respostas não são mais permitidas