ONDE ESTA O ERRO VB6

ADRIANOM 29/08/2010 22:53:17
#351669
Estou fazendo um programa para a biblioteca, e tenho o local onde adiciono o empréstimo do livro....
Queria, que ao salvar o registro de emprestis, caso o chkRecibo venha estar marcado, ele venha imprimir um recibo em bubina...Só que não está fazendo isso... Olhem onde está meu erro!!!

Sub Salvar()
PERGUNTA = MsgBox([Ô]Confirma os dados inseridos?[Ô], vbQuestion + vbYesNo, [Ô]Avisos[Ô])
If PERGUNTA = vbYes Then
If txtAluno.Text <> [Ô][Ô] And txtLivro.Text <> [Ô][Ô] Then

If chkRecibo.Value = True Then
Call RECIBO
End If

CE.AddNew
CL.Edit
CE!Codigo = txtCodigo.Text
CE!CodigoAluno = txtCodAluno.Text
CE!NomeAluno = txtAluno.Text
CE!SerieSala = txtSerie.Text
CE!CodigoLivro = txtCodLivro.Text
CE!TituloLivro = txtLivro.Text
CE!DataAtual = txtDtMov.Text
CE!DataEmprestimo = txtEmprestimo.Text
CE!DataPrevDevolucao = txtDevolucao.Text
CE!DiasEmprestimo = txtDias.Text
CE!Usuario = txtUsuario.Text
CE!Observacao = txtObservacao.Text
CL!QtdDisp = txtQtdDisp.Text - 1
CE.Update
CL.Update
Data1.Refresh
Call Limpar
Call AutoNumeracao
Else
MsgBox [Ô]Preencha os campos necessários para efetuar o cadastro! (Nome e Série/Sala)[Ô], vbCritical + vbOKOnly, [Ô]Avisos[Ô]
Exit Sub
End If
Else
Exit Sub
End If
End Sub

Sub RECIBO()

Dim A As Integer
Dim B As Integer
Dialog1.CancelError = True
Dialog1.ShowPrinter
A = Dialog1.Copies
For B = 1 To A
Const Empresa = txtInstituicao.Text
Const Rua = [Ô]Nome da empresa[Ô]
Const Dados = [Ô]www.sitedaempresa.com.br[Ô]
Const Cit = [Ô]teste@bol.com.br[Ô]

Printer.Print String(40, [Ô]-[Ô]) [ô]Faz uma Linha
Printer.Print Tab((40 - Len(Empresa)) / 2); Empresa [ô]Centraliza N. Empresa
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len(Rua)) / 2); Rua [ô]Centraliza Rua
Printer.Print Tab((40 - Len(Dados)) / 2); Dados [ô]Centraliza Dados Adicionais
Printer.Print Tab((40 - Len(Cit)) / 2); Cit [ô]Centraliza Cidade
Fonte 12, True, False
Printer.Print Tab(10); [Ô]COMPROVANTE DE EMPRéSTIMO[Ô]
Fonte 10, False, False
Printer.Print Tab(2); Format(Date, [Ô]dd/mm/yyyy[Ô]); [Ô] [Ô]; Format(Time, [Ô]hh:mm:ss[Ô]);
CurrentY = 2150 [ô]Vai para a coluna do Form escolhida
Fonte 12, False, True
Fonte 10, False, False
Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô] Código Aluno SérieSala[Ô]
Printer.Print [Ô] Código Livro[Ô]
Printer.Print String(40, [Ô]-[Ô])

Printer.Print Tab(2); txtCodAluno.Text; Tab(11); Mid(txtAluno.Text, 1, 26); Tab(28); txtSerie.Text [ô]Limita a 26 letras

On Error Resume Next

Printer.Print Tab(5); txtCodLivro.Text; Tab(13); Mid(txtLivro.Text, 1, 25);

Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô]Data de Devolução:[Ô]; Tab(28); txtDevolucao.Text
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len([Ô]Nome da Empresa[Ô])) / 2); [Ô]Nome da Empresa[Ô]
Printer.Print Tab((40 - Len([Ô]teste@bol.com.br[Ô])) / 2); [Ô]teste@bol.com.br[Ô]
Printer.Print String(40, [Ô]-[Ô])
End Sub
Private Sub cmdConfirmar_Click()
Call Salvar
End Sub


