CRIAR UM PRINTER DESTA SQL

WEBIER 25/05/2004 09:46:27
#26516
Eu (com ajuda de alguns amigos) crei esse codigos e coloquei-o no commandbutton:
'===========MOSTRAR NO GRID===================================
Dim QTDE As Integer
Dim PGTO As String, Status As String

If Combo1.Text = "" Or Combo2.Text = "" Then
MsgBox "DIAS e/ou HORARIO INEXISTENTE!" & vbCrLf & "Verifique e digite novamente.", vbInformation, "Aviso do Sistema"
Exit Sub
End If

ABRIR_BD_com_Data Me.Data1
Data1.RecordSource = "SELECT CLIENTE.CODIGO, CLIENTE.NOME, CLIENTE.MODULO, PARCELAS.* " & _
"FROM CLIENTE INNER JOIN PARCELAS ON CLIENTE.CODIGO = PARCELAS.CODIGO_ALUNO " & _
"WHERE (DIAS = '" & Combo1.Text & "') and (HORARIO = '" & Combo2.Text & "') and (MODULO = '" & cboModulo.Text & "') " & _
"ORDER BY CLIENTE.CODIGO, PARCELAS.MES"
Data1.Refresh

With Data1.Recordset

If .BOF And .EOF Then
MsgBox "Não existe esse Módulo para esse horário!", , "Aviso do Sistema"
Exit Sub
End If

.MoveLast
.MoveFirst

QTDE = .RecordCount / 6

Formato = Grade.FormatString
Grade.Clear
Grade.FormatString = Formato

Grade.Rows = QTDE + 1

For i = 1 To QTDE
Grade.Row = i
Grade.Col = 0: Grade.Text = !CODIGO
Grade.Col = 1: Grade.Text = !NOME
For j = 2 To 12 Step 2

Grade.Col = j
Grade.Text = IIf(IsNull(!pagamento), "", !pagamento)

Grade.Col = j + 1
Grade.Text = IIf(!Status, "Pago", "")

.MoveNext
Next
Next
End With

Para que serve?
Quando eu clicar no command ele mostrará no Flexgrid os dados de duas tabelas diferentes (Cliente e Parcelas).
A ideia é a seguinte: tenho uma tabela chamada CLIENTE e outra chamada PARCELAS.
Toda vez que cadastramos um cliente é automaticamente criado 06 (seis) registros na tabela PARCELAS, sendo 01 matricula e 05 mensalidades.

O que eu quero?
Queria imprimir igual está sendo exibido na flexgrid....
Na frexgrid aparece assim:
COD NOME MATRICULA STATUS 1º PGTO STATUS 2º PGTO STATUS
0001 JOSE 10/02/04 PAGO 10/03/04 PAGO
0320 PEDRO 10/02/04 PAGO 15/03/04 PAGO
0420 JOAO 11/02/04 PAGO 17/03/04 PAGO 16/04/04 PAGO
e assim sucessivamente...
sendo que o codigo e o nome do cliente vem da tabela CLIENTE e as datas dos pagamentos vem da tabela PARCELAS.

QUERIA IMPRIMIR IGUAL ESTà SENDO EXIBIDO NO GRID !!!!
VB6MASTER 26/05/2004 20:25:12
#26841
Resposta escolhida
Compare os campos especificados na linha
Printer.Print !CODIGO;tab(10);!NOME;tab(40);! IIf(IsNull(!pagamento), "", !pagamento);tab(50); IIf(!Status, "Pago", "") 

com o nome dos campos existentes em sua base de dados, se estão grafados de forma correta. Por exemplo Cód é diferente de Cod.

Boa sorte e t+
VB6MASTER 27/05/2004 21:05:00
#27089
Me responda uma coisa, por que você dividiu seu RecordCount por 6
QTDE = .RecordCount / 6 


Deixe o RecordCount deve permanecer inteirinho. Ele deverá te retornar 14 (pelo que você narrou acima).

Eu não manjo de DAO, mas o seu código
     For i = 1 To QTDE 

Printer.CurrentX = 80
Printer.Print Tab(1); S_Codigo;
Printer.Print Tab(7); S_Nome;
Printer.Print Tab(55); IIf(IsNull(S_Pagamento), "", S_Pagamento);
Printer.Print Tab(70); IIf(S_Status, "Pago", "")

.MoveNext
Next

Não deveria ser
     For i = 1 To QTDE 

Printer.CurrentX = 80
Printer.Print Tab(1); !S_Codigo;
Printer.Print Tab(7); !S_Nome;
Printer.Print Tab(55); IIf(IsNull(!S_Pagamento), "", !S_Pagamento);
Printer.Print Tab(70); IIf(!S_Status, "Pago", "")

.MoveNext
Next

com o simbolo [!] antes do campo?

Boa sorte e t+
Tópico encerrado , respostas não são mais permitidas