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
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