O código salva normalmente, só que não imprime.... Se possuirem exemplo ou algo parecido .. me passem...
EDERMIR 30/08/2010 07:54:53
#351674
Tire o CALL de:
Call RECIBO


Mude de:
Sub RECIBO()

Para:
Public Function RECIBO()



Funcionou?
MARCELO.TREZE 30/08/2010 11:15:48
#351697
Resposta escolhida
bom tente isto

Sub RECIBO()

Dim A As Integer

[txt-color=#007100][ô] Declare os dados sem o const[/txt-color]
Dim Empresa As String, Rua As String, Dados As String, Cit As String
[ô]
Dialog1.CancelError = True
Dialog1.ShowPrinter
A = Dialog1.Copies

Empresa = txtInstituicao.Text
Rua = [Ô]Nome da empresa[Ô]
Dados = [Ô]www.sitedaempresa.com.br[Ô]
Cit = [Ô]teste@bol.com.br[Ô]

[txt-color=#007100] [ô] Define a quantidade de cópias[/txt-color]
Printer.Copies = A
[ô]
Printer.Print String(40, [Ô]-[Ô]) [ô]Faz uma Linha
Printer.Print Tab((40 - Len(Empresa)) / 2); Empresa [ô]Centraliza N. Empresa
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len(Rua)) / 2); Rua [ô]Centraliza Rua
Printer.Print Tab((40 - Len(Dados)) / 2); Dados [ô]Centraliza Dados Adicionais
Printer.Print Tab((40 - Len(Cit)) / 2); Cit [ô]Centraliza Cidade
Fonte 12, True, False
Printer.Print Tab(10); [Ô]COMPROVANTE DE EMPRéSTIMO[Ô]
Fonte 10, False, False
Printer.Print Tab(2); Format(Date, [Ô]dd/mm/yyyy[Ô]); [Ô] [Ô]; Format(Time, [Ô]hh:mm:ss[Ô]);
CurrentY = 2150 [ô]Vai para a coluna do Form escolhida
Fonte 12, False, True
Fonte 10, False, False
Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô] Código Aluno SérieSala[Ô]
Printer.Print [Ô] Código Livro[Ô]
Printer.Print String(40, [Ô]-[Ô])

Printer.Print Tab(2); txtCodAluno.Text; Tab(11); Mid(txtAluno.Text, 1, 26); Tab(28); txtSerie.Text [ô]Limita a 26 letras

Printer.Print Tab(5); txtCodLivro.Text; Tab(13); Mid(txtLivro.Text, 1, 25);

Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô]Data de Devolução:[Ô]; Tab(28); txtDevolucao.Text
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len([Ô]Nome da Empresa[Ô])) / 2); [Ô]Nome da Empresa[Ô]
Printer.Print Tab((40 - Len([Ô]teste@bol.com.br[Ô])) / 2); [Ô]teste@bol.com.br[Ô]
Printer.Print String(40, [Ô]-[Ô])

