GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Impressão direta em COM2
Go
Novo
Procurar
Notificar
Ferramentas
Responder
  
-star Rating Vote!  Login/Cadastrar 
Programador Júnior

Figura de  JERRI GASPAR
postado
Caros colegas,

Preciso desenvolver um aplicativo para impressão de cheques, e o meu problema é o seguinte:

A impressora de cheques aqui da empresa NÃO utiliza drive windows e esta conectata em uma porta COM2 será quie existe com imprimir nela atravéz do Access 2000.


Mais uma vez agradeço,



[B]Jerri gaspar[/p]
 
Postagens: 144 | Localização: SÃO PAULO | Registrado: 29 June 2001Reply With QuoteReport This Post
<vagner sady>
postado
Jerri,

Você vai precisar usar o activex MSCOMM32.OCX.
Enviei exemplo para jerri@ig.com.br
 
Reply With QuoteReport This Post
Programador Júnior

Figura de  JERRI GASPAR
postado Hide Post
Caro colega,

Agradeço a colaboração, mais não desculpe minha ignorância mais eum não sei como utilizar o ACX que vc me enviou, pode me dar umas dicas?


Grato,

Jerri Gaspar
 
Postagens: 144 | Localização: SÃO PAULO | Registrado: 29 June 2001Reply With QuoteReport This Post
Programador Júnior

Figura de  JERRI GASPAR
postado Hide Post
Caro Vagner,

Recebi um exemplo do fabricante de minha impressora, só que é em VB, testei e funciona, não sei como fazer para funcionar no Access (onde preciso), não sei também como proceder com a OCX, que vc me enviou, que deve ser a mesma que ele cita no código dele para VB será que poderia me ajudar?

Como teste utilizei um formulário chamado GERAL, e pretendo colocar o código no evento ao clicar, os valores a serem impressos no código abaixo não tem relação nenhuma com o banco (ou formulário) ou seja esta imprimindo os valores entre aspas, mas para testes é perfeito depois eu faço a relação.

Estou muito ansioso por sua ajuda.


Muito obrigado



Private Sub Command3_Click()
diretamente para a porta Com2 (Serial) Para este exemplo funcionar é necessario adicionar o componente MSComm.OCX ( em Microsoft Comm Controls 6.0) no Formulário do VB

MSComm1.CommPort = 2
MSComm1.Settings = "4800,N,8,2"
MSComm1.Handshaking = comRTSXOnXOff
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True

MSComm1.Output = Chr$(27) + "B4"
MSComm1.Output = Chr$(27) + "CBarueri$"
MSComm1.Output = Chr$(27) + "NTSP Tecnologia$"
MSComm1.Output = Chr$(27) + "D030300"
MSComm1.Output = Chr$(27) + "v13456$"
MSComm1.PortOpen = False

End Sub
 
Postagens: 144 | Localização: SÃO PAULO | Registrado: 29 June 2001Reply With QuoteReport This Post
Moderador
Diretor

postado Hide Post
Oi Jerri,

coloque o controle em um form do Access, dê o nome de MScomm1. Lembre-se de fazer o registro: menu ferramentas/Controles ActiveX, Registrar; selecione o arquivo mscomm32.ocx na pasta de sistemas do Windows.

Cole o código no evento Ao Clicar de um botão.

[]
 
Postagens: 6148 | Localização: São Paulo, SP, Brasil | Registrado: 02 February 2001Reply With QuoteReport This Post
Programador Pleno

Figura de  Vagner Sady
postado Hide Post
Jerri,

O colega Luiz Cláudio está correto. Antes de usar a OCX execute os passos a seguir :

1)Copie a OCX MSCOMM32.OCX que te enviei para o diretório do Windows ( C:\Windows\System e C:\Windows\System32)

2)O .reg contem as informações para registro da OCX senão não funciona. Execute ele antes de abrir o mdb.Em algumas máquinas poderá ser necessário reiniciar o computador.3

