bmikl59
Messages postés77Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention14 février 2008
-
22 déc. 2005 à 15:14
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
22 déc. 2005 à 17:17
Voila, je souhaite trouver tous les enregistrement d'une table répondant à un crtitère précis (le critère ne porte pas sur la clé primaire de la table).
Pour cela, j'utilise les méthode FindFirst et FindNext (j'utilise des objet DAO en VB6)
Voila le code que j'ai produit :
Set rst = dbDroit.OpenRecordset("droit", dbOpenDynaset)
With rst
.FindFirst (![C001] & " = " & num)
While .NoMatch = False
t = rst.GetRows(1)
Debug.Print t(0, 0)
Debug.Print t(1, 0)
Debug.Print t(2, 0)
Debug.Print t(3, 0)
Debug.Print t(4, 0)
.FindNext (![C001] & " = " & num)
Wend
End With
Ca ne marche pas trés bien (sinon je serai pas la ) mais je ne sais pas quels peuvent être les probleme.
Si quelqu'un maitrise l'utilisation de ces méthodes il est le bienvenu...
Merci à tous
bmikl59
Messages postés77Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention14 février 2008 22 déc. 2005 à 15:37
Bon j'ai modifié mon code ca va un peu mieux
Mais j'ai toujours le meme probleme : si les enrg recherche se suive dans la table il en saute un sur deux. Pourquoi?
Voici le code utilisé :
Set rst = dbDroit.OpenRecordset("droit", dbOpenDynaset)
Dim str As String
Dim more As Booleanstr "C001'" & num & "'"
more = True
With rst
.MoveFirst
While more = True
.FindNext str
If .NoMatch = False Then
t = rst.GetRows(1)
Debug.Print t(0, 0)
Debug.Print t(1, 0)
Debug.Print t(2, 0)
Debug.Print t(3, 0)
Debug.Print t(4, 0)
more = True
Else
more = False
End If
bmikl59
Messages postés77Date d'inscriptionlundi 5 septembre 2005StatutMembreDernière intervention14 février 2008 22 déc. 2005 à 16:56
Ben ca je sais que ca marche mais j'aurai bien voulu eviter l'utilisation du SQL (lui etre tres lent quand bcp d'enrg)
Enfin bon, en attendant de trouver une meilleure méthode je vais rester la dessus.