Report em VB6

Bom dia!
Como criar um relatório com o Report Designer do VB6, onde apenas figure um recordset da base de dados.

Tenho uma base de dados (de clientes) ACCESS a que estou a aceder via ADO. Gostaria de imprimir os detalhes de cada cliente, como uma ficha pessoal.

Após várias tentativas, apenas consigo imprimir todos os recordsets!!!! :(


Alguém me pode ajudar?


Obrigado
 
Acho que estás a misturar um pouco os conceitos.
Record = um registo ou se preferires, uma linha com os dados de um único cliente
Recordset = conjunto de registos ou várias linhas com os dados de vários clientes
Dito isto, o que me parece que queres é um report que agarre num recordset e imprima apenas um record.
Palpita-me que estás a usar um ADO DataControl em vez de fazeres tudo por código.
Assim, o que terás de fazer é, em runtime, definires que o datasource do datareport é igual a adodatacontrol1.recordset e filtrares o mesmo recordset de acordo com o teu critério.

Exemplo: queres imprimir os dados do cliente nº 127

Adodatacontrol1.RecordSource = "select * from clientes where num = " & 127
Adodatacontrol1.Refresh
Datareport1.DataSource = Adodatacontrol1.Recordset
Datareport1.Refresh

Isto saiu-me de cabeça, a sintaxe poderá não ser exactamente esta, mas deverá de bastar para teres uma ideia.
 
MaTreCo disse:
Exemplo: queres imprimir os dados do cliente nº 127

Adodatacontrol1.RecordSource = "select * from clientes where num = " & 127
Adodatacontrol1.Refresh
Datareport1.DataSource = Adodatacontrol1.Recordset
Datareport1.Refresh

Isto saiu-me de cabeça, a sintaxe poderá não ser exactamente esta, mas deverá de bastar para teres uma ideia.

Não será má ideia carregar um recordset inteiro para dentro de um report?!?!?! Ele não vai estar a ocupar duas vezes o espaço na memória?!?!?! Se o recordset tiver montes de registos isso poderá ser um pouco lento (pelo menos em comparação com apenas um registo).


Ricardo MortH2O, se o report designer tiver parametros, mais vale introduzir por este meio. Os parametros funcionam como variaveis (key/value) que te dá para inserires apenas um registo sem te chateares muito.

EDIT: Os recordsets funcionam bem quando crias um "template" para um registo, e ao teres vários o report duplicate os mesmos usando o exemplo que deste para um, como por exemplo uma listagem de produtos...
 
Última edição:
Arh!!! disse:
Não será má ideia carregar um recordset inteiro para dentro de um report?!?!?! Ele não vai estar a ocupar duas vezes o espaço na memória?!?!?! Se o recordset tiver montes de registos isso poderá ser um pouco lento (pelo menos em comparação com apenas um registo).

Isso é o problema que ele tem agora.
O truque é mesmo esse, é que assim, o recordset que ele lhe vai passar só tem mesmo um registo.
 
MaTreCo disse:
Isso é o problema que ele tem agora.
O truque é mesmo esse, é que assim, o recordset que ele lhe vai passar só tem mesmo um registo.

Ok. Pensei que o RecordSet ia inteiro e o select era feito internamente no report...
 
Back
Topo