3)Abra o seu mdb e no menu ferramentas , Controles activex, Registrar, selecione o caminho C:\WINDOWS\SYSTEM32\MSCOMM32.OCX e clique em OK.

4) Abra o seu formulário no modo estrutura e insira agora pelo menu Insirir , Controle Activex , "MICROSOFT COMMUNICATIONS CONTROL VERSION 6.0"

5) Clique com o botão direito do mouse no objeto criado e selecione propriedades. No campo nome, dê o nome "MScomm1" para poder fazer a referência a ele no vba.Ex.:
MSComm1.PortOpen = False onde MSComm1 é o nome do controle, PortOpen é o comando para abrir(True) ou fechar (False) a porta de comunicações.

No pacote que te mandei tem uma aplicativo access 2000. Abra seu código e veja as demais funções.

Qualquer coisa pode escrever outro e-mail que tentarei te ajudar.

[ 28-10-2002: Mensagem editada por: Vagner Sady ]
 
Postagens: 240 | Localização: São Paulo - SP - Brasil | Registrado: 29 August 2001Reply With QuoteReport This Post
Programador Júnior

Figura de  JERRI GASPAR
postado Hide Post
Colegas,

Já esta funcionando, o meu problema agora é colocar o verso, a idéia seria que ele me desse uma msgbox perguntando se eu quero imprimir o verso (campos este preveamente digitados), será que poderim me ajudar o meu código "que esta funcionado" ja esta em uma questão anterior.


T+


Jerri Gaspar
 
Postagens: 144 | Localização: SÃO PAULO | Registrado: 29 June 2001Reply With QuoteReport This Post
Programador Júnior

Figura de  JERRI GASPAR
postado Hide Post
Continuo na esperança de uma possível ajuda...

Grato
 
Postagens: 144 | Localização: SÃO PAULO | Registrado: 29 June 2001Reply With QuoteReport This Post
Moderador
Diretor

postado Hide Post
Oi Jerri,

use a função MsgBox para fazer a pergunta ao usuário. Se responder SIM, aí você coloca outra MsgBox para posicionar o cheque, e então imprime o verso.

[]
 
Postagens: 6148 | Localização: São Paulo, SP, Brasil | Registrado: 02 February 2001Reply With QuoteReport This Post
Programador Pleno

Figura de  Vagner Sady
postado Hide Post
Jerri,

É isso ?

Private Sub Command3_Click()
'diretamente para a porta Com2 (Serial) 'Para este exemplo funcionar é necessario 'adicionar o componente MSComm.OCX '( em Microsoft Comm Controls 6.0) no Formulário 'do VB

MSComm1.CommPort = 2
MSComm1.Settings = "4800,N,8,2"
MSComm1.Handshaking = comRTSXOnXOff
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True

MSComm1.Output = Chr$(27) + "B4"
MSComm1.Output = Chr$(27) + "CBarueri$"
MSComm1.Output = Chr$(27) + "NTSP Tecnologia$"
MSComm1.Output = Chr$(27) + "D030300"
MSComm1.Output = Chr$(27) + "v13456$"

IF MSGBOX (“DESEJA IMPRIMIR VERSO?”,VBYESNO,”VERSO”)=VBYES THEN
'Dados do verso...
MSComm1.Output = Chr$(27) + "B4" ‘ DADOS PARA IMPRESSÃO NO VERSO.
MSComm1.Output = Chr$(27) + "CBarueri$"
MSComm1.Output = Chr$(27) + "NTSP Tecnologia$"
MSComm1.Output = Chr$(27) + "D030300"
MSComm1.Output = Chr$(27) + "v13456$"

END IF


MSComm1.PortOpen = False
 
Postagens: 240 | Localização: São Paulo - SP - Brasil | Registrado: 29 August 2001Reply With QuoteReport This Post
Programador Júnior

Figura de  JERRI GASPAR
postado Hide Post
Beleza,

Funcionou, esta ficando melhor do que a encomenda, se quiser te mando uma cópia depois que eu terminar.

