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


    [Resolvido]Imprimir Etiquetas com filtro

    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Imprimir Etiquetas com filtro

    Mensagem  casilveira 15/2/2012, 15:36

    Prezados Amigos

    Tenho me valido deste forum inumeras vezes desde que entrei, ele se tornou uma valiosa colaboração ao meu trabalho.

    Do Vieira, eu acho, baixei uma pquena rotina que deixa vago os espaços de etiquetas já usadas aproveitando o resto da folha, achei ótimo mas não consigo fazer que um filtro no formulario funcione corretamente.

    Tenho um formulário de Clientes, nele tenho de um a vários contatos da empresa em uma janela dentro do formulario Clientes.
    A rotina da etiqueta funcionou para emitir todos os contatos do cliente mas não para cada cliente individualmente.

    Preciso de algo eficiente para realizar esse filtro.

    Grato

    Carlos Silveira
    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 17/2/2012, 11:26

    Olá

    Se o teu formulário estiver aberto no cliente em questão para imprimir o relatório, basta abrir o formulário e em seguida referenciar o cliente do formulário.

    Exemplo:

    docmd.OpenReport....
    Reports!NomeRelatório!idCliente = Me.idCliente

    Cappici?

    Abraços
    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Imprimir Etiquetas com filtro

    Mensagem  casilveira 17/2/2012, 11:53

    No meu Formulario criei um botão de comando Visualizar assim:
    Private Sub Comando27_Click()
    On Error GoTo Err_Comando27_Click

    Dim stDocName As String

    stDocName = "rClienteEtiq"
    DoCmd.OpenReport stDocName, acPreview
    Reports!rClienteEtiq!IDFone = Me.IDFone


    Exit_Comando27_Click:
    Exit Sub

    Err_Comando27_Click:
    MsgBox Err.Description
    Resume Exit_Comando27_Click

    End Sub

    Aonde o rClienteEtiq é o relatório (etiquetas)
    e a referencia é o IDFone, comum aos dois.

    isso está ligado a um economizador de etiquetas

    Até aí funciona tudo bem, mas na hora de abrir o relatório me abre uma caixa que diz:

    Voce não pode atribuir um valor a este objeto!

    e mostra todas as etiquetas do BD.


    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 17/2/2012, 12:05

    Casil

    Sabe usar o depurador de código?

    Se não sabe, abra o módulo classe do formulário.

    Vá até:
    Private Sub Comando27_Click()

    Mantenha o cursor nele e clique F9 ou clique na parte cinza antes do inicio da linha.
    A linha ficará selecionada em marron meio vermelhado.
    Assim, você marcou um ponto de interrupção.
    Quando clicar no botão para abrir o relatório, o código vai parar exatamente ali.
    Então use a tecla F8, a cada clique nessa tecla, o access executa uma linha. isso é depuração.
    Vá clicando lentamente e veja em que linha da o erro.

    Fico no aguardo
    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Imprimir Etiquetas com filtro

    Mensagem  casilveira 17/2/2012, 12:28

    Balem amigo

    Todos os dias decubro que não sei nada sobre isso!

    Executei o procedimento indicado e segui com o F8 até um ponto no módulo que entra em loop que é o abaixo.
    Function LabelLayout(R As Report)
    If BlankCount% < LabelBlanks% Then
    R.NextRecord = False
    R.PrintSection = False
    BlankCount% = BlankCount% + 1
    Else
    If CopyCount% < (LabelCopies% - 1) Then
    R.NextRecord = False
    CopyCount% = CopyCount% + 1
    Else
    CopyCount% = 0
    End If
    End If
    End Function

    Mesmo depois de muitos F8, da linha End Function ele volta para a linha Function LabelLayout(R As Report)
    ele deve varrer todos os registros, eu imagino, finalmente ele sai do modulo e volta ao relatório e o erro aparece
    aqui:

    Err_Comando27_Click:
    MsgBox Err.Description
    Resume Exit_Comando27_Click

    Anexei a rotina que estou usando para que vc de uma olhada
    Anexos
    [Resolvido]Imprimir Etiquetas com filtro AttachmentEtiquetas.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (36 Kb) Baixado 35 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 17/2/2012, 13:43

    casil

    No BD que me enviou não tem formulário.

    Observei que não fez o devido relacionamento entre as tabelas clientes e cidades.

    Vá no menu Ferramentas de banco de dados e clique em relações.

    Na janela que se abre coloque as duas tabelas, mas ANTES, abra a tabela clientes e coloque a cidade ou apague esses registros que contém 0, caso contrário não conseguirá fazer os relacionamento devido a violação de estrutura.
    Uma vez feito isso, na janela de relacionamento, Clique em CodCidade na tabela cidade e arraste até Cidadecliente na tabela clientes, na janela que se abre clique em impor integridade referencial e depois no botão criar. Assim a relação seria de 1 na tabela cidades para muitos(Simbolo infinito) na tabela clientes.

    Depois volte a anexar o BD com o formulário junto.

    Abraços
    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Imprimir Etiquetas com filtro

    Mensagem  casilveira 17/2/2012, 16:30

    Balem

    O que eu te mandei não é o meu aplicativo, é tão somente o recurso que estou usando para emitir etiquetas.

    1 - em meu aplicativo, os relacionamentos entre as tabelas envolvidas estão ok.
    2 - não há conflitos nos relacionamentos e está mantida a integridade de todos os registros.
    3 - na consulta eu uso "è negado Nulo" para não haver registros nulos em contato, endereço, cidade, estado, pais e CEP.

    Estou mandando a voce a parte com conflito de meu próprio aplicativo, desculpe-me por não haver feito isso antes, poupariamos trabalh.

    Novamente grato por sua presteza.

    Carlos Silveira
    Anexos
    [Resolvido]Imprimir Etiquetas com filtro Attachmentrm_system_v2.0.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (515 Kb) Baixado 49 vez(es)
    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 17/2/2012, 19:12

    Casil

    Analizando teu DB, cheguei a seguinte conclusão:

    Esta parte do código é que dá o erro;

    DoCmd.OpenReport stDocName, acPreview
    Reports!rClienteEtiq!IDFone = Me.IDFone <---- Nesta linha

    Se tirar ela, verá que não da erro algum.

    Essa linha não funciona porque é um formulário continuo, portanto, tem mais de um IDFone.
    Mesmo clicando ou selecionando a linha, verá que ao clicar no botão para visualizar o relatório (clique no botão com o direito do mouse), a seleção se perde (O retângulo que estava negro, voltou ao normal)e mesmo que continuasse selecionado, o que fica selecionado é somente o retângulo e não o registro.

    A solução mais fácil que encontrei é:
    Manter esse formulário continuo para quando precisar imprimir etiquetas para todos os registros.
    Criar um novo formulário para exibição de cada cliente, assim poderá imprimir a etiqueta
    somente para o registro exibido nesse formulário.

    Dica: Caso queira, você pode colocar em todos os campos desse formulário contínuo uma função que abra o formulário que você criou para exibir o registro quando der um duplo clique num desses campos(caixas de texto).
    Bom por enquanto é isso, vou aguardar você assimilar o que escrevi.
    Aguardo retorno
    Abraços



    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Imprimir Etiquetas com filtro

    Mensagem  casilveira 22/2/2012, 17:21

    Prezado Balem

    Espero que o Carnavel tenha sido bom.
    Voltando as Cinzas...

    Baseado naquilo que voce indicou refiz o procedimento em Formulário simples e o resultado foi o mesmo, ele não filtrou pelo registro selecionado.

    Não sei o que acontece, já fiz dezenas de testes para achar o furo da bala e nada. Sad

    Caso voce tenha alguma sugestão sobre outra rotina para economizar etiquetas me avise.

    Grato
    Carlos Silveira
    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 22/2/2012, 18:05


    O ideal para imprimir etiquetas é ter uma listbox que retorne os clientes, com a propriedade Seleções Múltiplas setada como Estendida.
    Um botão pode disparar o código que abre o relatório:

    Private Sub OK_Click()
    On Error GoTo Trato
    If Not Me.NomeListBox.ItemsSelected.Count > 0 Then
    Me.NomeListBox.SetFocus
    MsgBox "Selecione um ou mais nomes."
    Else
    DoCmd.OpenReport "rClienteEtiq", acViewPreview, "", "[IDCliente] In (" & ObterSelecionados(NomeListBox, True) & ")"
    End If
    Exit Sub
    Trato: MsgBox Err.Description
    End Sub

    A função que obtem os nomes selecionados deve ficar num módulo global:

    Public Function ObterSelecionados(CxList As Control, Numerico As Boolean) As String
    Dim varIndex As Variant
    Dim strSel As String
    Dim intlen As Integer
    If CxList.ItemsSelected.Count > 0 Then
    For Each varIndex In CxList.ItemsSelected
    If Numerico = True Then
    strSel = strSel & CxList.ItemData(varIndex) & ","
    Else
    strSel = strSel & "'" & CxList.ItemData(varIndex) & "',"
    End If
    Next varIndex
    intlen = Len(strSel)
    ObterSelecionados = Left(strSel, intlen - 1)
    Else
    ObterSelecionados = ""
    End If
    End Function

    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Imprimir Etiquetas com filtro

    Mensagem  casilveira 22/2/2012, 20:12

    Norbs

    Acho que o caminho que voce me enviou é o melhor, abrir uma Listbox.

    Agora pense assim e me ajude, tenho um formulario com clientes pessoa juridica, dentro dele tenho um formulario filtrado com pessoas, telefones, Cargos e departamentos.

    Quero filtrar os dados da listbox com estes elementos e daí selecionar quais eu vou mandar correspondência, entende?

    Meus conhecimentos em VB são limitados, e meus 60 anos me deixaram mais imperneavel ao conhecimento novo.

    Estou tentando, mas preciso de ajuda.


    Grato.

    Carlos Silveira
    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 22/2/2012, 20:38


    Caro Carlos,

    a idéia da ListBox funciona bem pela facilidade de se exibir e selecionar itens.
    O código que postei faz isso: verifica os itens selecionados na lista e os coloca como critério no campo ID da consulta-base do relatório de etiquetas.

    Para obter os ID's dos clientes exibidos num subformulário filtrado, o código para passar o critério para a consulta seria diferente.

    O seu filtro poderia ser uma ListBox inserida no form principal, ao invés de um subformulário?
    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  casilveira 23/2/2012, 12:37

    Norbs

    Foi como achar agua no deserto....

    Só mais uma coisa, como faço para selecionar mais de um nome no ListBox?

    Carlos
    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 23/2/2012, 12:55


    Para selecionar um intervalo de nomes, clique no primeiro nome, mantenha Shift pressionada e clique no último.

    Para selecionar nomes aleatórios, mantenha Ctrl pressionada e clique nos nomes que deseja incluir.
    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Imprimir Etiquetas com filtro

    Mensagem  casilveira 23/2/2012, 13:58

    Norbs

    Tentei esta seleção com shift ou control, não funciona, acho que falta alguma definição.

    Carlos Silveira
    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 23/2/2012, 14:05


    Olá!

    Verifique se a propriedade Seleções Múltiplas da ListBox está setada como Estendida.



    casilveira
    casilveira
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 145
    Registrado : 10/02/2012

    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  casilveira 23/2/2012, 14:29

    Norbs

    Como se diz por aqui, "morta a cobra!"

    Agradeço imensamente aos amigos deste forum pela ajuda e, dentro do meu parco conhecimento estou atento as questões que eventualmente puder ajudar.


    Carlos Silveira
    Porto Alegre - RS
    avatar
    Convidad
    Convidado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Convidad 23/2/2012, 14:45


    Então tá, tchê!

    Agradecemos o retorno.




    Conteúdo patrocinado


    [Resolvido]Imprimir Etiquetas com filtro Empty Re: [Resolvido]Imprimir Etiquetas com filtro

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 07:34