Nb enregistrements recordset ado

renaud97434 Messages postés 31 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 26 août 2008 - 26 août 2008 à 13:41
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 26 août 2008 à 15:17
bonjour,

après plusieurs lectures de solutions concernant des curseurs qui renvoient un compte =-1 j'ai pu affiner mon recordset tout en aillant toujours un gros problème .
je cherche le nombre d'enregistrement du recordset , sanchant qu'il me renvoie irrémédiablement la valeur 0.
voici le code:

Sub essai2()
Dim i As Long
Dim cnx As ADODB.Connection
Dim rst As ADODB.Recordset


Set cnx = New ADODB.Connection
Set rst = New ADODB.Recordset
i = 0


With cnx
.Provider = "Microsoft.Jet.oledb.4.0"
.ConnectionString = "[file://\\serv_cpta1000\controle_gestion\BASE \\serv_cpta1000\controle_gestion\BASE] REQUETES MUTIX\VUES DECISIONNEL.mdb"
.Open
End With


With rst
.CursorLocation = adUseClient
.Open "SELECT * FROM MUTIX_TD_EFFECTIFS WHERE PC_MOIS=#01/07/2008#", cnx, adOpenStatic, adLockOptimistic
End With


i = rst.RecordCount


Feuil1.Cells(3, 1) = i


rst.Close
cnx.Close


End Sub

donc en utilisant  .cursorlocation = aduseclient le résulstat est passé de -1 à 0.
mais je n'ai pas les 144000 enregistrement que je devrais avoir.

est ce un problème de cachesize?
mon code est il insuffisant pour .recordcount ?
dois effectuer une boucle plutot qu'utiliser le .recordcount.?

je vous remercie pour votre aide.

7 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 août 2008 à 13:52
Essaye

rst.MoveLast
rst.MoveFirst
i = rst.RecordCount

pour voir si ça améliore les choses.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
RENU974 Messages postés 7 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 28 août 2008
26 août 2008 à 14:02
merci pour ton conseil mais il me renvoie uen erreur au niveau de l'instruction 3021:

BOF ou EOF est égal à true ou l'enregistrement actuel a été suprimmé.

si je met un
dowhilenot rst.eof
.movefirst
.movelast
loop

renvoie de valeur=0 rien n'a changé.

as tu une idée ou solution ?
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 août 2008 à 14:50
Salut,

Pour essai, essaye comme cela :

Ssql = "SELECT * FROM MUTIX_TD_EFFECTIFS"

Rst.Open sSql, Cnx, adOpenDynamic, adLockPessimistic

MsgBox Rst.RecordCount

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
renaud97434 Messages postés 31 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 26 août 2008
26 août 2008 à 15:00
avec ta technique

nb d'enregistrement retournés=0 je me demande si les dates doivents être prises dans la selection de cette manière: #date#...

en tout cas dans ces deux cas la valeur du décompte = 0

merci si jamais quelqu'un passe par la et me trouve une solution chapeau!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
26 août 2008 à 15:08
Bonjour,
Petite question :
Dans ta base tes dates sont enregistrées en quel format??? Internationnal ou français???
L'erreur vient peut être de la...

S.L.B.

<hr />*********************************************************************************
<>
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
26 août 2008 à 15:12
Re,

Je me demande si ton problème ne vient pas tout simplement du format de la date dans ta requête...Essaye comme cela comme date : 07/01/2008 (format amércain)..

A+
Exploreur

 Linux a un noyau, Windows un pépin
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 août 2008 à 15:17
Sinon il y a la requette "SELECT COUNT(*) FROM MUTIX_TD_EFFECTIFS WHERE PC_MOIS= #01/07/2008#" qui renverra directement dans la première ( et unique ) colonne de la première (et unique) ligne le nombre d'enregistrement que renverrai la requette normale

---- Sevyc64  (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
Rejoignez-nous