Les Allergies
Alimentaires
Posez votre question Signaler

Pb en vb+datareport

oussama - Dernière réponse le 11 juin 2008 à 20:35
Bonjour,
j'ai un datareport qui va se charger à partir d'une table "Client".voila le code:
Private Sub DataReport_Initialize()
Dim db As Connection
Set db = New Connection
db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=C:\projet07.mdb;"
Set ado = New Recordset
ado.Open "SELECT * FROM Client", db, adOpenStatic, adLockOptimistic
Do While Not ado.EOF
Liste_clt.Sections("Section1").Controls("label6").Caption = ado.Fields("code_client")
Liste_clt.Sections("Section1").Controls("label7").Caption = ado.Fields("nom_client")
Liste_clt.Sections("Section1").Controls("label8").Caption = ado.Fields("prenom_client")
Liste_clt.Sections("Section1").Controls("label9").Caption = ado.Fields("code_type")
ado.MoveNext
Loop
End Sub
le pb c'est que le data report ne m'affiche que la dernier enregistrement.
kelk1 peut m'aider?merci
Lire la suite 

Pb en vb+datareport »

2 réponses
Réponse
+0
moins plus
le problème c que vous êtes indiqué seulement le premier ligne de la liste dans la boucle et toutes les enregestrement sont affichées dans la même ligne alors que la derniere enregestrement reste affichée seule.

il faut faire un variable de conteur par example:

au demarage vous indique un variable

dim varcount


dans la procedure tu va entrer la valeur 1 pour ce variable

Private Sub DataReport_Initialize()
Dim db As Connection
varcount=1
et dans la boucle faire au lieu de section1 enter le variable varcount:

ado.MoveFirst
Do While Not ado.EOF
Liste_clt.Sections("varcount").Controls("label6").Caption = ado.Fields("code_client")
Liste_clt.Sections("varcount").Controls("label7").Caption = ado.Fields("nom_client")
Liste_clt.Sections("varcount").Controls("label8").Caption = ado.Fields("prenom_client")
Liste_clt.Sections("varcount").Controls("label9").Caption = ado.Fields("code_type")
ado.MoveNext
varcount=varcount + 1
Loop
End Sub


je ne suis pas sûr de cette methode, et bon chance
Ajouter un commentaire
Réponse
+0
moins plus
S'il y a une similitude avec DAO que je maîtrise mieux de ADO, je pense que ton problème vient du fait que ton recordset n'est pas rempli à l'ouverture. Il fau opérer comme suit :
1°/ - tester que ton recordset n'est pas vide si non tu auras un msg d'erreur avec les instructions qui suivent
if not MonRst.BOF then ' Un rst non vide se positionne à l'ouverture sur le 1er enregistrement d'où la propriété .BOF est égale à FALSE
2°/ - remplir ton recordset
MonRst.movelast ' c'est ce parcourt du curseur vers la fin puis vers le début qui permet de remplir le recordset
MonRst.MoveFirst
end if
Mes encouragements et mes meilleures salutations
Izeg
Ajouter un commentaire
Ce document intitulé « pb en vb+datareport » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?