La fonction RECORDCOUNT en vba

Signaler
Messages postés
88
Date d'inscription
mardi 25 mars 2008
Statut
Membre
Dernière intervention
3 juin 2009
-
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Bonsoir à tous;

C'est encore moi  !!

Quelqu'un pourrait il me dire pourquoi le code suivant me retourne toujours la valeur 1, or moi j'ai 5 enregistrement du champ "observation";


Dim SQL As String
Set DB = CurrentDb
Dim myRec As Recordset
Dim var As Integer




SQL = "SELECT  Count([mini projet1].OBSERVATION) AS CompteDeOBSERVATION"
SQL = SQL & " FROM [mini projet1];"




Set myRec = DB.OpenRecordset(SQL)  'ouvrir une table




Me![OBSERVATION].SetFocus    'se deplacer vers la colonne affectation
myRec.MoveLast               'on balaie les enregistrements
myRec.MoveFirst




If myRec.EOF Then
    var = 0


Else
   myRec.MoveFirst
   var = myRec.RecordCount
End If




myRec.Close


MsgBox " Vous avez " & var & "  OBSERVATION(s) dans votre base de données !"


End Sub

Je pense qu'il y a un problème dans le "recordcount" mais comment le résoudre ??

cordialement malbackt

2 réponses

Messages postés
302
Date d'inscription
samedi 24 janvier 2004
Statut
Membre
Dernière intervention
4 février 2011

C'est simple :

Tu ecris :

var = myRec.RecordCount ( tu demandes donc combien d'enregistrement te renvoi ta requète donc un enregistrement (le nombre d'observation))

Pour avoir le résultat de ta requete il faut ecrire

var = myRec!CompteDeOBSERVATION
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
c'est normal que tu n'es qu'un enregistrement car tu fais un count sans group by...
tu n'auras qu'une seule ligne forcément

ce que tu veux c'est pas le nombre de ligne de ta requete mais la valeur du count
donc un myRec.fields("CompteDeOBSERVATION")

oups (pareil que le précédant commentaire... j'avais po vu lol)
-- Pourquoi faire simple quand on peut faire compliquer --