[txt-color=#007100][ô] nunca esqueça o enddoc, pois é ele que envia o documento para impressora[/txt-color]
Printer.EndDoc
[ô]

End Sub
ADRIANOM 30/08/2010 19:57:31
#351751
Galera...
Testei.. só que não deu certo não.... Não imprimiu nada... nem a janela de diálogo abriu...
Estou com o código assim agora...Help...

Sub Salvar()
PERGUNTA = MsgBox([Ô]Confirma os dados inseridos?[Ô], vbQuestion + vbYesNo, [Ô]Avisos[Ô])
If PERGUNTA = vbYes Then
If txtAluno.Text <> [Ô][Ô] And txtLivro.Text <> [Ô][Ô] Then

If chkRecibo.Value = True Then
RECIBO
End If

CE.AddNew
CL.Edit
CE!Codigo = txtCodigo.Text
CE!CodigoAluno = txtCodAluno.Text
CE!NomeAluno = txtAluno.Text
CE!SerieSala = txtSerie.Text
CE!CodigoLivro = txtCodLivro.Text
CE!TituloLivro = txtLivro.Text
CE!DataAtual = txtDtMov.Text
CE!DataEmprestimo = txtEmprestimo.Text
CE!DataPrevDevolucao = txtDevolucao.Text
CE!DiasEmprestimo = txtDias.Text
CE!Usuario = txtUsuario.Text
CE!Observacao = txtObservacao.Text
CL!QtdDisp = txtQtdDisp.Text - 1
CE.Update
CL.Update
Data1.Refresh
Call Limpar
Call AutoNumeracao
Else
MsgBox [Ô]Preencha os campos necessários para efetuar o cadastro! (Nome e Série/Sala)[Ô], vbCritical + vbOKOnly, [Ô]Avisos[Ô]
Exit Sub
End If
Else
Exit Sub
End If
End Sub


Public Function RECIBO()

Dim A As Integer

[ô] Declare os dados sem o const
Dim Empresa As String, Rua As String, Dados As String, Cit As String
Dialog1.CancelError = True
Dialog1.ShowPrinter
A = Dialog1.Copies


Empresa = txtInstituicao.Text
Rua = [Ô]Nome da empresa[Ô]
Dados = [Ô]www.sitedaempresa.com.br[Ô]
Cit = [Ô]teste@bol.com.br[Ô]

Printer.Copies = A

Printer.Print String(40, [Ô]-[Ô]) [ô]Faz uma Linha
Printer.Print Tab((40 - Len(Empresa)) / 2); Empresa [ô]Centraliza N. Empresa
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len(Rua)) / 2); Rua [ô]Centraliza Rua
Printer.Print Tab((40 - Len(Dados)) / 2); Dados [ô]Centraliza Dados Adicionais
Printer.Print Tab((40 - Len(Cit)) / 2); Cit [ô]Centraliza Cidade
Fonte 12, True, False
Printer.Print Tab(10); [Ô]COMPROVANTE DE EMPRéSTIMO[Ô]
Fonte 10, False, False
Printer.Print Tab(2); Format(Date, [Ô]dd/mm/yyyy[Ô]); [Ô] [Ô]; Format(Time, [Ô]hh:mm:ss[Ô]);
CurrentY = 2150 [ô]Vai para a coluna do Form escolhida
Fonte 12, False, True
Fonte 10, False, False
Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô] Código Aluno SérieSala[Ô]
Printer.Print [Ô] Código Livro[Ô]
Printer.Print String(40, [Ô]-[Ô])

Printer.Print Tab(2); txtCodAluno.Text; Tab(11); Mid(txtAluno.Text, 1, 26); Tab(28); txtSerie.Text [ô]Limita a 26 letras

On Error Resume Next

Printer.Print Tab(5); txtCodLivro.Text; Tab(13); Mid(txtLivro.Text, 1, 25);

Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô]Data de Devolução:[Ô]; Tab(28); txtDevolucao.Text
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len([Ô]Nome da Empresa[Ô])) / 2); [Ô]Nome da Empresa[Ô]
Printer.Print Tab((40 - Len([Ô]teste@bol.com.br[Ô])) / 2); [Ô]teste@bol.com.br[Ô]
Printer.Print String(40, [Ô]-[Ô])

[ô] nunca esqueça o enddoc, pois é ele que envia o documento para impressora
Printer.EndDoc
[ô]fim do esquema de impressão
End Function

Private Sub cmdConfirmar_Click()
Call Salvar
End Sub
MARCELO.TREZE 30/08/2010 20:06:12
#351752
o erro ta aqui

 If chkRecibo.Value = True Then
RECIBO
End If


o certo é 0 para false e 1 para true

então o certo é

If chkRecibo.Value = 1 Then
RECIBO
End If


veja ai se funciona

ADRIANOM 30/08/2010 20:25:15
#351753
Muito Obrigado Valeu....Agora a mão-de-obra é por minha conta.. calculei errado os espaços... mas está imprimindo... Obrigado Marcelo...

