MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Função Especifica

    Compartilhe

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 19/08/2010

    Função Especifica

    Mensagem  marcelo3092 em Sab 14 Jul - 15:54

    Ola pessoal boa tarde estou com um probleminha aqui e não sei como resolve. A questão e o seguinte preciso adicionar uns dados salva em outra tabela para o formulario atual com filtro ate ai blz cheguei a este código.

    Dim dbOrc As Database, rs1, rs2, rs3, rs4, rs5 As DAO.Recordset
    Set dbOrc = CurrentDb

    'Aqui abro a tabela onde estão os produtos do orçamento
    Set rs2 = dbOrc.OpenRecordset("SELECT * FROM Produto_Detalhe WHERE Cód_Produto=" & Me.Combinação48)
    'Aqui abro a tabela que vai receber os produtos do orçamento
    Set rs3 = dbOrc.OpenRecordset("Matéria_Saida_Detalhe", dbOpenDynaset)
    'Aqui os campos que vão receber os dados dos produtos do orçamento

    While (Not rs2.EOF)
    With rs3
    .AddNew
    ![Cód_Saida] = DMax("Cód_Saida", "Matéria_Saida")
    ![Cód_Matéria] = rs2![Cód_Matéria]
    ![Valor_Registrado] = rs2![Valor_Registrado]
    ![Qtd_Par] = rs2![Quantidade]
    .Update
    rs2.MoveNext
    End With
    Wend


    'Aqui fecho as tabelas abertas
    rs2.Close
    Set rs2 = Nothing
    rs3.Close
    Set rs3 = Nothing

    Set dbOrc = Nothing


    Funciona Perfeito porem eu tenho uma consulta que calcula o estou dos produtos, e fazendo este código ele não confere o estoque se tem ou não.
    ai que ta meu problema gostaria que ao execultar ele compara-se a quantidade do rs2 com o estoque que é uma consulta Matéria_Estoque com o campo Estoque e se não tiver no estoque apenas mostre uma mensagem informando que não tem e assim em diante com todos os itens.
    Seria Possivel tenho um código aqui que é para alteração de preço com a mesma função porem verificando se um campo tipo SIM/NÃO esta marcado tentei adaptar mais sem sucesso.
    Este é o da alteração

    Dim rs4 As Recordset
    Dim rs5 As Recordset
    Dim DB

    Set DB = CurrentDb()
    Set rs5 = DB.OpenRecordset("Alteração_Preço_Antigos")

    Set rs4 = Me!Alteraão_Preço_Sub.Form.RecordsetClone
    rs4.MoveFirst
    Do While Not rs4.EOF
    If rs4.Fields("AlteraçãoSelecionar") = True Then 'So Acrescentei esta linha no codigo.
    rs4.Edit
    rs5.AddNew
    rs5![Valor_Alterado] = rs4![Preço_Venda]
    rs5![Cód_Produto] = rs4![Cód_Produto]
    rs5![Data_Alteração] = Date
    rs4![Preço_Venda] = rs4![Preço_Venda] * Me!Texto22 + rs4![Preço_Venda]
    rs5![Valor_Novo] = rs4![Preço_Venda]
    rs5![Usuário] = getUsuarioAtual()
    rs5![Cód_Empresa] = [Forms]![FPrincipal]![Cód_Empresa]
    rs5![Aumento%] = Me!Texto22
    rs4.Update
    rs5.Update
    End If
    rs4.MoveNext
    Loop
    rs4.Close
    rs5.Close
    Set rs4 = Nothing
    Set rs5 = Nothing

    DoCmd.SetWarnings False

    sera que alguem poderia me ajudar

    marcelo3092
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 19/08/2010

    Função Especifica

    Mensagem  marcelo3092 em Sab 14 Jul - 17:12

    Pessoal Cheguei a mais um patamar agora o que eu queria era unir essas duas função exemplo ele faz tudo que eu quero porem queria que ele não adiciona-se os materiais que não esteja no estoque.


    If Me.Frm_Matéria_Saida_Detalhe.Form.Cód_Saida = 0 Then
    MsgBox "Já Foram Adicionados Material.", vbInformation, NomeAplicativo()
    Exit Sub
    End If
    Dim dbOrc As Database, rs2, rs3 As DAO.Recordset
    Set dbOrc = CurrentDb

    'Aqui abro a tabela onde estão os produtos do orçamento
    Set rs2 = dbOrc.OpenRecordset("SELECT * FROM Produto_Detalhe WHERE Cód_Produto=" & Me.Combinação48)
    'Aqui abro a tabela que vai receber os produtos do orçamento
    Set rs3 = dbOrc.OpenRecordset("Matéria_Saida_Detalhe", dbOpenDynaset)
    'Aqui os campos que vão receber os dados dos produtos do orçamento


    Dim rs10
    Dim rs11
    Dim rs12
    Dim rst As Recordset
    Set rst = Me!Frm_Produto_Detalhe.Form.RecordsetClone
    rst.MoveFirst
    Do While Not rst.EOF
    rs10 = DLookup("[Estoque]", "Mat_Estoque", "[Cód_Matéria] =" & rst!Cód_Matéria)
    rs11 = DLookup("[Descrição]", "Matéria", "[Cód_Matéria] =" & rst!Cód_Matéria)
    If rst.Fields("Quantidade") > rs10 Then 'So Acrescentei esta linha no codigo.
    'MsgBox "A Quantidade Requerida Não Existe no Estoque" & rs11, vbCritical, NomeAplicativo()



    MsgBox "A Quantidade Requerida Não Existe no Estoque." & vbCr & "" & vbCr & _
    "Material: " & rs11 & vbCr & _
    "Quantidade no Estoque: " & rs10, vbCritical, NomeAplicativo()
    Else





    Else
    While (Not rs2.EOF)
    If rst.Fields("Quantidade") < rs10 Then 'So Acrescentei esta linha no codigo.
    With rs3

    .AddNew
    ![Cód_Saida] = DMax("Cód_Saida", "Matéria_Saida")
    ![Cód_Matéria] = rs2![Cód_Matéria]
    ![Valor_Registrado] = rs2![Valor_Registrado]
    ![Qtd_Par] = rs2![Quantidade]
    .Update
    rs2.MoveNext

    End With
    Wend


    End If
    End If
    rst.MoveNext
    Loop
    rst.Close

    Set rst = Nothing
    Set rs10 = Nothing
    Set rs11 = Nothing
    rs2.Close
    Set rs2 = Nothing
    rs3.Close
    Set rs3 = Nothing

    Set dbOrc = Nothing


      Data/hora atual: Qui 13 Dez - 13:23