RecordCount

mulder69 Messages postés 36 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 10 novembre 2010 - 23 oct. 2010 à 18:22
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 1 nov. 2010 à 15:19
Bonjour,

J'ai un petit souci avec un code. j'essaie de récupérer le nombre total d'enregistrement (afin de déterminer le dernier numéro auto d'une table client généré par access)

Voici le code:

cnn.Execute "INSERT INTO CLIENT (Nomcli,PrenomCli) values ('Nom','Prenom')"
RSQL = "SELECT * FROM CLIENT"
Set RS = New ADODB.Recordset
RS.Open RSQL, cnn, adOpenDynamic, adLockOptimistic
Dim TotalEnreg As Integer
TotalEnreg = RS.RecordCount

Le souci, c'est qu'au final, ma variable TotalEnreg contient "-1" et non pas le nombre total d'enregistrement.

Quelqu'un sait-il ou j'ai pu me tromper?


Merci,

Ps: c'est fait 5 ans que j'ai pas pissé une ligne de code alors je suis un peu voir totalement rouillé!! lol

6 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
23 oct. 2010 à 19:16
Bonjour,

Tu utilises Access ou SQL Server ?
J'ai eu ce problème sur un projet, avec Access, j'avais le bon total, mais avec SQL Server, j'ai dû compter moi même.

Pour rappel, Il y a aussi :
SELECT Count(*) FROM MaTable WHERE Macondition
Et dans l'unique donnée retournée, tu as le nombre de ligne.

Mon site
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 oct. 2010 à 13:24
Salut

Ta méthode est correcte, même si, comme le dit NHenry, relire toutes les données pour n'en récupérer que la quantité, est un peu du gaspillage.

Essaye avec cette syntaxe :
    Set RS = New ADODB.Recordset
    RS.CursorLocation = adUseClient
    RS.Open RSQL, cnn, adOpenStatic, adLockReadOnly

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
mulder69 Messages postés 36 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 10 novembre 2010
27 oct. 2010 à 21:07
Bonsoir,

Merci pour vos deux réponses (et désolé si je réponds si tard, j'étais en déplacement)

j'ai testé les deux méthodes:

avec celle d'Henry, j'ai eu qque soucis parceque je ne me rappelle plus comment on balance le contenu unique d'un recordset dans une variable (shameon me!!!)

par contre, pas de souci avec la méthode de jack, ca fonctionne, meme si je ne comprends absolument pas en quoi consiste la ligne "rs.cursorlocation = aduseclient"

En fait, je me demande quelle est la façon la plus propre de récupérer le numauto crée par Access après un insert into.

Beaucoup parle de @@identity dans la requête, mais beaucoup critique aussi cette méthode.

mais je suis d'accord: tout compter pour juste obtenir le dernier numéro crée, c'est peut etre pas le plus propre à faire...
0
mulder69 Messages postés 36 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 10 novembre 2010
27 oct. 2010 à 21:11
c'est ce qu'il me semblait : tout fonctionne à condition que je ne supprime aucune ligne de ma table Client.

si j'en supprime une, je n'obtiendrai plus le dernier numéro crée lol(ce qui est logique lol)..

Vais craquer, je sais pas comment faire...
0

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

Posez votre question
ajaksow Messages postés 1 Date d'inscription jeudi 28 octobre 2010 Statut Membre Dernière intervention 1 novembre 2010
1 nov. 2010 à 13:46
slt tous les fans de vbfrance vraiment ses un grand plaisir de découvrire le site.
grace ace site je pourai faire keke chose
mais j'ai un probleme de connexion de ma base en access sur ADO a chaque foi ke je tante on me di ke le foramat mdb nai pas reconu
aidez mois.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
1 nov. 2010 à 15:19
ajaksow, merci de poster ta question dans un nouveau sujet, stp :)
Et si tu veux de l'aide, montre aussi comment tu t'y connectes (dans le sujet que tu aura créé bien entendu.

Mon site
0
Rejoignez-nous