MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

2 participantes

    [Resolvido]Multiplos updates num unico objeto

    avatar
    gpessoa
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 28
    Registrado : 01/08/2012

    [Resolvido]Multiplos updates num unico objeto Empty [Resolvido]Multiplos updates num unico objeto

    Mensagem  gpessoa Ter 11 Jan 2022, 01:25

    Bom ano ao Forum,

    Pretendo,se possível, ajuda para criar um único UPDATE com os elementos abaixo...

    Para alem de ter o ecran cheio de objetos, ainda tenho que clicar em cada um individualmente para atualizar.
    Dai a ideia de ter tudo num único objeto!

    Como fiz/ faço:

    Primeiro:
    Criei a seguinte consulta selecionar com o nome Compilar.
    Código:
    SELECT nvm.sku, nvm.stLoja, nvm.stArmazem, nvm.stReservado, nvm.availability, st22.st_22, st44.st_44, st42.st_42, st16.st_16, st24.st_24, NZ([stLoja],0)-NZ([stReservado],0)+NZ([st_16],0)+NZ([st_24],0)+NZ([st_22],0)+NZ([st_44],0)+NZ([st_42],0) AS Em_Stock
    FROM ((((nvm LEFT JOIN st44 ON nvm.sku = st44.sku) LEFT JOIN st42 ON nvm.sku = st42.sku) LEFT JOIN st22 ON nvm.sku = st22.sku) LEFT JOIN st16 ON nvm.sku = st16.sku) LEFT JOIN st24 ON nvm.sku = st24.sku;

    Segundo:
    Criei as seguintes 8 consultas de atualizar (Updates).
    Código:
    UPDATE nvm SET nvm.availability = Null;

    UPDATE nvm SET nvm.availability = "consulte"
    WHERE (((nvm.stLoja)<1) AND ((nvm.stArmazem)=0 Or (nvm.stArmazem)<3)) OR (((nvm.stLoja)>0) AND ((nvm.stArmazem)<1));

    UPDATE nvm SET nvm.availability = "em stock"
    WHERE (((nvm.stLoja)>0) AND ((nvm.stArmazem)>0));

    UPDATE nvm LEFT JOIN Compilar ON nvm.sku = Compilar.sku SET nvm.availability = "em armazem local"
    WHERE (((Compilar.st_22) Is Not Null Or (Compilar.st_22)>0) AND ((nvm.stLoja)<1) AND ((nvm.stArmazem)>2)) OR (((nvm.stLoja)<1) AND ((nvm.stArmazem)>2) AND ((Compilar.st_44) Is Not Null Or (Compilar.st_44)>0)) OR (((nvm.stLoja)<1) AND ((nvm.stArmazem)>2) AND ((Compilar.st_24) Is Not Null Or (Compilar.st_24)>0)) OR (((nvm.stLoja)<1) AND ((nvm.stArmazem)>2) AND ((Compilar.st_16) Is Not Null Or (Compilar.st_16)>0));

    UPDATE nvm LEFT JOIN Compilar ON nvm.sku = Compilar.sku SET nvm.availability = "em armazem europa"
    WHERE (((nvm.stLoja)<1) AND ((nvm.stArmazem)>2) AND ((Compilar.st_42) Is Not Null Or (Compilar.st_42)>0));

    UPDATE nvm SET nvm.availability = "em armazem europa"
    WHERE (((nvm.stLoja)<1) AND ((nvm.stArmazem)>0) AND ((nvm.sku) Like "*+*"));

    UPDATE nvm SET nvm.availability = "artigo esgotado"
    WHERE (((nvm.pub_control)="e"));

    UPDATE nvm SET nvm.availability = "artigo descontiniado"
    WHERE (((nvm.pub_control)="d"));

    desde já grato pela atenção possível!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10671
    Registrado : 04/11/2009

    [Resolvido]Multiplos updates num unico objeto Empty Re: [Resolvido]Multiplos updates num unico objeto

    Mensagem  JPaulo Ter 11 Jan 2022, 11:38

    Olá

    Pode usar no evento ao pressionar de um botão no seu formulario;

    Código:
    Private Sub SeuBotao_Click()
    DoCmd.SetWarnings False 'desabilita a mensagem do update
        DoCmd.OpenQuery "Sua Consulta 1"
        DoCmd.OpenQuery "Sua Consulta 2"
        DoCmd.OpenQuery "Sua Consulta 3"
        DoCmd.OpenQuery "Sua Consulta 5"
        DoCmd.OpenQuery "Sua Consulta 6"
        DoCmd.OpenQuery "Sua Consulta 7"
        DoCmd.OpenQuery "Sua Consulta 8"
    DoCmd.SetWarnings False 'habilita de novo a mensagem do update
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Multiplos updates num unico objeto Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Multiplos updates num unico objeto Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Multiplos updates num unico objeto Folder_announce_new Instruções SQL como utilizar...
    avatar
    gpessoa
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 28
    Registrado : 01/08/2012

    [Resolvido]Multiplos updates num unico objeto Empty Re: [Resolvido]Multiplos updates num unico objeto

    Mensagem  gpessoa Ter 11 Jan 2022, 11:51

    Bom dia Paulo,

    Obg pela dica, no entanto esse não é o meu principal objetivo...

    a ideia é ter a "casa" arrumada dado que tenho cerca de 200 objetos e se pudesse ter isto mais compacto facilitava!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10671
    Registrado : 04/11/2009

    [Resolvido]Multiplos updates num unico objeto Empty Re: [Resolvido]Multiplos updates num unico objeto

    Mensagem  JPaulo Ter 11 Jan 2022, 12:05

    Se a ideia é não ter consultas e manter a casa arrumada, pode sempre usar tudo em código;

    Não sei se entendi direito o seu conceito de casa arrumada, mas cada objecto tem um nome diferente e torna-se mais complexo;

    Código:
    Private Sub SeuBotaoNoForm_Click()
        CurrentDb.Execute "UPDATE nvm SET nvm.availability = Null;"
        CurrentDb.Execute "UPDATE nvm SET nvm.availability = 'consulte' WHERE (((nvm.stLoja)<1) AND ((nvm.stArmazem)=0 Or (nvm.stArmazem)<3)) OR (((nvm.stLoja)>0) AND ((nvm.stArmazem)<1));"
        CurrentDb.Execute "UPDATE nvm SET nvm.availability = 'em stock' WHERE (((nvm.stLoja)>0) AND ((nvm.stArmazem)>0));"
        CurrentDb.Execute "UPDATE nvm LEFT JOIN Compilar ON nvm.sku = Compilar.sku SET nvm.availability = 'em armazem local' WHERE (((Compilar.st_22) Is Not Null Or (Compilar.st_22)>0) AND ((nvm.stLoja)<1) AND ((nvm.stArmazem)>2)) OR (((nvm.stLoja)<1) AND ((nvm.stArmazem)>2) AND ((Compilar.st_44) Is Not Null Or (Compilar.st_44)>0)) OR (((nvm.stLoja)<1) AND ((nvm.stArmazem)>2) AND ((Compilar.st_24) Is Not Null Or (Compilar.st_24)>0)) OR (((nvm.stLoja)<1) AND ((nvm.stArmazem)>2) AND ((Compilar.st_16) Is Not Null Or (Compilar.st_16)>0));"
        CurrentDb.Execute "UPDATE nvm LEFT JOIN Compilar ON nvm.sku = Compilar.sku SET nvm.availability = 'em armazem europa' WHERE (((nvm.stLoja)<1) AND ((nvm.stArmazem)>2) AND ((Compilar.st_42) Is Not Null Or (Compilar.st_42)>0));"
        CurrentDb.Execute "UPDATE nvm SET nvm.availability = 'em armazem europa' WHERE (((nvm.stLoja)<1) AND ((nvm.stArmazem)>0) AND ((nvm.sku) Like '*+*'));"
        CurrentDb.Execute "UPDATE nvm SET nvm.availability = 'artigo esgotado' WHERE (((nvm.pub_control)='e'));"
        CurrentDb.Execute "UPDATE nvm SET nvm.availability = 'artigo descontiniado' WHERE (((nvm.pub_control)='d'));"
    End Sub


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Multiplos updates num unico objeto Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Multiplos updates num unico objeto Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Multiplos updates num unico objeto Folder_announce_new Instruções SQL como utilizar...

      Data/hora atual: Qui 27 Jan 2022, 00:34