Irenko
|
BELO HORIZONTE MG - BRASIL
|
|
Postada em 17/02/2005 18:36 hs
Tentendo novamente uma ajuda.
Amigos, o primeiro SET carrega normalmente conforme instrução SQL ja o segundo SET da problema na instrução onde não consigo ver, pois pesso para carregar as baixas referente ao codigo carregado pela 1º SQL e a mesma carrega repetindo. Ex.: 00037 4 10 11 12
00038 4 10 11 12
e assim por diante.... Onde estou errando?
Public Sub MontaBaixas_2() Dim BdBaixas As DAO.Database Dim Tbbaixas As DAO.Recordset, TbPva As DAO.Recordset, TbUn As DAO.Recordset, TbIn As DAO.Recordset, TbUnit As DAO.Recordset, TbAtual As DAO.Recordset, TbOs As DAO.Recordset Dim Ln3 Ln3 = 7 Plan421.Range("a7:N65536").ClearContents
Set BdBaixas = OpenDatabase("C:EstoqueMateriais.mdb") Set TbIn = BdBaixas.OpenRecordset("SELECT DISTINCT Dados.Codigo,Inicial.QT FROM Dados,Inicial WHERE Inicial.Codigo=Dados.Codigo AND Dados.Status='S'ORDER BY Dados.Codigo", dbOpenSnapshot)
Do Until TbIn.EOF Plan421.Range("A" & Ln3) = TbIn("Codigo") Plan421.Range("E" & Ln3) = TbIn("QT") Ln3 = Ln3 + 1
Set Tbbaixas = BdBaixas.OpenRecordset("SELECT Dados.Data, Sum(Dados.Quant) AS TOTAL FROM Dados,Inicial Where Dados.Codigo=Inicial.Codigo and Dados.Status='S' GROUP BY Dados.Codigo,Dados.Data,Inicial.Codigo", dbOpenSnapshot) Ln3 = Ln3 + 1 If Tbbaixas.BOF And Tbbaixas.EOF Then Else Do Until Tbbaixas.EOF Plan421.Range("B" & Ln3 - 1) = Format(Tbbaixas("Data"), "dd/mm/yy") Plan421.Range("F" & Ln3 - 1) = Tbbaixas("TOTAL") Ln3 = Ln3 + 1 Tbbaixas.MoveNext Loop End If
TbIn.MoveNext Loop
|
|
|
|
|
Postada em 18/02/2005 08:07 hs
mudei a segunda SQL, tirei o código do group by .. Public Sub MontaBaixas_2() Dim BdBaixas As DAO.Database Dim Tbbaixas As DAO.Recordset, TbPva As DAO.Recordset, TbUn As DAO.Recordset, TbIn As DAO.Recordset, TbUnit As DAO.Recordset, TbAtual As DAO.Recordset, TbOs As DAO.Recordset Dim Ln3 Ln3 = 7 Plan421.Range("a7:N65536").ClearContents Set BdBaixas = OpenDatabase("C:EstoqueMateriais.mdb") Set TbIn = BdBaixas.OpenRecordset("SELECT DISTINCT Dados.Codigo,Inicial.QT FROM Dados,Inicial WHERE Inicial.Codigo=Dados.Codigo AND Dados.Status='S'ORDER BY Dados.Codigo", dbOpenSnapshot) Do while not TbIn.EOF() Plan421.Range("A" & Ln3) = TbIn("Codigo") Plan421.Range("E" & Ln3) = TbIn("QT") Ln3 = Ln3 + 1 Set Tbbaixas = BdBaixas.OpenRecordset("SELECT Dados.Data, Sum(Dados.Quant) AS TOTAL FROM Dados,Inicial Where Dados.Codigo=Inicial.Codigo and Dados.Status='S' GROUP BY Dados.Data", dbOpenSnapshot) Ln3 = Ln3 + 1 If Tbbaixas.BOF And Tbbaixas.EOF Then Else Do Until Tbbaixas.EOF Plan421.Range("B" & Ln3 - 1) = Format(Tbbaixas("Data"), "dd/mm/yy") Plan421.Range("F" & Ln3 - 1) = Tbbaixas("TOTAL") Ln3 = Ln3 + 1 Tbbaixas.MoveNext Loop End If
TbIn.MoveNext Loop
|
|
|
Irenko
|
BELO HORIZONTE MG - BRASIL
|
|
Postada em 18/02/2005 18:15 hs
Montei o codigo abaixo que carrega os dados na planilha. Estou usando somente uma tabela para facilitar. O problema é o seguinte: o campo CODIGO da tabela DADOS aceita o cod. do material varias vezes e tenho o campo OS na qual gravo o documento de baixa referente a um determinado cod. de material, quando gero o relatorio um determinado codigo ex: 00032 no qual efetuei duas baixas, sendo: 00032 1pc OS 1321 00032 2pc OS 2121 O caso é, preciso mostrar desta forma 00032 3pc OS 1321 2121
Usei no SELECT o DISTINCT mas não funcionou. Se tiro a OS do GROUP BY e do SELECT o codigo agrupa normalmente mostrando o cod. material uma vez, so que preciso mostrar as OS's referente a este cod. material. Alguem tem uma ideia de como fazer funcionar?
Public Sub MontaBaixas_2()
Dim BdBaixas As DAO.Database Dim Tbbaixas As Recordset Dim Ln3 Ln3 = 7 Plan421.Range("a7:N65536").ClearContents
Set BdBaixas = OpenDatabase("C:EstoqueMateriais.mdb") Set Tbbaixas = BdBaixas.OpenRecordset("SELECT DISTINCT Data,Codigo,OS, Sum(Quant) AS TOTAL FROM Dados Where Status='S' GROUP BY Codigo,Data,OS ORDER BY Codigo", dbOpenSnapshot)
If Tbbaixas.BOF And Tbbaixas.EOF Then Else Do Until Tbbaixas.EOF
Plan421.Range("B" & Ln3) = Format(Tbbaixas("Data"), "dd/mm/yy") Plan421.Range("A" & Ln3) = Tbbaixas("Codigo") Ln3 = Ln3 + 1 Plan421.Range("G" & Ln3 - 1) = Tbbaixas("TOTAL") Plan421.Range("E" & Ln3 - 1) = Tbbaixas("OS") Ln3 = Ln3 + 1 Tbbaixas.MoveNext Loop End If
|
|
|
|