MaximoAccess

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

Obrigado

Administração do MaximoAccess

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 ficha de cadastro em impressora nao padrao

    avatar
    tatiana.sch
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 93
    Registrado : 20/08/2011

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  tatiana.sch em 12/3/2012, 18:16

    Oi pessoal,

    Estou com uma dificuldade que é a seguinte:
    -Tenho um sistema que preencho uma ficha de cadastro e solicito para imprimir após a ficha preenchida no cadastro, ate ai tudo bem.

    Agora instalamos uma impressora wireless numa outra sala, e queriamos que ao acabar o cadastro ele imprima nesta impressora.

    Problema: Esta impressora wireless nao é a padrão e não posso mudar ela para padrão. Tem como no Access eu colocar embutido no botao esta impressora como padrao ?

    Obrigada,



    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3164
    Registrado : 21/04/2011

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Marcelo David em 12/3/2012, 18:24

    Sim, tem como, veja no exemplo do JPaulo que está no repositório:


    http://maximoaccess.forumeiros.com/t953-altera-impressora-padrao?highlight=impressora+padr%C3%A3o



    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)
    avatar
    tatiana.sch
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 93
    Registrado : 20/08/2011

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  tatiana.sch em 13/3/2012, 01:36

    Ola,

    Este exemplo nao funcionou eu fazendo adaptacoes (nem original)

    Minha ideia é que ao clicar imprimisse numa impressora que nao fosse a padrao, mas que eu nao precisasse toda hora ficar escolhendo a impressora, entende? ou seja, no bota ao clicar ja teria a impressora que quero..

    brigadinha
    Marcelo David
    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3164
    Registrado : 21/04/2011

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Marcelo David em 13/3/2012, 01:59

    Olá, no tópico inicial você escreveu:
    "...Tem como no Access eu colocar embutido no botao esta impressora como padrao ?"

    O exemplo que eu te passei faz isso, ele seleciona qualquer impressora como padrão, acabei de testá-lo e está funcionando perfeitamente.

    Agora se não é com a finalidade descrita em vermelho (copiado de seu post), daí veremos outra situação, e pedimos que explique melhor o pretendido.

    Grato




    .................................................................................
    Marcelo David
    www.mrdsystem.com.br (em construção)
    avatar
    Convidad
    Convidado

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Convidad em 13/3/2012, 03:00

    Tatiana
    Você escreveu:
    Problema: Esta impressora wireless nao é a padrão e não posso mudar ela para padrão. Tem como no Access eu colocar embutido no botao esta impressora como padrao ?


    Como você quer definir uma impressora como padrão se você mesmo diz que no pode fazê-lo?

    Não testei o exemplo partilhado, mas tenho 2 exemplos parecido com ele:
    O primeiro que creio que é o caso do exemplo do JPaulo, você deve escolher a impressora que quer imprimir, diferente da impressora padrão, mas não a torna a impressora padrão.
    O outro exemplo que tenho é manuseado o arquivo .ini, este sim define a impressora escolhida como a padrão.
    Mas como você mesmo disse, não serve para o teu caso uma vez que você não pode mudar.

    Abraços
    avatar
    tatiana.sch
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 93
    Registrado : 20/08/2011

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  tatiana.sch em 13/3/2012, 12:17

    Tudo bem pessoal, vou ser mais objetiva agora.

    Tenho uma ficha de cadastro, no final quando acabo este cadastro, tem um botao de imprimir
    Quando eu clico neste botão, gostaria que já fosse para a impressora direto! No entanto, neste computador existem duas impressoras, uma padrao e outra não.Este botão vai enviar a ficha cadastrada direto para a impressora não padrao(nao quero ter que entrar no sistema e ter que ficar escolhendo a impressora ou mudando) No exemplo passado do JPaulo, quando cliquei, ele tirou a impressora padrao do sistema e adotou outra..e nao é isso que preciso, entende?

    Quero que dispare direto a ficha para a impressora "não padrao", e nao que mude automaticamente o padrão delas..

    Não sei se fui clara, ous e compliquei ainda mais..rss
    avatar
    Convidad
    Convidado

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Convidad em 13/3/2012, 12:48

    Tatiana

    Se olhar direitinho o exemplo do JPaulo verá que no módulo basDefineImpressoraViaCódigo

    tem o código que faz exatamente o que você deseja.

    Esse código acredito que funcionará para windows inferior ao windows 7 e talvez inferior ao windows vista.
    Eu uso o Win 7 ultimate e ele não funciona para mim.
    Estou pesquisando para solucionar isso.
    Abraços
    avatar
    tatiana.sch
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 93
    Registrado : 20/08/2011

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  tatiana.sch em 14/3/2012, 00:05

    Grata pela ajuda

    Vou fazer outras pesquisas e tentar adaptar o codigo, caso eu consiga resolver eu posto aqui,

    brigadinha
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3578
    Registrado : 04/04/2010

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Avelino Sampaio em 14/3/2012, 06:47

    OLá

    Não vi o exemplo do João mas vc pode estudar sobre a coleção PRINTER que tem a opção de trocar de impressora.

    Veja um exemplo de código, optando por outra impressora:

    Código:
    Private Sub btImprimir_Click()
    Dim j As Byte, st As Boolean, Padrão As String
    Dim idx As Byte, prt As Printer
    j = 0: st = False
    Padrão = Application.Printer.DeviceName
    For Each prt In Application.Printers
    If prt.DeviceName = Padrão Then idx = j
    If prt.DeviceName = "Epson LX-300" Then 'Aqui você escreve a impressora desejada
    st = True
    Exit For
    End If
    j = j + 1
    Next
    If st = False Then j = idx 'Se a impressora Lx300 não for encontrada, imprime na impressora atual
    DoCmd.OpenReport "rlt1", acViewPreview, WindowMode:=acHidden 'Abre o relatório de forma oculta
    Set Reports("rlt1").Printer = Application.Printers(j) 'set a impressora para o relatório
    DoCmd.OpenReport "rlt1", acViewNormal 'Imprime o relatório
    End Sub

    Sucesso!


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    avatar
    Convidad
    Convidado

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Convidad em 14/3/2012, 20:16

    Tatiana

    Consegui fazer o código para alterar a impressora via registro do windows.
    Deixei o exemplo junto com o exemplo do JPaulo.

    De uma olha aqui .

    Abraços
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3578
    Registrado : 04/04/2010

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Avelino Sampaio em 14/3/2012, 20:46

    Mas Balem, ela não quer mudar a impressora padrão no windows. Ela só quer que o relatório seja impresso em uma impressora especifica que não a padrão. A coleção PRINTER (disponivel desda versão Xp do Access) ao meu ver é a mais indicada para o caso pois não foge de recursos do próprio Access. Veja que no código que apresentei, o relatório é direcionado a ser impresso na impressora específica.

    Set Reports("rlt1").Printer = Application.Printers(j) 'set a impressora para o relatório

    Outra aspecto, que deixo aqui para os meus amigos, é ter um cuidado redobrado na indicação de exemplos com APIs. É que as APIs agora devem ser tratadas de modo que fiquem compatíveis com o Access 2010 (de 32 e 64 bits). Vcs podem estudar todos os detalhes sobre esta assunto no meu artigo abaixo:

    http://www.usandoaccess.com.br/tutoriais/tuto28.asp?id=1#inicio

    Balem, acho então que poderia compatibilizar o exemplo com o novo formato de API, usando a condicional #IF.

    Bom estudo!


    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    avatar
    Convidad
    Convidado

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Convidad em 14/3/2012, 21:36

    Avelino

    Já rodei por essa net a procura de pedaços de códigos sobre a coleção printers.

    Testei todos, inclusive o teu exemplo, mas não funciona, veja isso tanto no registro do windows como na janela dispositivos e impressoras.
    O(s) código(s) rodam sem erros, mas alterar, nada.
    Eu creio que o windows só aceita imprimir na impressora padrão do momento.
    Pensando nisso, eu fiz uma função para mudar a impressora colocando o nome dela na função e uma vez impresso o report, usa-se a função novamente para voltar a antiga impressora padrão.
    Não estou usando nenhuma API do windows.
    O código modifica diretamente o registro do windows.
    Se não baixou, baixe e verifique.

    Abraços
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3578
    Registrado : 04/04/2010

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Avelino Sampaio em 14/3/2012, 22:22

    Olá Balem

    Já rodei por essa net a procura de pedaços de códigos sobre a coleção printers.

    A coleção vc encontra completinha no proprio VBA. Pesquise pelo "pesquisador de objetos"

    Testei todos, inclusive o teu exemplo, mas não funciona, veja isso tanto no registro do windows como na janela dispositivos e impressoras.
    O(s) código(s) rodam sem erros, mas alterar, nada.

    A ideia do código que apresentei é se NÃO ACHAR a impressora específica , usar então a padrão. O que deve estar acontecendo com vc é de não estar achando a impressora especificada.

    Eu creio que o windows só aceita imprimir na impressora padrão do momento.

    Não é verdade

    Pensando nisso, eu fiz uma função para mudar a impressora colocando o nome dela na função e uma vez impresso o report, usa-se a função novamente para voltar a antiga impressora padrão.
    Não estou usando nenhuma API do windows.

    Abri o código do exemplo e achei esta API


    Private Declare Function GetProfileString Lib "kernel32" _
    Alias "GetProfileStringA" _
    (ByVal lpAppName As String, _
    ByVal lpKeyName As String, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long) As Long


    O código modifica diretamente o registro do windows.
    Se não baixou, baixe e verifique.







    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    avatar
    Convidad
    Convidado

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Convidad em 14/3/2012, 22:38

    É verdade Avelino

    Falei besteira.

    E esqueci dessa API. Embarassed

    Depois que postei, pensei melhor e creio que teu código não tenha funcionado, por não ter uma outra impressora conectada ao meu pc.
    Em todo caso, deixei aquele exemplo para quem precisar mudar a impressora padrão, com ressalvas.

    Abraços
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3578
    Registrado : 04/04/2010

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Avelino Sampaio em 15/3/2012, 06:54

    Balem, minha sugestão então é que altere o projeto para que fique compatível com as novas versões:

    A unica alteração nesta API do exemplo fica por conta do acrescimo do atributo PtrSafe

    Código:

    #If VBA7 Then
      Declare PtrSafe Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
    #Else
      Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
    #End If

    Sucesso!




    .................................................................................
    Quer aprender a montar ribbons ?  
    Clique AQUI e conheça o meu aplicativo.
    avatar
    Convidad
    Convidado

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Convidad em 15/3/2012, 11:02

    Valeu pela dica, Avelino

    Já tinha lido sobre as API's no Access 2010.
    E no teu exemplo Célula, também tem esse código.
    Olha, ainda bem que o Access não reclama por erro quando está em uma versão e tem
    código de outra,né?
    Caso contrário estaríamos "fritos". Laughing Laughing

    Certo, vou fazer esse tratamento e reanexar o exemplo.

    Abraços



    avatar
    Convidad
    Convidado

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Convidad em 27/3/2012, 04:28


    ... Sem retorno do usuário ...
    avatar
    Convidad
    Convidado

    [Resolvido]Imprimir ficha de cadastro em impressora nao padrao Empty Re: [Resolvido]Imprimir ficha de cadastro em impressora nao padrao

    Mensagem  Convidad em 12/4/2012, 03:05


    Considerado como resolvido.

      Data/hora atual: 22/9/2020, 02:43