Private Sub btnImprimir_Click()
Dim NCount As Integer, X As Integer
Dim nPed, DtVenda, Fpag
'Variável para o número da venda
nPed = Me.Códigovenda
'Variável para a data da venda
DtVenda = Format(Date, "dd/mm/yyyy")
'Variável para o tipo de pagamento
'Fpag = StrTipoPgto
'selecionar items do cupon
Dim StrSQL As String
Dim rs As DAO.Recordset
Dim Db As DAO.Database
'Observe que aqui é carregado os itens da tabela
StrSQL = "SELECT DetalheCódigoVenda,CodProduto,Descrição,Quant," _
& "ValorUnit, DataVenda FROM tbl_VendaDetalhe WHERE DetalheCódigoVenda = " & Me.Códigovenda & ";"
'Seta o Db
Set Db = CurrentDb
'Seta o Recordset com a SQL
Set rs = CurrentDb.OpenRecordset(StrSQL)
'cupon para impressora termica de 40 colunas
Aqui é a parte da impressão, observe que será impresso de imediato o primeiro registro constante no recordset
Do While Not rs.EOF
'Open "LPT1:" For Output Access Write As #1
Open CurrentProject.Path & "\Cupom.txt" For Output Access Write As #1
Print #1, Tab(0); "TESTE DE EMPRESA"
Print #1, Tab(0); "Rua: " & "erua" & " - " & "ebairro";
Print #1, Tab(0); "ecid" & " - " & "eest"; " Cep: " & "ecep";
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; " " & " "; "Hora :" & Time;
'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, "-");
'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); ""
'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#
Neste ponto o cupom já foi impresso
Aqui vai para o proximo registro ou seja para a posição: Do While Not rs.EOF, assim sucessivamente registro a registro
rs.MoveNext
Loop
'Fecha o recorset
rs.Close
End Sub
Portanto amigão é impossível deste código não estar funcionando ai...
Cumprimentos.