Verifier si un recordset est null [Résolu]

Signaler
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007
-
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007
-
bonjour,
j'utilise adodb.recordset pour lire dans une base mysql, je souhaite verifier si la requete a retourné une valeur, en d'autre terme si le recordset est vide ou non. j'ai essayé if recordset is nothing mais sans resultat...
si quelqu'un pouvait m'aider ce serait sympa...

16 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Vérifier sur RecordCount si on n'a pas besoin du count est une opération couteuse inutile.

If rst.eof Then EstVide
EOF est positionné dès l'ouverture.

ciao...
BruNews, MVP VC++
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007

miracle!!! j'ai essayer avec rst.BOF est ca marche! donc
if rst.bof then
    c'est vide
else
    fait ce que ta a faire
end if

quelqu'un peu m'expliquer le pourquoi du comment
Messages postés
1
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
16 février 2007

Salut,

Essaie :
if (rst("nom_champ")) <> "" then

Ca marche si tu ne gére pas les retour d'erreur, en effet un recordset null est considéré comme une erreur.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
35
regarde si tu n'as pas une propriété Recorset.Count qui te renverrais le nombre d'enregistrements contenus dans le recordset

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Messages postés
71
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
16 février 2007

Salut!
Do so:
       if IsNull(rst("nom_champ").Value)  Then

OU mieux
if IsNull(rst.Fields(Numero de ton Champs).Value)  Then
Messages postés
71
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
16 février 2007

et verifier si la requete a retourné une valeur on peut ainsi
      If rst.RecordCount > 0 then
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
4
Presque ça Casy, la propriété exacte, c'est Recordset.Recordcount
Et donc, si rst.recordcount =0, c'est que le recordset est vide.
A faire avant toute opération pour être sûr que le reste de ton code ne plantera pas.

Molenn
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007

merci de toutes ses reponses. Je teste tout de suite
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007

j'ai testé rs.recordcount, et il me renvoie systematiquement -1 qu'il y est une valeur ou non!!!
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007

la encore ca ne marche pas rst.eof est a true qu'il y est une valeur ou non! mais ce qui m'etonne le plus c'est que recordcount renvoie systematiquement -1 alors que mes requete fonctionne, avec pres de 100 resultats. je suis debutant, mais la c'est quand meme pas tres compliquer pourtant!!! d'autre idée??
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Tu n'aurais pas une gestion d'erreurs 'douteuse' du genre 'resume next' ou truc de ce genre ???

ciao...
BruNews, MVP VC++
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007

c'est quoi que tu appel une gestion douteuse des erreurs, j'ai pas mis de resume next dans mon code. mais vue mon niveau, c'est pas impossible que j'ai fait n'importe quoi...
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Bizzare seulement le BOF alors que normalement les 2 sont positionnés (BOF et EOF) dès l'ouverture du recordset.

ciao...
BruNews, MVP VC++
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007

bon en tout cas merci a tous pour votre aide, surtout brunews sans quoi je serais encore dans la m.....
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
25
 Bonjour,

Naivement, on peut tester comme:

RsBaseRef.Open "SELECT * FROM " & ........



i=0
Do while not RsBaseRef.EOF
i=1
'ici code
Loop

If i = 0 Then .....



jean-marc
Messages postés
18
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
8 mars 2007

non ce n'est pas exactement ce que je veux JMO, car j'avais besoin de tester si le recordset était vide avant de lancer la boucle do while. merci quand meme...