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


5 participantes

    Alguma solução para pedidos de pizzas em Delivery

    Ivan Carlo
    Ivan Carlo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 13/06/2015

    Alguma solução para pedidos de pizzas em Delivery Empty Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Ivan Carlo 6/5/2020, 17:49

    Olá Amigos.
    Tenho uma idéia para colocar em prática mas não estou conseguindo achar a fórmula certa:
    É para um Delivery Pizzaria.
    O Caso é o seguinte:
    Tenho, por exemplo, os Códigos, seus Produtos e seus valores:
    01 - Mussarela-----------------(Preço: R$ 1,00)
    02- Calabresa------------------(Preço: R$ 2,00)
    03- Frango com Catupiry---(Preço: R$ 3,00)
    04- Quatro Queijos------------(Preço: R$ 4,00)
    ...

    O que preciso?
    Ao montar um pedido, eu digitando "01" a linha monta com uma Mussarela (Até aí tudo bem). E cada um acompanhado com seu código, produto e valor.
    Mas ao desejar montar uma pizza meio-a-meio eu quero digitar "0102" e ter:Meio Mussarela e Meio Calabresa; "0204":Meio Calabresa e Meio Quatro Queijos
    E assim por diante de acordo com cada código do produto. Montando de acordo com os códigos as pizzas meio a meio. Não haveria problema se a linha montada contivesse (no caso de meio a meio) Mussarela/Calabresa; ou Calabresa/Quatro Queijos.
    entenderam? A idéia é agilizar a linha do pedido com cada código montando as pizzas de acordo com cada um. Ainda: No total dessa linha prevalecer o valor da mais cara conforme a maioria tem como padrão.
    Será que é possivel?
    Obrigado à todos desde já.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Alexandre Neves 6/5/2020, 20:42

    Boa tarde
    Sim, é possível. Sem dados é que não dá para ir mais além
    Já experimentou criar essas situações? Que dificuldades encontrou?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    wdiniz
    wdiniz
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    Registrado : 18/03/2018

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  wdiniz 6/5/2020, 20:44

    Meu Caro, você tem que criar as tabelas com suas respectivas mercadorias exemplo: Pizza GG, Pizza G, Pizza M, Pizza P, todas com preço e outa tabela com os recheios Mussarela P e preço, Mussarela M e preço, Mussarela G e preço e assim por diante se você colocar mais recheios por exemplo calabresa p e mussarela p logo saberá que é um pizza meio a meio. Você pode usar comandos para Calcular a média Exmplo Pizza P 5,00 Mussarela p 1,00 Calabresa 2,00 a media do recheio seria 1,50 mais a pizza 5,00 = 6,50
    Ivan Carlo
    Ivan Carlo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 13/06/2015

    Alguma solução para pedidos de pizzas em Delivery Empty Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Ivan Carlo 7/5/2020, 18:59

    Estou enviado Bd em desenvolvimento para que seja entendido a dificuldade.
    Ao fazer o pedido pretendo usar a combinação dos códigos do produto para poder "Montar" o item do pedido meio a meio.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Alexandre Neves 7/5/2020, 21:58

    Boa noite,
    Explique todos os detalhes. Como chegar ao ponto que deve ser alterado?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Ivan Carlo
    Ivan Carlo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 13/06/2015

    Alguma solução para pedidos de pizzas em Delivery Empty Segue um link de um video de explicação do que preciso

    Mensagem  Ivan Carlo 8/5/2020, 03:28

    Boa Noite amigos.
    Segue um pequeno video que fiz para demonstar o que estou precisando.
    Qualquer função que se coloque, mesmo com um pequeno exemplo de bd para que o esperado seja conseguido, eu consigo adaptar no meu BD
    Obrigado desde já.

    https://www.youtube.com/watch?v=F2egJzCFBvY

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Alexandre Neves 8/5/2020, 14:07

    Boa tarde
    Fala como disse o colega wdinis. Na tabela Produtos, cadastre todos os produtos "novos" com os códigos combinados
    Código: 0102, 0103, 0104, 0203, 0204, 0304
    CódigoFornecedor: Mussarela e Calabreza, ...
    e os outros campos respectivos


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Ivan Carlo
    Ivan Carlo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 13/06/2015

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Ivan Carlo 8/5/2020, 22:22

    Não amigo. Acho que vc ainda não entendeu.
    Já pensou na imensa quantidade de combinações que terá de ser feita?
    Acredito no poder de opções do Access, só não sei como usar.
    Já vi coisas no Access que achava ser impossível....e não foram.
    mas....obrigado mesmo assim.
    Vou continuar tentando achar a solução.
    Se eu conseguir, posto aqui pra ajudar.
    avatar
    delsonk
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 203
    Registrado : 26/11/2013

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  delsonk 9/5/2020, 00:01

    Boa noite!

    Visualizo duas possíveis soluções:

    1. Selecionar mais de um item usando a tecla CONTROL pressionada e depois, usando um FOR fazer a concatenação dos itens selecionados.


    O exemplo abaixo é para a impressão de seleção de múltiplas etiquetas.

    Os créditos são de Carlos Moura em 10/08/98 e-mail: crpmoura@ig.com.br

    Código:
    Public Sub SelecionaMult(cmb As Control, sCampo As String, _
    NomeRel As String)
    'Para abrir Formularios ou Relatorios com valores selecionados
    'Autor: Carlos Moura em 10/08/98 e-mail: crpmoura@ig.com.br
    'Num formulario com uma caixa de seleaoo multipla
        
        Dim obj As Object, i As Integer, strVal As String
        Dim strWhere As String
        Set obj = cmb
        For i = 0 To obj.ListCount - 1
            'Stop
            If obj.Selected(i) Then
                'Aqui voce concatena do jeito que quiser
                'Para valor campo string = strVal & "'" & ",'"
                'Para valor campo numerico = strVal & ","
                
                If Len(strVal) Then strVal = strVal & "'" & ",'"
                strVal = strVal & obj.ItemData(i)
            End If
    Next
      
       'Aqui e montada a causa WHERE
       'Para valor campo string    strWhere = sCampo & " In('" & strVal & "')
       'Para valor campo numerico  strWhere = sCampo  & " In(" & strVal & ")
       'MeuCampo e o sCampo de relatorio que sera filtrado
        strWhere = sCampo & " In ('" & strVal & "')"
        
      'Aqui voce abre o relatorio somente com os valores selecionadas
      DoCmd.OpenReport NomeRel, A_PREVIEW, , strWhere
    End Sub

    Public Sub SelecaoMultiplaF(cmb As Control, sCampo As String, _
    NomeForm As String)
    'Para abrir Formularios ou Relatorios com valores selecionados
    'Autor: Carlos Moura em 10/08/98 e-mail: crpmoura@ig.com.br
    'Num formulario com uma caixa de selecao multipla

    Dim varItem As Variant, strList As String, strWhere As String

    With cmb
        For Each varItem In .ItemsSelected
        ' Aqui voce concatena do jeito que quiser
        'Para valor campo string & "'" & ",'"
        'Para valor campo numerico & ","
        strList = strList & .Column(0, varItem) & ","
        Next varItem
    End With
            
        'Para valor campo string ('" & strList & "')
        'Para valor campo numerico (" & strList & ")
        strWhere = sCampo & " In (" & strList & ")"
        DoCmd.OpenForm NomeForm, acNormal, , strWhere
            
    End Sub
    Public Sub SelecaoMultiplaR(cmb As Control, sCampo As String, _
    NomeRel As String)
    'Para abrir Formularios ou Relatorios com valores selecionados
    'Autor: Carlos Moura em 10/08/98 e-mail: crpmoura@ig.com.br
    'Num formulario com uma caixa de selecao multipla

    Dim varItem As Variant, strList As String, strWhere As String

    With cmb
        For Each varItem In .ItemsSelected
        'Aqui voce concatena do jeito que quiser
        'Para valor campo string & "'" & ",'"
        'Para valor campo numerico & ","
        
        strList = strList & .Column(0, varItem) & "'" & ",'"
        Next varItem
    End With
        'Para valor campo string ('" & strList & "')
        'Para valor campo numerico (" & strList & ")
        strWhere = sCampo & " In ('" & strList & "')"
        DoCmd.OpenReport NomeRel, acPreview, , strWhere
    End Sub

    2. A outra solução, segundo minha ótica: na caixa de seleção exibir dois campos, um com um do tipo check box (true/false e a segundo coluna com o tipo de pizza. Caso o pedido for pizza mista teria que marcar o check box (True) para concatenar os campos das duas (três) escolhidas, através de código VBA.

    Att, Delson
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Alexandre Neves 9/5/2020, 11:35

    Bom dia
    Na tabela Produtos Acrescente campo Misto (Sim/Não) com valor pré-definido Não
    Execute o procedimento sempre que precisar actualizar a tabela de mistos
    Código:
    Sub PreencheProdutosMistos()
        '--------------------------------------------------------------'
        '  código criado por Alexandre Neves, do Fórum MaximoAccess  '
        '    utilize o código livremente mas mantenha os créditos    '
        '--------------------------------------------------------------'
        Dim Rst1 As DAO.Recordset, Rst2 As DAO.Recordset, RstMistos As DAO.Recordset
       
        CurrentDb.Execute "DELETE * FROM Produtos WHERE Misto=True"
        Set Rst1 = CurrentDb.OpenRecordset("SELECT * FROM Produtos WHERE Misto=False")
        Set Rst2 = CurrentDb.OpenRecordset("SELECT * FROM Produtos WHERE Misto=False")
        Set RstMistos = CurrentDb.OpenRecordset("SELECT * FROM Produtos WHERE Misto=True")
        Do Until Rst1.EOF
            Rst2.MoveFirst
            Do Until Rst2.EOF
                RstMistos.AddNew
                RstMistos("NomeDoProduto") = Rst1("NomeDoProduto") & Rst2("NomeDoProduto")
                RstMistos("CódigoFornecedor") = Rst1("CódigoFornecedor") & "+" & Rst2("CódigoFornecedor")
                If Rst1("PreçoUnitário") > Rst2("PreçoUnitário") Then
                    RstMistos("PreçoUnitário") = Rst1("PreçoUnitário")
                Else
                    RstMistos("PreçoUnitário") = Rst2("PreçoUnitário")
                End If
                RstMistos("Unidade") = Rst1("Unidade")
                RstMistos("Embalagem") = Rst1("Embalagem")
                RstMistos("CST") = Rst1("CST")
                RstMistos("Misto") = True
                RstMistos.Update
                Rst2.MoveNext
            Loop
            Rst1.MoveNext
        Loop
    End Sub
               


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Ivan Carlo
    Ivan Carlo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 13/06/2015

    Alguma solução para pedidos de pizzas em Delivery Empty Aos Amigos Alexandre Neves e Delson

    Mensagem  Ivan Carlo 11/5/2020, 18:22

    Aos Amigos Alexandre Neves e Delson.
    Boa Tarde.
    Amigos, agradeço desde já o esforço e empenho de cada um para me ajudar a solucionar este impasse.
    Nas possiveis soluções apresentadas pelos senhores,  eu não consigo entender onde deveria e como deveria aplicar as sugestões.
    Não tenho conhecimento técnico avançado no Access e quando deparo com um exemplo assim eu fico sem saber como proceder.
    Não se trata de comodismo meu "querendo a coisa pronta" mas é que realmente eu não sei onde devo aplicar.
    Minhas capacidades (por enquanto) são limitadas na programação com Access e vou expandindo meus conhecimentos na maioria absoluta das vezes aqui, com voces, nesse site, que tem sido muito a minha salvação.
    As vezes pode até parecer ser simples demais os passos, mas pra gente, leigos, vemos como uma fórmula de Pitágoras com aquelas intrincadas funções que dá um nó em nossa mente.
    Eu disponibilizei meu BD na íntegra para ficar mais claro as soluções propostas.
    Peço humildemente, se for possível, que os senhores apliquem estas idéias nesse BD para que eu possa entender melhor onde foram aplicadas, de que forma, e assim poder enriquecer meus conhecimentos e aprendizados com voces.
    Desculpem a minha ignorância no assunto, mas foi exatamente por isso que recorri à voces.
    Só vou poder conhecer melhor os caminhos se eu os ver em funcionamento.
    Se puderem disponibilizar o meu exemplo com essas alterações eu ficarei agradecidissimo.
    Desde já eu agradeço o brilhante e importantissimo suporte aos senhores e podem ter certeza de que, quando eu estiver em um nível elevado como o de voces, eu estarei de prontidão aqui para ajudar aos que precisarem.
    Sucesso sempre a todos.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Alexandre Neves 11/5/2020, 19:50

    Boa noite
    Veja


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Ivan Carlo
    Ivan Carlo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 13/06/2015

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Ivan Carlo 11/5/2020, 23:07

    MARAVILHA!!!!!
    O interessante nessa rotina é que possibilitou-me até a inversão dos códigos. Ou seja: Se buscar "0102" eu tenho a pizza metade 01 e metade 02, e se buscar 0201 (invertido) eu também terei as mesmas metades porém em ordem invertidas e pelo que ví, mantém o preço da mais cara conforme padrão das pizzarias. Não vai ter como errar.
    De acordo com a quantidade de sabores diferentes que eu tenho em cardápio, com as variações criadas pelo código, eu fiquei com 676 produtos na tabela. Mas não há problemas nenhum nisso pois me dá combinação exata em cada pedido que eu produza.
    E pra quem pensar que ao houver aumento em algum produto vai ter o trabalhão em aumentar toda a tabela: Negativo. Basta deletar todas as variações e manter somente os principais e depois de ajustar o preço de tabela, executa o código outra vez e...BINGO...toda a tabela atualizada com todas as variações possiveis.
    Brilhante amigo.
    Muito obrigado.
    Sucesso sempre em tudo.
    O Melhor lugar pra se achar soluções em Access em toda a net é aqui, graças à vcs.
    avatar
    bacano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 136
    Registrado : 08/12/2010

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  bacano 12/5/2020, 22:26

    Boa noite  Alexandre Neves

    era mesmo isso que eu precisava para um programa de restauração, mas fiquei com outro problema

    ao executar o procedimento PreencheProdutosMistos, os produtos ficam com o IDProduto diferente

    na tabela vendas os produtos não aparecem, pq tem o IDProduto diferente, o valor da venda é diferente

    Att, Ventura
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Alexandre Neves 13/5/2020, 09:06

    Bom dia,
    bacano, não entendi bem a sua questão. Disponibilize dados de exemplo e explicação detalhada


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    bacano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 136
    Registrado : 08/12/2010

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  bacano 15/5/2020, 04:20

    Boa noite  Alexandre Neves

    Tenho duas Tabelas Produtos e Pedidos relacionadas pelo campo IDProduto

    Na Tabelas Produtos com o IDProduto vai do 1 a 55, quando executar o procedimento PreencheProdutosMistos(), são apagadas e criados novos linhas de produtos, o mesmo  altera o IDProduto começando no numero 56

    Na Tabela Pedidos os produtos com o IDProduto 44 a 55 nunca mais aparecem no formulário Pedidos.

    Antes do procedimento PreencheProdutosMistos() tinha 10 linhas, depois fico com 2

    Mando um anexo para perceber melhor

    Att, Ventura
    Anexos
    Alguma solução para pedidos de pizzas em Delivery AttachmentRestaurante.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (47 Kb) Baixado 8 vez(es)
    Ivan Carlo
    Ivan Carlo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 13/06/2015

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Ivan Carlo 15/5/2020, 05:14

    Bacano,
    A IDdoproduto é de numeração automática, portanto ao executar o procedimento vai ser deletado todos os produtos que estiverem marcados como misto e manterá os não marcados. Logo depois os produtos não mistos são distribuidos tornando-se cada um com sua combinação e gerando a continuação da numeração automática à partir daquele ponto.
    Tanto é que: Se vc abrir a tabela de produtos e deletar manualmente os produtos mistos e compactar e reparar o BD e depois executar o procedimento por 4 vezes vc vai ter a sua tabela de pedidos com os produtos que tinham sumido. (Isso pra seguir o seu exemplo postado pois nele os produtos mistos estão à partir do numero 44)
    Eu resolvi isso fazendo 2 procedimentos por vez.
    O Primeiro eu uso a linha que manda deletar os produtos mistos. (Somente)
    E então eu Compacto e reparo o BD
    E depois eu executo o restante do procedimento após o BD reparado e eu não perco nenhum dado do Pedido.
    Espero ter ajudado.
    avatar
    bacano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 136
    Registrado : 08/12/2010

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  bacano 15/5/2020, 07:43

    Ola Ivan Carlo

    Sim isso é voce que altera e trabalha com o programa, agora imagine outra pessoa a fazer isso vai dar asneira

    Sem querer apaga um não misto da logo um problema grave

    e se tiver a relação 1 para vários entre as tabelas Produtos e Pedidos, ai nem deixa apagar

    mas já foi muito bom este exemplo
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Alexandre Neves 15/5/2020, 11:54

    Bom dia, bacano

    Resolveu?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    bacano
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 136
    Registrado : 08/12/2010

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  bacano 15/5/2020, 19:41

    Alexandre Neves, Boa tarde

    Não

    estava a espera de alguma noticia tua,   Very Happy

    tenho algumas ideias vou ver e depois digo alguma coisa

    Att, Ventura
    Ivan Carlo
    Ivan Carlo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 41
    Registrado : 13/06/2015

    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Ivan Carlo 15/5/2020, 20:18

    Bem. O meu eu consegui resolver.
    O que fiz:
    Primeiro reservei os 30 primeiros registros cadastrando como: reserva1, reserva2 e assim por diante. comecei os MEUS códigos do produto com 99 então eu tenho: Alguma solução para pedidos de pizzas em Delivery Tela10
    Adicionei um campo fixo=sim/não.
    Assim, se for pizzas eu marco não se vinho, cerveja, marco sim.
    Isso exclui os produtos marcados como fixo do procedimento apresentado pelo amigo Alexandre.
    depois eu criei um form com os 2 botões: Um para deletar os mistos e compactar o BD e outro pra montar a tabela novamente.
    Código do 1º botao:
    Código:
    Private Sub Comando1_Click()
    Call RepararCompactar
    End Sub
    Public Function RepararCompactar()
    On Error Resume Next
    CurrentDb.Execute "DELETE * FROM Produtos WHERE Misto=True And Fixo=False"

    Dim P As String
    P = Access.DBEngine.IniPath
    If P = "Software\Microsoft\Office\16.0\Access\Access Connectivity Engine" Then
        'MsgBox "Office 2016"
        SendKeys "%(Tm)", False
    ElseIf P = "Software\Microsoft\Office\15.0\Access\Access Connectivity Engine" Then
        'MsgBox "Office 2013"
        SendKeys "%(Tm)", False
    ElseIf P = "Software\Microsoft\Office\14.0\Access\Access Connectivity Engine" Then
        'MsgBox "Office 2010"
        SendKeys "%(Tc)", False
    ElseIf P = "Software\Microsoft\Office\12.0\Access\Access Connectivity Engine" Then
        'MsgBox "Office 2007"
        SendKeys "%(AgO)", False
    Else
        MsgBox "Adicione este caminho no código " & P
    End If
    End Function

    Código do 2º botão:

    Código:
    Private Sub Comando2_Click()


    'Sub PreencheProdutosMistos()
        '--------------------------------------------------------------'
        '   código criado por Alexandre Neves, do Fórum MaximoAccess   '
        '     utilize o código livremente mas mantenha os créditos     '
        '--------------------------------------------------------------'
        Dim Rst1 As DAO.Recordset, Rst2 As DAO.Recordset, RstMistos As DAO.Recordset
        
     '   CurrentDb.Execute "DELETE * FROM Produtos WHERE Misto=True And Fixo=False"
        Set Rst1 = CurrentDb.OpenRecordset("SELECT * FROM Produtos WHERE Misto=False And Fixo=False")
        Set Rst2 = CurrentDb.OpenRecordset("SELECT * FROM Produtos WHERE Misto=False And Fixo=False")
        Set RstMistos = CurrentDb.OpenRecordset("SELECT * FROM Produtos WHERE Misto=True And Fixo=False")
        Do Until Rst1.EOF
            Rst2.MoveFirst
            Do Until Rst2.EOF
                If Rst1("NomeDoProduto") <> Rst2("NomeDoProduto") Then
                    RstMistos.AddNew
                    RstMistos("NomeDoProduto") = Rst1("NomeDoProduto") & Rst2("NomeDoProduto")
                    RstMistos("CódigoFornecedor") = Rst1("CódigoFornecedor") & "/*/" & Rst2("CódigoFornecedor")
                    If Rst1("PreçoUnitário") > Rst2("PreçoUnitário") Then
                        RstMistos("PreçoUnitário") = Rst1("PreçoUnitário")
                    
                    Else
                        RstMistos("PreçoUnitário") = Rst2("PreçoUnitário")
                    End If
                    If Rst1("PreçoUnitárioP") > Rst2("PreçoUnitárioP") Then
                        RstMistos("PreçoUnitárioP") = Rst1("PreçoUnitárioP")
                    
                    Else
                        RstMistos("PreçoUnitárioP") = Rst2("PreçoUnitárioP")
                    End If
                    
                    If Rst1("PreçoUnitárioM") > Rst2("PreçoUnitárioM") Then
                        RstMistos("PreçoUnitárioM") = Rst1("PreçoUnitárioM")
                    
                    Else
                        RstMistos("PreçoUnitárioM") = Rst2("PreçoUnitárioM")
                    End If
                    
                    If Rst1("PreçoUnitárioG") > Rst2("PreçoUnitárioG") Then
                        RstMistos("PreçoUnitárioG") = Rst1("PreçoUnitárioG")
                    
                    Else
                        RstMistos("PreçoUnitárioG") = Rst2("PreçoUnitárioG")
                    End If
                    
                    RstMistos("Unidade") = Rst1("Unidade")
                    RstMistos("Embalagem") = Rst1("Embalagem")
                    RstMistos("CST") = Rst1("CST")
                    RstMistos("Misto") = True
                    RstMistos.Update
                End If
                Rst2.MoveNext
            Loop
            Rst1.MoveNext
        Loop
    End Sub

    Mesmo que vc clique várias vezes no 1º botão nada será "bagunçado"
    E quando vc clicar no 2º botão terá a tabela montada e não fará "asneiras"
    Agora eu estou correndo atrás de um código que: ao carregar o form o 2º botão apareça desativado e só ativa ao clicar no 1º botão (isso vai abrir e fechar o BD) ao recarregar o BD o 1º botão tem que aparecer desativado e ativado o 2º botão. Ao clicar no 2º botão este ativa o 1º e desativa o 2º.
    Bem lógico isso né?
    Assim que eu conseguir eu posto.
    se alguém tiver alguma idéia...será bem vinda.
    bom

    Conteúdo patrocinado


    Alguma solução para pedidos de pizzas em Delivery Empty Re: Alguma solução para pedidos de pizzas em Delivery

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 15:16