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]Dificuldade com código de barras no relatório

    avatar
    JefDAssis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 04/06/2018

    [Resolvido]Dificuldade com código de barras no relatório Empty [Resolvido]Dificuldade com código de barras no relatório

    Mensagem  JefDAssis 25/6/2018, 13:00

    Dificuldade com código de barras no relatório

    Bom dia,

    Preciso de ajuda com a seguinte dificuldade com código de barras.

    Na tabela Cleintes, criei os campos CodClientes e CodigoB

    No campo DataCadastro, ao perder foco escrevi:
    Código:
    If Not IsNull(Me.txtCodClientes) = 0 Then
    Me.CodigoB = Format(Nz(DMax("CodClientes", "tbl_Clientes"), 0), "7890000000000") + 1
    Else
    Me.CodigoB = Format(Nz(DMax("CodClientes", "tbl_Clientes"), 0), "7890000000000") + 1
    End If

    Para se for '0', acrescenta + 1. Caso contrário, vai acescentando a 1 a cada registro...

    A função base é:

    Código:
    Private Sub cmdGeraCodBarras_Click()
       Dim CodigoBarras
       
       'fonte: Microsoft - para produtos inteiros aleatórios em um determinado intervalo
       'Int(Maior Número - Manor Número + 1) * Rnd + Menor Número)

       'CodigoBarras = Int((9999999999 - 0 + 1) * Rnd + 0)

            CodigoBarras = Int((9999999999# + 1) * Rnd)

        CodigoB = "789" & CodigoBarras
       
    End Sub

    Só que acontece que quando cadastro um novo registro é acrescentado + 1...

    E se precisar alterar algum campo do cadastro, acrescenta de novo, alterando o registro anterior para o próximo...

    Já quebrei cabeça com esse pro, alguém pode me ajudar ou tem um exemplo para usar...

    Preciso que no código inicial, começe do 7890000000001 13 digitos...

    A fonte que estou usando é "3OF9_NEW.TTF"

    Agradecido desde já....
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Dificuldade com código de barras no relatório Empty Re: [Resolvido]Dificuldade com código de barras no relatório

    Mensagem  Alvaro Teixeira 26/6/2018, 08:39

    Olá Jefferson,

    Tente com a seguinte instrução para efetuar apenas quando for novo:
    Código:
    If Me.NewRecord Then ...

    Abraço
    avatar
    JefDAssis
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 14
    Registrado : 04/06/2018

    [Resolvido]Dificuldade com código de barras no relatório Empty Dificuldade com código de barras no relatório

    Mensagem  JefDAssis 26/6/2018, 12:23

    Bom dia Teixeira,

    Deu certo... Código funcionando

    No Ao perder o foco do campo DtCadastro:

    No campo DataCadastro, ao perder foco escrevi:
    Código:
    If Me.NewRecord Then
    Me.CodigoB = Format(Nz(DMax("CodClientes", "tbl_Clientes"), 0), "7890000000000") + 1
    End If
    Fiz teste com simulação de cadastros, cadastrei e fiz alterações. Permaneceram os códigos com os acréscimos, sem ler como novo registro...

    Obrigado.

    Deus te abençoe grandemente.

    Para quem precisar segue a dica:
    No meu caso, precisei criar um cartão fidelidade para clientes da Assistência Técnica.

    No cadastro de clientes criei os campos específicos para gerar os "Números do Código de Barras", "CodigoB", e o campo "CodBarras" para pegar a fonte "3OF9_NEW.TTF"

    Ficando assim no formulário:
    No campo CodBarras, a fonte de controle é "CodBarras" e o tipo da fonte "3OF9_NEW.TTF";
    No campo "CodigoB", a fonte de controle é "CodBarras" com fonte, deixei Calibri Light com tamanho 8.

    No ao perder o foco do campo DtCadastro, digitei os comandos:
    Código:
    If Me.NewRecord Then
    Me.CodigoB = Format(Nz(DMax("CodClientes", "tbl_Clientes"), 0), "7890000000000") + 1 'No campo CodigoB, é comparado ao Código do Cliente, com acréscimo de + 1. Caso contrário permanece o código gerado de 13 dígitos.
    End If

    Veja o efeito e se ao salvar aparece nos campos da tabela de cadastro de Clientes....

    No Relatório "Cartão Fidelidade", inclui a imagem do "Cartão Fidelidade" com os seguintes campos:

    1) Nome do Cliente (vinculada a tabela de Cadastro de Clientes)
    Obs: Baixe a fonte "3OF9_NEW.TTF" e instale no micro.

    2) CPF (vinculada a tabela de Cadastro de Clientes)
    3) Foto (vinculada a tabela de Cadastro de Clientes)
    4) Data emissão (Desvinculado e com a fórmula: =Agora()
    5) Validade (Desvinculado e com a fórmula: =SomData("d";365;[txtEmissão]) "Validade de um ano. Para dois anos, altere 365 para 728(dias do ano).
    6) Nos campos: CodigoB e CodBarras fiz o mesmo processo do formulário:

    No campo CodBarras, a fonte de controle é "CodBarras" e o tipo da fonte "3OF9_NEW.TTF";
    No campo "CodigoB", a fonte de controle é "CodBarras" com fonte, deixei Calibri Light com tamanho 8.

    Para imprimir só o registro Atual, ao clicar no botão imprimir no Form fiz o seguinte:

    Criei dois campos datas "txtd1" e "txtd2". Criei também um "quadro" com "chekbox" e um botão "cmdCartão". No botão coloquei o seguinte comando:
    Código:

    Private Sub cmdCartão_Click()
    On Error GoTo Err_cmdCartão_Click

       Dim stDocName As String
       Dim StrCliente As String
       
    Select Case Moldura3 'Criar Retângulo com as ChckBox dentro
       Case 1 'Referente a CheckBox
             If IsNull(Me.txtd1) Or IsNull(Me.txtd2) Then
             MsgBox "É preciso determinar o período do Cartão Fidelidade!", vbOKOnly, "Atenção!"
             Else
             Me.Visible = True
             'Abre o relatório, filtrado pelo número exclusivo do cliente
                       
             ' Call our convert function
             ' Please note the last param signals whether to perform
             ' font embedding or not. I have turned font embedding ON for this example.
             StrCliente = DLookup("NomeCliente", "tbl_Clientes", "CodClientes")
             Dim strCaminho$
             strCaminho = "C:\MelkFinanc\Relatórios\Cartão Fidelidade_ " & StrCliente & " " & Format(Now(), "dd-mmmm-yyyy")
             DoCmd.OutputTo acOutputReport, "Rel_CartãoFidel", acFormatPDF, strCaminho & ".pdf", True
             DoCmd.Maximize
             End If
       
    End Select

    Exit_cmdCartão_Click:
       Exit Sub

    Err_cmdCartão_Click:
       MsgBox Err.Description
       Resume Exit_cmdCartão_Click

    End Sub

    De forma que  gera pelo registro atual e em PDF para armazenar na Pasta "Relatórios" do Sistema...

    Fica aí a dica e que tudo tá sendo feito com esforço e ajuda dos companheiros do www.maximoaccess.com

    Deus abençoe a todos e muito obrigado.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Dificuldade com código de barras no relatório Empty Re: [Resolvido]Dificuldade com código de barras no relatório

    Mensagem  Alvaro Teixeira 26/6/2018, 12:33

    Olá Jefferson D'Assis, fico feliz por ter ajudado!

    Obrigado pelo retorno o fórum agradece.

    Abraço

    Conteúdo patrocinado


    [Resolvido]Dificuldade com código de barras no relatório Empty Re: [Resolvido]Dificuldade com código de barras no relatório

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 21:32