Verifier si un recordset est null [Résolu]

wouldsmina 18 Messages postés lundi 2 juin 2003Date d'inscription 8 mars 2007 Dernière intervention - 16 févr. 2007 à 12:50 - Dernière réponse : wouldsmina 18 Messages postés lundi 2 juin 2003Date d'inscription 8 mars 2007 Dernière intervention
- 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...
Afficher la suite 

16 réponses

Répondre au sujet
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 16 févr. 2007 à 14:37
+3
Utile
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++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BruNews
wouldsmina 18 Messages postés lundi 2 juin 2003Date d'inscription 8 mars 2007 Dernière intervention - 16 févr. 2007 à 15:37
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de wouldsmina
jester666 1 Messages postés mardi 28 décembre 2004Date d'inscription 16 février 2007 Dernière intervention - 16 févr. 2007 à 13:11
0
Utile
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.
Commenter la réponse de jester666
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 16 févr. 2007 à 13:23
0
Utile
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 #
Commenter la réponse de cs_casy
yuri1961 71 Messages postés jeudi 16 juin 2005Date d'inscription 16 février 2007 Dernière intervention - 16 févr. 2007 à 13:24
0
Utile
Salut!
Do so:
       if IsNull(rst("nom_champ").Value)  Then

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

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
wouldsmina 18 Messages postés lundi 2 juin 2003Date d'inscription 8 mars 2007 Dernière intervention - 16 févr. 2007 à 15:40
0
Utile
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...
Commenter la réponse de wouldsmina
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 16 févr. 2007 à 15:41
0
Utile
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++
Commenter la réponse de BruNews
wouldsmina 18 Messages postés lundi 2 juin 2003Date d'inscription 8 mars 2007 Dernière intervention - 16 févr. 2007 à 15:42
0
Utile
bon en tout cas merci a tous pour votre aide, surtout brunews sans quoi je serais encore dans la m.....
Commenter la réponse de wouldsmina
cs_JMO 1838 Messages postés jeudi 23 mai 2002Date d'inscription 1 avril 2018 Dernière intervention - 16 févr. 2007 à 16:08
0
Utile
 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
Commenter la réponse de cs_JMO
wouldsmina 18 Messages postés lundi 2 juin 2003Date d'inscription 8 mars 2007 Dernière intervention - 16 févr. 2007 à 16:33
0
Utile
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...
Commenter la réponse de wouldsmina

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.