Sub Salvar()
PERGUNTA = MsgBox([Ô]Confirma os dados inseridos?[Ô], vbQuestion + vbYesNo, [Ô]Avisos[Ô])
If PERGUNTA = vbYes Then
If txtAluno.Text <> [Ô][Ô] And txtLivro.Text <> [Ô][Ô] Then

If chkRecibo.Value = 1 Then
RECIBO
End If

CE.AddNew
CL.Edit
CE!Codigo = txtCodigo.Text
CE!CodigoAluno = txtCodAluno.Text
CE!NomeAluno = txtAluno.Text
CE!SerieSala = txtSerie.Text
CE!CodigoLivro = txtCodLivro.Text
CE!TituloLivro = txtLivro.Text
CE!DataAtual = txtDtMov.Text
CE!DataEmprestimo = txtEmprestimo.Text
CE!DataPrevDevolucao = txtDevolucao.Text
CE!DiasEmprestimo = txtDias.Text
CE!Usuario = txtUsuario.Text
CE!Observacao = txtObservacao.Text
CL!QtdDisp = txtQtdDisp.Text - 1
CE.Update
CL.Update
Data1.Refresh
Call Limpar
Call AutoNumeracao
Else
MsgBox [Ô]Preencha os campos necessários para efetuar o cadastro! (Nome e Série/Sala)[Ô], vbCritical + vbOKOnly, [Ô]Avisos[Ô]
Exit Sub
End If
Else
Exit Sub
End If
End Sub


Public Function RECIBO()

Dim A As Integer

[ô] Declare os dados sem o const
Dim Empresa As String, Rua As String, Dados As String, Cit As String
Dialog1.CancelError = True
Dialog1.ShowPrinter
A = Dialog1.Copies


Empresa = txtInstituicao.Text
Rua = [Ô]Nome da empresa[Ô]
Dados = [Ô]www.sitedaempresa.com.br[Ô]
Cit = [Ô]teste@bol.com.br[Ô]

Printer.Copies = A

Printer.Print String(40, [Ô]-[Ô]) [ô]Faz uma Linha
Printer.Print Tab((40 - Len(Empresa)) / 2); Empresa [ô]Centraliza N. Empresa
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len(Rua)) / 2); Rua [ô]Centraliza Rua
Printer.Print Tab((40 - Len(Dados)) / 2); Dados [ô]Centraliza Dados Adicionais
Printer.Print Tab((40 - Len(Cit)) / 2); Cit [ô]Centraliza Cidade
Fonte 12, True, False
Printer.Print Tab(10); [Ô]COMPROVANTE DE EMPRéSTIMO[Ô]
Fonte 10, False, False
Printer.Print Tab(2); Format(Date, [Ô]dd/mm/yyyy[Ô]); [Ô] [Ô]; Format(Time, [Ô]hh:mm:ss[Ô]);
CurrentY = 2150 [ô]Vai para a coluna do Form escolhida
Fonte 12, False, True
Fonte 10, False, False
Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô] Código Aluno SérieSala[Ô]
Printer.Print [Ô] Código Livro[Ô]
Printer.Print String(40, [Ô]-[Ô])

Printer.Print Tab(2); txtCodAluno.Text; Tab(11); Mid(txtAluno.Text, 1, 26); Tab(28); txtSerie.Text [ô]Limita a 26 letras

On Error Resume Next

Printer.Print Tab(5); txtCodLivro.Text; Tab(13); Mid(txtLivro.Text, 1, 25);

Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô]Data de Devolução:[Ô]; Tab(28); txtDevolucao.Text
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len([Ô]Nome da Empresa[Ô])) / 2); [Ô]Nome da Empresa[Ô]
Printer.Print Tab((40 - Len([Ô]teste@bol.com.br[Ô])) / 2); [Ô]teste@bol.com.br[Ô]
Printer.Print String(40, [Ô]-[Ô])

[ô] nunca esqueça o enddoc, pois é ele que envia o documento para impressora
Printer.EndDoc
[ô]fim do esquema de impressão
End Function

Private Sub cmdConfirmar_Click()
Call Salvar
End Sub
Tópico encerrado , respostas não são mais permitidas