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]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    avatar
    HAPedroso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 09/12/2014

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  HAPedroso 22/3/2016, 11:28

    Bom dia,

    Estou tentando desenvolver um sistema simples com impressão de recibos não fiscais na impressora Bematech MP-4200 TH que adquiri, estou utilizando VBA no Access e, não tenho sucesso em realizar a impressão, necessito de orientação, a impressora estabelece comunicação via USB e está instalada na COM4 do meu notebook, segue o código de referência para que seja possível me auxiliarem:

    Private Sub bt_rel1_Click()

    Dim nPed, DtVenda, Fpag
    'Variável para o número da venda
    nPed = Me.ContaId
    'Variável para a data da venda
    DtVenda = Format(Date, "dd/mm/yyyy")
    'Variável para o tipo de pagamento
    'Fpag = StrTipoPgto

    'cupon para impressora termica de 40 colunas
    Open "COM4:" For Output Access Write As #1
    'Open CurrentProject.Path & "\cup1.txt" For Output Access Write As #1

    Print #1, Tab(0); "TESTE DE EMPRESA - testando"
    Print #1, Tab(0); "Tel: " & "etel";
    Print #1, Tab(0); "Site: " & "esite";

    Print #1, Tab(0); String(40, "-");
    Print #1, Tab(10); "Codigo do Pedido : " & nPed;
    Print #1, Tab(0); String(40, "-");
    Print #1, Tab(0); "Data :" & DtVenda; " " & " ";
    'Print #1, Tab(0); "Forma Pagamento: " & Fpag
    Print #1, Tab(0); String(40, "-");


    'cabeça do cupon do items
    Print #1, Tab(0); "Descrição "; "(Código)";
    Print #1, Tab(0); "Und "; " Pco.Unit."; " Qtd./Peso "; " Vlr.Total "
    Print #1, Tab(0); String(40, "-");


    'selecionar items do cupon
    Dim StrSQL As String
    Dim Rs As DAO.Recordset
    Dim Db As DAO.Database

    'Instrução SQL para uso no recordset
    StrSQL = "SELECT ID_saida,ID_Produto, NomeDoProduto,cpQtde," _
    & "cpPreco FROM tblSaidas, tblSaidasDetalhes WHERE ID_Saida = " & Me.ID_Saida & ";"

    'Seta o Db
    Set Db = CurrentDb
    'Seta o Recordset com a SQL
    Set Rs = CurrentDb.OpenRecordset(StrSQL)

    Do While Not Rs.EOF
    'Imprime os campos: Sigla, Descrição e Código de Barras
    Print #1, Tab(0); Left(Rs!Descrição, 24); " "; "(" & Format(Rs!Codproduto, "0000000000000"); ")" '@ alinha à direita
    'Imprime os dados: Sigla, Preço Unitário, Quantidade e SubTotal
    Print #1, Tab(0); " "; Format$(Format$(Rs!ValorUnit, "#,##0.00"), "@@@@@@@@"); _
    "        "; Format(Rs!quant, "000"); " "; Format$(Format$(Rs!quant, "###000") * (Format$(Rs!ValorUnit, "#,##0.00")), "@@@@@@@@")
    Print #1, Tab(0); ""
    Rs.MoveNext
    Loop
    'Fecha o recorset
    Rs.Close
    'valor total do cupon
    'Print #1, Tab(0); String(40, "-");
    'Print #1, Tab(16); "Qtd. Itens     : "; Format(Format(Me.txtQtdeItens.Caption, "000"), "@@@@@@@@")
    'Print #1, Tab(16); "Total Cumpom R$: "; Format$(Format$(Me.txtTotal, "#,##0.00"), "@@@@@@@@")
    'Print #1, Tab(16); "Dinheiro     R$: "; Format$(Format$(Me.Dinheiro, "#,##0.00"), "@@@@@@@@")
    'Print #1, Tab(16); "Troco        R$: "; Format$(Format$(Me.Troco, "#,##0.00"), "@@@@@@@@")
    Print #1, Tab(0); String(40, "-");

    'mensagem de no rodape do cupom
    Print #1, Tab((40 - Len("Este Cupon Não Tem Valor Fiscal")) / 2); "Este Cupon Não Tem Valor Fiscal"
    Print #1, Tab(0); " "
    Print #1, Tab((40 - Len("OBRIGADO PELA PREFERÊNCIA")) / 2); "OBRIGADO PELA PREFERÊNCIA"
    Print #1, Tab(0); String(40, "-");
    Print #1, Tab((40 - Len("SysPDV - Versão 1.0.0 - Venda")) / 2); "SeuSistema - Versão 1.0.0 - Venda";
    'as linhas seguintes são linhas em branco para sair o papel da impressora, adapte-as como desejar
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); " "
    Print #1, Tab(0); "-------"
    'comando de corte
    'Print #1, Chr(27) + "i"
    Close #1#
    Exit Sub
    End Sub


    Atenciosamente,

    Hebert PEDROSO
    bigfill
    bigfill
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 413
    Registrado : 27/03/2015

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty Re: [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  bigfill 22/3/2016, 11:36

    Bom dia HAPedroso, este código funciona em outra impressora ?
    avatar
    HAPedroso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 09/12/2014

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty Re: [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  HAPedroso 22/3/2016, 11:50

    Bom dia Bigfill,

    Olha eu estava adaptando o código a minha realidade e não consegui realizar a impressão em nenhuma impressora térmica ou não.

    Tem este código abaixo que consegue gerar corretamente o arquivo *.txt, mas também não consegui comunicar com a impressora térmica.

    Private Sub bt_imprimir_Click()
    'On Error GoTo Err_bt_imprimir_Click
    'Imprime em arquivo e envia para impressora
    'Por Glicério Júnior (jungli) em 28.05.2012

    Const FOR_READING = 1
    Const FOR_WRITING = 2
    Const FOR_APPENDING = 8

    Dim fso As Object
    Dim ArqX As Object

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ArqX = fso.OpenTextFile("c:\teste.txt", FOR_WRITING, True)

    'nPed = Me.N__Pedido
    'DtVenda = Me.Data_da_Venda
    'Fpag = Me.FPagamento
    'Reg1 = Me.Código_da_Venda

    Dim nPed, DtVenda, Fpag, Reg1
    nPed = Forms![cpedido]!Código
    'DtVenda = Forms![fvenda]!VendaData

    'cupom para impressora termica de 40 colunas

    'LPT1:
    'Open "\\LPT1:" For Output As #1
    'Open "\\ComputadorComAImpressoraCompartilhada\NomeDaImpressoraCompartilhada" For Output As #1

    ArqX.WriteLine " SELMA SALGADOS"
    ArqX.WriteLine " Rua Manoel de Oliveira Mafra, nº 18"
    ArqX.WriteLine "São Sebastião do Paraíso - MG - CEP: 37.950-000"
    ArqX.WriteLine " Tel: (35) 3531 4337"
    ArqX.WriteLine " E-mail: selmasalgados@live.com"

    ArqX.WriteLine "------------------------------------------------"
    ArqX.WriteLine "Cupom NRO : " & Me.Código
    ArqX.WriteLine "------------------------------------------------"
    ArqX.WriteLine " CUPOM NAO FISCAL "
    ArqX.WriteLine "Data :" & Date & " Hora :" & Time
    ArqX.WriteLine "------------------------------------------------"

    'cabeça do cuponm do items
    ArqX.WriteLine "Cod. Desc."
    ArqX.WriteLine "Qtd. VL Uni. VL Total "
    ArqX.WriteLine "------------------------------------------------"

    'selecionar items do cupon
    'Dim csql As String
    Dim bc As DAO.Database
    Dim cvendaprod As DAO.Recordset
    Set bc = CurrentDb
    'csql = "SELECT * FROM cpedido Efetuadas WHERE Código_da_Venda=" & Chr(34) & Me.Código_da_Venda & Chr(34)
    Set cvendaprod = bc.OpenRecordset("SELECT pratos.DataOpcao, pratos.opcao, * " & _
    "FROM pratos INNER JOIN cpedido " & _
    "ON pratos.codigo = cpedido.PedidoPratoId " & _
    "WHERE (((cpedido.Código)=" & Me.Código.Value & "));", dbOpenDynaset)
    Do While Not cvendaprod.EOF
    ArqX.WriteLine Format(cvendaprod("PedidoPratoId"), "000000") & " " & Left(cvendaprod("opcao"), 20)
    ArqX.WriteLine Format(1, "000000") & " " & _
    Format$(Format$(0, "#,##0.00"), "@@@@@@@@@") & " " & _
    Format$(Format$(0 * 1, "#,##0.00"), "@@@@@@@@@")
    cvendaprod.MoveNext
    Loop
    Set cvendaprod = Nothing
    'cvendaprod.Close
    'valor total do cupon
    'ArqX.WriteLine "------------------------------------------------"
    'ArqX.WriteLine "Total R$: " & Format$(Format$(Me.VendaTotal, "#,##0.00"), "@@@@@@@@")
    ArqX.WriteLine "------------------------------------------------"

    'mensagem de no rodapé do cupom
    ArqX.WriteLine " * Este Cupom Nao Tem Valor Fiscal"
    ArqX.WriteLine " OBRIGADO PELA PREFERENCIA"
    ArqX.WriteLine "------------------------------------------------"
    ArqX.WriteLine " Scef 3.2.1 - selmasalgados@live.com"
    ArqX.WriteLine "------------------------------------------------"

    'Chamada para imprimir o cupom
    Dim ValorDeRetorno As Integer
    ValorDeRetorno = Shell("C:\Windows\Notepad.exe C:\teste.txt", 1)
    AppActivate ValorDeRetorno
    SendKeys "%A", True 'Abre o menu Arquivo
    SendKeys "I", True 'Abre a caixa de impressão
    SendKeys "%M", True 'Imprime o arquivo aberto
    FechaPrograma "teste.txt - Bloco de notas" 'Fecha a janela do bloco de notas


    'Exit_bt_imprimir_Click:
    ' Exit Sub

    'Err_bt_imprimir_Click:
    ' MsgBox Err.Description
    ' Resume Exit_bt_imprimir_Click

    End Sub



    Atenciosamente,

    HAPedroso
    bigfill
    bigfill
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 413
    Registrado : 27/03/2015

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty Re: [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  bigfill 22/3/2016, 12:17

    HAPedroso, Estive olhando este link abaixo, você realizou a instalação ? e na impressão de uma pagina de teste foi impressa ?

    https://www.youtube.com/watch?v=-kjimjylHJc
    avatar
    HAPedroso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 09/12/2014

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty Re: [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  HAPedroso 22/3/2016, 12:32

    Bom dia Bigfill,

    Realizei estes procedimentos sim, a impressora foi devidamente instalada e foram impressas as páginas teste normalmente, inclusive está está disponível como uma impressora do Windows, tanto é fato que visualizei a impressão de um relatório no Access e comande impressão (selecionei esta impressora térmica) e a impressão saiu corretamente.

    Atenciosamente,

    HAPedroso
    bigfill
    bigfill
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 413
    Registrado : 27/03/2015

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty Re: [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  bigfill 22/3/2016, 12:33

    HAPedroso, O que pude notar de diferente entre os códigos e o caminho da porta de impressão.


    Open "\\COM4:" For Output Access Write As #1
    'Open CurrentProject.Path & "\cup1.txt" For Output Access Write As #1

    'Open "\\LPT1:" For Output As #1
    'Open "\\ComputadorComAImpressoraCompartilhada\NomeDaImpressoraCompartilhada" For Output As #1
    avatar
    HAPedroso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 09/12/2014

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty Re: [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  HAPedroso 22/3/2016, 13:04

    Bigfill,

    Vou realizar o ajuste conforme orientado e fazer o teste. Assim que eu o fizer, entrarei em contato para confirmar se deu certo.

    Atenciosamente,

    HAPedroso
    avatar
    HAPedroso
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 09/12/2014

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty Re: [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  HAPedroso 23/3/2016, 01:50

    Boa noite Bigfill,

    Finalmente consegui, o ajuste que você me sugeriu deu certo, infelizmente havia algum erro na rotina de acesso ao banco de dados também, após a exclusão da rotina e após o ajuste de localização da impressora 80 colunas via USB (localizando a impressora compartilhada na rede) deu certo a impressão.
    Obrigado!

    Ficou assim a linha de comando para acessar impressora:

    Open "\\ComputadorComAImpressoraCompartilhada\NomeDaImpressoraCompartilhada" For Output Access Write As #1

    Atenciosamente,

    HAPedroso
    bigfill
    bigfill
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 413
    Registrado : 27/03/2015

    [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB Empty Re: [Resolvido]Impressão em impressora térmica 80 colunas não fiscal através de comunicação USB

    Mensagem  bigfill 23/3/2016, 11:43

    Bom dia HAPedroso, Obrigado pelo retorno, o fórum agradece.

      Data/hora atual: 11/4/2021, 14:15