DUVIDAS COM SHAPE E APPEND

CASTELO 27/02/2012 21:30:07
#395840
Ola Amigos do VBMANIA.

Estou com dificulades gerar um relatório tipo boletim escolar, estou usando o comando SHAPE APPEND que aprendi pelo site do marcoratti.

Abaixo o código que estou usando

na primeira parte COMANDO PAI capturo os dados dos alunos, turma, série pela tabela matricula, onde existe uma campo ID_ALUNO e campo SERIE para ser usado no COMANDO FILHO.

strSQL = [Ô]SHAPE { [Ô]
strSQL = strSQL & [Ô]SELECT tb_matricula.*, [Ô]
strSQL = strSQL & [Ô] tb_matricula.numero as NumeroAluno,[Ô]
strSQL = strSQL & [Ô] tb_aluno.nome_aluno as NomeAluno,[Ô]
strSQL = strSQL & [Ô] tb_turma.turma as NomeTurma, [Ô]
strSQL = strSQL & [Ô] tb_turma.turno as TurmaTurno, [Ô]
strSQL = strSQL & [Ô] tb_serie.serie as NomeSerie, [Ô]
strSQL = strSQL & [Ô] tb_graus.descricao as NomeGrau [Ô]
strSQL = strSQL & [Ô] FROM[Ô]
strSQL = strSQL & [Ô] ((((tb_matricula INNER JOIN tb_aluno ON tb_matricula.id_aluno = tb_aluno.id_aluno)[Ô]
strSQL = strSQL & [Ô] INNER JOIN tb_turma ON tb_matricula.id_turma = tb_turma.id_turma)[Ô]
strSQL = strSQL & [Ô] INNER JOIN tb_serie ON tb_turma.serie = tb_serie.id_serie) [Ô]
strSQL = strSQL & [Ô] INNER JOIN tb_graus ON tb_serie.grau = tb_graus.id_grau) [Ô]

Aqui seleciono se será impresso por TURMA, SéRIE ou INDIVIDUALMENTE
If Option1.Value = True Then strSQL = strSQL & [Ô] WHERE tb_matricula.id_turma = [Ô] & turma.ItemData(turma.ListIndex)
If Option2.Value = True Then strSQL = strSQL & [Ô] WHERE tb_matricula.id_serie = [Ô] & serie2.ItemData(serie2.ListIndex)
If Option4.Value = True Then strSQL = strSQL & [Ô] WHERE tb_matricula.id_aluno = [Ô] & codigoaluno.Text

strSQL = strSQL & [Ô] ORDER BY tb_turma.turma asc, tb_matricula.numero asc [Ô]
strSQL = strSQL & [Ô]} AS Turmas [Ô]
strSQL = strSQL & [Ô]APPEND ({ [Ô]


aqui começa a dificuldade, testei duas formas,
1 - Lista todas as disciplinas relacionadas a SéRIE porém ao ler as notas repete a mesma nota para todas as disciplinas:
strSQL = strSQL & [Ô]SELECT tb_disciplina.*, tb_notas.* From (tb_notas [Ô]
strSQL = strSQL & [Ô]right JOIN tb_disciplina ON tb_notas.id_disciplina = tb_disciplina.id_disciplina) [Ô]
[ô]strSQL = strSQL & [Ô]INNER JOIN tb_aluno ON tb_notas.id_aluno = tb_aluno.id_aluno) [Ô]

strSQL = strSQL & [Ô]} AS Alunos [Ô]
strSQL = strSQL & [Ô]RELATE [ô]id_serie[ô] TO [ô]serie[ô] [Ô]
strSQL = strSQL & [Ô]) AS Alunos [Ô]

2 - Lista somente a disciplina que possui nota lançada no banco.
strSQL = strSQL & [Ô]SELECT tb_notas.*, tb_disciplina.* From (tb_notas [Ô]
strSQL = strSQL & [Ô]INNER JOIN tb_disciplina ON tb_notas.id_disciplina = tb_disciplina.id_disciplina) [Ô]

strSQL = strSQL & [Ô]} AS Alunos [Ô]
strSQL = strSQL & [Ô]RELATE [ô]id_aluno[ô] TO [ô]id_aluno[ô] [Ô]
strSQL = strSQL & [Ô]) AS Alunos [Ô]

Preciso listar todas as disciplinas e suas respectivas notas... porém... nem todas elas tem notas LANÇADAS ainda...

Alguma ajuda... dica... LUZ ?

Aguardo.
TECLA 02/03/2012 21:00:38
#396338
Você tem uma base de exemplo (imagino que seja ACCESS) com alguns poucos registros?
Se sim, poste no tópico.
CASTELO 07/03/2012 20:54:51
#396640
Ola Tecla

Em anexo o projeto que gera o boletim...
O que preciso é listar todas as disciplinas e recuperar a nota que tá lançada para cada uma delas.

O banco de Dados é access.

Aguardo ajuda de vocês galera.

Abraços
CASTELO 08/03/2012 10:35:04
#396667
Alguém... alguma ajuda ? rsrsr
CASTELO 08/03/2012 20:12:32
#396727
Alguém que manja de SQL ae ?
CASTELO 22/03/2012 16:01:20
#397967
rapazeada... nem uma alma sequer!?
Tópico encerrado , respostas não são mais permitidas