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

    Preciso escrever o VBA para que a num relatório uma etiqueta seja impressa tantas vezes como ela esta encomendada.

    avatar
    at0815
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 1
    Registrado : 28/04/2023

    Preciso escrever o VBA para que a num relatório uma etiqueta seja impressa tantas vezes como ela esta encomendada. Empty Preciso escrever o VBA para que a num relatório uma etiqueta seja impressa tantas vezes como ela esta encomendada.

    Mensagem  at0815 28/4/2023, 11:46

    Tenho uma base de dados MSAccess em princípio um ERP. Registo encomendas dos clientes através dum formulário com a informação dos produtos em encomenda sendo registado numa tabela que se chama “ProdutosEmEncomendaT” Visto que tenho que fazer cálculos para x vezes preço y etc. fiz estes cálculos em uma consulta chamada ““ProdutosEmEncomendaQ”. Ora, o formulário está vinculado par a consulta mencionada para mostrar o cálculo.
    Deste formulário imprimo as confirmações das encomendas para os clientes com um relatório chamado “EncomendaR” Até aqui tudo bem.
    Agora preciso para cada producto encomendada tantas etiquetas quantas vezes o producto for encomendado, pois se um cliente quer 5 vezes o produto “A” a etiqueta de “A” tem de sair 5 vezes para que eu tenho a etiqueta para as 5 embalagens.
    A informação da quantidade está no formulário, na Tabela e na Consulta. O relatório (a impressão é através de folhas A4 com 28 etiquetas cada) é configurado e funcionaria.
    Não consigo escrever o VBA para que a impressão de relatório seria feita com a repetição necessária.
    Uso o Access365 em Windows11.
    Obrigado pela ajuda e pela pasciencia Very Happy
    avatar
    Canastra
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 04/10/2018

    Preciso escrever o VBA para que a num relatório uma etiqueta seja impressa tantas vezes como ela esta encomendada. Empty Re: Preciso escrever o VBA para que a num relatório uma etiqueta seja impressa tantas vezes como ela esta encomendada.

    Mensagem  Canastra 9/5/2023, 04:17

    Para imprimir as etiquetas com base na quantidade de produtos de cada pedido, você pode criar um relatório com sub-relatórios. Um sub-relatório será responsável por imprimir uma etiqueta para cada produto do pedido.

    Para isso, você deve vincular o sub-relatório à consulta "ProdutosEmEncomendaQ" e definindo o grupo pelo número do pedido. Depois, você adiciona um controle de sub-relatório no relatório principal e define a fonte de registro para a tabela "ProdutosEmEncomendaT". Isso garantirá que o sub-relatório imprima as etiquetas para cada produto no pedido.

    Após, adicione um controle de caixa de texto no sub-relatório mostrando a quantidade de etiquetas necessárias por produto. Use a expressão "=[Quantidade]" para obter a quantidade de cada produto no pedido.

    Finalizando, configure o relatório mestre para imprimir diversas cópias de cada etiqueta, com base na quantidade de produtos por pedido. Use a propriedade "Copiar" do controle de rótulo no sub-relatório para isso. Defina a propriedade "Cópias" para a expressão "=[Quantidade]" para imprimir divesras cópias de cada etiqueta.

    Segue VBA:

    Código:

    Private Sub btnImprimir_Click()

        Dim Filtro As String
        Dim NomeEtiqueta As String
       
        Filtro = "NumEncomenda = " & Me.NumEncomenda
        NomeEtiqueta = "EncomendaR"
       
        ' Define o número de cópias da etiquetaa com base na quantidade de cada produto em uma encomenda
        Me!subRelatorioEtiquetas.Report.LabelEtiqueta.Copies = Me.Quantidade
       
        ' Abre o relatório com os sub-relatórios vinculados à consulta
        DoCmd.OpenReport NomeEtiqueta, acViewPreview, , Filtro
       
    End Sub


    Verifique os nomes dos controles.

      Data/hora atual: 27/4/2024, 06:10