Só um detalhe, em sua impressora com é que vc faz para mandar um texto livre, do tipo blá, blá, blá, blá, do verso visto que a já sabemos que a impressorra espera códigos do tipo "c" para cidade, "v" para valor etc...

SDS


Jerri Gaspar
 
Postagens: 144 | Localização: SÃO PAULO | Registrado: 29 June 2001Reply With QuoteReport This Post
Programador Pleno

Figura de  Vagner Sady
postado Hide Post
Jerri,

Essa não sei responder porque uso a porta serial para imprimir numa impressora Zebra de emissão de etiquetas de código de barras.
Não tem como procurar esta informação junto ao fabricante de sua impressora, porque cada mecanismo impressor tem comandos diferentes, dependendo do fabricante, para imprimir um texto simples...
Essa fico devendo...
 
Postagens: 240 | Localização: São Paulo - SP - Brasil | Registrado: 29 August 2001Reply With QuoteReport This Post
Iniciante

postado Hide Post
VAGNER FIZ UMAS ALTERAÇÕES PARA MINHA IMPRESSORA DATAMAX, PORÉM ESTÁ DANDO ERRO, MUDEI O NOME DO COMPONENTE PARA MSCOMM1.

ESTÁ DANDO ERRO NA LINHA MSCOMM1.PORTOPEN = TRUE.

O QUE PODE SER?

VEJA O CÓDIGO ABAIXO

Private Sub Command2_Click()
MSComm1.CommPort = 1 'Direciona a impressora para a porta
MSComm1.Settings = "9600,N,8,1" 'Configura a porta serial
MSComm1.PortOpen = True 'Abre a porta serial
Call EnviarSerial("MCY")


Call EnviarSerial("qC")
' Comprimento da etiqueta , distância entre etiquetas
Call EnviarSerial("n")
' Ponto de referência inicial
Call EnviarSerial("M1526")
'Velocidade de impressão
Call EnviarSerial("O0220")
' Densidade de impressão
Call EnviarSerial("V0")
'Orientação
Call EnviarSerial("SE")
'CODIGO A IMPRIMIR
Call EnviarSerial("D")
Call EnviarSerial("L")
Call EnviarSerial("D11")
Call EnviarSerial("H11")
Call EnviarSerial("PE")
Call EnviarSerial("SE")
Call EnviarSerial("431200000350130" & text1)
Call EnviarSerial("431200000350178")
Call EnviarSerial("431200000350229")
Call EnviarSerial("431200001910229")
Call EnviarSerial("431200001910280")
Call EnviarSerial("431200002820229")
Call EnviarSerial("431200000350280")
Call EnviarSerial("431200000350341")
Call EnviarSerial("491101003250372")
Call EnviarSerial("^PQ" & text2.Text)
Call EnviarSerial("E")
'Call EnviarSerial("^XZ")
'Check_Zebra_Loop ' Verifica se a impressora está pronta
Call EnviarSerial("^MCY")
MSComm1.PortOpen = False 'Fecha a porta serial
End Sub
Sub EnviarSerial(wDado)
' Divide o dado em bytes para enviar para a zebra
Dim X As Integer
Dim wByte As String
X = 0
For X = 1 To Len(wDado)
wByte = Mid(wDado, X, 1)
MSComm1.Output = wByte ' Envia byte a byte para zebra
Next X
End Sub
Private Sub Form_Load()
' MSComm1.PortOpen = False

End Sub
 
Postagens: 3 | Registrado: 09 May 2006Reply With QuoteReport This Post
Programador Pleno

postado Hide Post
Vagner, vc tem algum exemplo ou algum programa no qual eu possa imprimir etiquetas na impressora Zebra?!?!
A explicação acima serve para isso também?!?!
Vc ainda tem o programa q vc mandou para o Jerry??

Desde já agradeço!
=]


<<< Dirk >>>
 
Postagens: 290 | Registrado: 29 January 2007Reply With QuoteReport This Post
  Powered by Social Strata  
 

GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Access    Impressão direta em COM2

©