cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 27 oct. 2006 à 00:18
Non, pas si tu utilises des boutons "Précédent", "Suivant"...
Il faut que ton Recordset soit toujours "vivant" pour être reconnu
lorsque tu cliques ces boutons et ainsi savoir où tu es rendu dans la
liste des enregistrements trouvés.
Dans certains programmes, je crée un Recordset général déclaré Public
dans un Module. Celui-ci me permet de me promener d'un enregistrement à
un autre partout dans mon programme. Je sais qu'il sera toujours Open.
Ainsi je peux me servir des boutons <<,<,>,>>
Pour d'autres procédures, je crée de nouveaux Recordset qui me servent
"localement". Quand je quitte ces procédures, je les Close.
Ça dépend toujours de la façon dont tu affiches ou te sers des enregistrements (textbox vs grille vs code)
appolofrance
Messages postés46Date d'inscriptionmercredi 8 mai 2002StatutMembreDernière intervention26 mars 20085 24 oct. 2006 à 01:02
Bonjour,
La premiere solution fonctionne mais j' ai mis 3 enregistrements pour exemple
Pour La deuxieme solution :
J' affiche dans textbox et voici le code de Affiche_Champ
Private Sub Affiche_Champ() 'Permet d' afficher les champs
Textmarque.Text = MonRs.Fields("Marque")
Textmodele.Text = MonRs.Fields("Modele")
Texttype.Text = MonRs.Fields("Type")
Textserie.Text = MonRs.Fields("Serie")
end sub
J' essaie dans un bouton nommer cmdsuivant
Do While MonRs.EOF <> True
If MonRs.Fields("Serie") = Textserie.Text Then
Affiche_Champ
Exit Do
Else
MonRs.MoveNext
End If
Loop
J' ai bien mon premier enregistrement, mais clique suivant et rien ne se passe !
Merci
paul
appolofrance
appolofrance
Messages postés46Date d'inscriptionmercredi 8 mai 2002StatutMembreDernière intervention26 mars 20085 25 oct. 2006 à 22:50
Bonjour
Sub cmd_Suivant_Click()
Do While (Not MonRs.EOF ) And (MonRs.Fields("Serie") <> Textserie.Text)
MonRs.MoveNext
If (Not MonRs.EOF) And _
(MonRs.Fields("Serie") = Textserie.Text) Then _
Affiche_Champ 'remplit les texbox
Loop
End Sub
Sa fonctionne mais je n' ais pas les suivants quand "MonRS.Fields = Textserie"
Merci
Paul
appolofrance
Vous n’avez pas trouvé la réponse que vous recherchez ?
appolofrance
Messages postés46Date d'inscriptionmercredi 8 mai 2002StatutMembreDernière intervention26 mars 20085 25 oct. 2006 à 23:47
Bonjour,
J' ai une solution mais en utilisant do Until
Private Sub CmdSuivant_Click()
Do Until MonRs.EOF = True
If MonRs.Fields("Serie") <> Textserie.Text Then
MonRs.MoveNext
Else
Affiche_Champ
MonRs.MoveNext
Exit Do
End If
Loop
end sub
Merci pour votre aide je vais enfin pouvoir terminer le programme !
(Base de donnée access en ado sous VB6)
Paul
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 26 oct. 2006 à 11:57
Si tu veux afficher tes données dans une grille, tu peux utiliser une
boucle. J'utilise Do Until Rs.EOF mais on peut utiliser While
Not...ou autre
Si tu veux afficher dans des textbox, tu ne peux pas vraiment utiliser
de boucles, puisque celle-ci va se terminer sur le dernier
enregistrement trouvé. Il faut donc que tu crées une requête SQL
spécifique à tes besoins et afficher les résultats dans tes texbox un
par un en utilisant des boutons Précédent, Suivant, Dernier, Premier
Style de requête:
"Select * From MaTable Where ChampSéries = '" & Textserie.text & "'"
If Rs.Recordcount > 0 then ' il y a un ou des enregistrements
Affiche_Champ
else
'pas d'enregistrement
End if
Ou peut-être aie-je mal saisi le problème ... (?)
MPi
appolofrance
Messages postés46Date d'inscriptionmercredi 8 mai 2002StatutMembreDernière intervention26 mars 20085 28 oct. 2006 à 16:33
Bonjour,
Je n 'ais pas trouvé, je rage ....
J' ai lu ton texte MPi mais j' ai un soucis
MonRs.Open "select * From Tableportable Where Series = '" & Textserie.Text & "'"
J' ai le Message "Cette opération n' est pas autorisé si l' objet est ouvert". Comment corriger ce probleme ?
Compteur = 0
Do While MonRs.EOF <> True
If MonRs.Fields("Serie") = Textserie.Text Then
Compteur =Compteur +1
Affiche_Champ
If Compteur= 3 Then Exit Do
End If
MonRs.MoveNext
Loop
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 oct. 2006 à 00:24
Soit tu enlèves le Exit Do et tu verras apparaître tous les
enregistrements qui répondent aux critères, (et ça dépend comment
tu gères dans Affiche_Champ)
soit que tu crées des boutons Suivant/Précédent... et là tu mets le MoveNext ou MovePrevious.
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 oct. 2006 à 01:32
Bonsoir tout le monde,
tentes ceci :
Sub cmd_Suivant_Click()
Do While (Not MonRs.EOF ) And (MonRs.Fields("Serie") <> Textserie.Text)
MonRs.MoveNext
If (Not MonRs.EOF) And _
(MonRs.Fields("Serie") = Textserie.Text) Then _
Affiche_Champ
Loop
End Sub
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 24 oct. 2006 à 01:57
après mûre reflexion
Dim Compteur As Integer
Compteur=0
le premier étant affiché au départ avec
MonRs.FindFirst "[Serie] LIKE'" & Textserie.Text & "'"
If NoMatch Then
MsgBox "Aucune occurence"
Else
Affiche_Champ
Compteur=Compteur+1
End If
à chaque Click sur cmd_Suivant_Click
Sub cmd_Suivant_Click()
if Not MonRs.EOF Then MonRs.MoveNext
Do While (Not MonRs.EOF ) And (MonRs.Fields("Serie") <> Textserie.Text)
MonRs.MoveNext
Loop
If (Not MonRs.EOF) And _
(MonRs.Fields("Serie") = Textserie.Text) Then
Affiche_Champ
Compteur=Compteur+1
End If
End Sub