USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Instrução SQL2
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
     
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
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
     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página