Verifier si un recordset est null

Résolu
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007 - 16 févr. 2007 à 12:50
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007 - 16 févr. 2007 à 16:33
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 févr. 2007 à 14:37
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++
3
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007
16 févr. 2007 à 15:37
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
3
jester666 Messages postés 1 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 16 février 2007
16 févr. 2007 à 13:11
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.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
16 févr. 2007 à 13:23
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 #
0

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

Posez votre question
yuri1961 Messages postés 71 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 16 février 2007
16 févr. 2007 à 13:24
Salut!
Do so:
       if IsNull(rst("nom_champ").Value)  Then

OU mieux
if IsNull(rst.Fields(Numero de ton Champs).Value)  Then
0
yuri1961 Messages postés 71 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 16 février 2007
16 févr. 2007 à 13:32
et verifier si la requete a retourné une valeur on peut ainsi
      If rst.RecordCount > 0 then
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
16 févr. 2007 à 13:35
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
0
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007
16 févr. 2007 à 14:31
merci de toutes ses reponses. Je teste tout de suite
0
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007
16 févr. 2007 à 14:36
j'ai testé rs.recordcount, et il me renvoie systematiquement -1 qu'il y est une valeur ou non!!!
0
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007
16 févr. 2007 à 15:31
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??
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 févr. 2007 à 15:34
Tu n'aurais pas une gestion d'erreurs 'douteuse' du genre 'resume next' ou truc de ce genre ???

ciao...
BruNews, MVP VC++
0
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007
16 févr. 2007 à 15:40
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...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 févr. 2007 à 15:41
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++
0
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007
16 févr. 2007 à 15:42
bon en tout cas merci a tous pour votre aide, surtout brunews sans quoi je serais encore dans la m.....
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
16 févr. 2007 à 16:08
 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
0
wouldsmina Messages postés 18 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 8 mars 2007
16 févr. 2007 à 16:33
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...
0
Rejoignez-nous