Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1788 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème de RecordSet avec des champs vides [Résolu merci drasche]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de RecordSet avec des champs vides [Résolu merci drasche]

n°558866
R3g
fonctionnaire certifié ITIL
Posté le 04-11-2003 à 17:57:10  profilanswer
 

J'ai une appli qui se connecte à une base access via ADO.
je fais une requête sur une table qui me ramène un enregistrement. J'utilise les champs de cet enregistrement pour remplir des textboxs. Le problème est que quand l'un des champs de l'enregistrement dans la base est vide, tous les champs du recordset qui m'est retourné sont vides. Comment faire ?


Message édité par R3g le 06-11-2003 à 12:53:42

---------------
Au royaume des sourds, les borgnes sont sourds.
mood
Publicité
Posté le 04-11-2003 à 17:57:10  profilanswer
 

n°558895
Mr yvele
yvele n'est plus.
Posté le 04-11-2003 à 18:22:23  profilanswer
 

[:dawa]
 
exellent tu fais du ACCESS via ADO sous VB!
comme moi! [:dawa]
 
par contre je peux pas t'aider.. chez moi quand un champ été vide, ça me faisait planter l'appli.. :/


---------------
yvele n'est plus.
n°558896
R3g
fonctionnaire certifié ITIL
Posté le 04-11-2003 à 18:23:56  profilanswer
 

Mr yvele a écrit :

[:dawa]
 
exellent tu fais du ACCESS via ADO sous VB!
comme moi! [:dawa]
 
par contre je peux pas t'aider.. chez moi quand un champ été vide, ça me faisait planter l'appli.. :/

Bon ben deja je peux me dire que ça pourrait être pire :D


---------------
Au royaume des sourds, les borgnes sont sourds.
n°558905
drasche
Posté le 04-11-2003 à 18:33:42  profilanswer
 

montre ta requête, ça m'a l'air bien zarb ton truc.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°558907
R3g
fonctionnaire certifié ITIL
Posté le 04-11-2003 à 18:41:21  profilanswer
 

mon code ressemble à peu près à ça :

Code :
  1. Dim con as ADODB.Connection
  2. Set con = db.cnx
  3. Dim res as ADODB.RecordSet
  4. set res = new ADODB.RecordSet
  5. Dim sql as String
  6. sql = "SELECT * FROM TPROCESS WHERE PROCESSNAME = '" & name & "'"
  7. res.open sql, con
  8. with res
  9.     .MoveFirst
  10.     For i = 0 To 8
  11.         if .Fields(i).Value <> Null Then Text1(i).Text = .Fields(i).Value
  12.     Next
  13.     .Close
  14. End With


Un seul des champs retournés par la requête est vide (vérifié dans la bdd), mais toutes mes textbox sont vides....


---------------
Au royaume des sourds, les borgnes sont sourds.
n°558909
drasche
Posté le 04-11-2003 à 18:44:17  profilanswer
 

1) si tu veux faire un test sur la valeur Null, préfère la fonction IsNull.
2) il se peut qu'une erreur interrompt l'exécution de ce code, t'as  essayé l'exécution en pas à pas?
3) je suppose que c'est la requête que tu as essayée directement?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°558913
R3g
fonctionnaire certifié ITIL
Posté le 04-11-2003 à 18:47:26  profilanswer
 

drasche a écrit :

1) si tu veux faire un test sur la valeur Null, préfère la fonction IsNull.
2) il se peut qu'une erreur interrompt l'exécution de ce code, t'as  essayé l'exécution en pas à pas?
3) je suppose que c'est la requête que tu as essayée directement?

1) Ok
2) Si je ne teste pas le Null, j'ai une erreur au moment d'affecter la valeur. Comme je n'ai plus l'erreur maintenant, je pensais que ça tournait. Je vais essayer.
3) C'est à dire ?


---------------
Au royaume des sourds, les borgnes sont sourds.
n°558920
drasche
Posté le 04-11-2003 à 18:52:31  profilanswer
 

En fait, le Null ne peut être associé qu'à des variables de type Variant (c'est le cas de la propriété Value mais pas de la propriété Text qui est de type String). Si t'essaies quand même: plantage. On ne fait jamais de comparaison avec Null mais on passe par la fonction IsNull (qui prendra la propriété .Value en paramètre), cfr FAQ.
 
Pour la requête, ben l'exécuter directement en mode GUI et voir le résultat de manière plus pratique avant de le faire dans le code ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°558925
R3g
fonctionnaire certifié ITIL
Posté le 04-11-2003 à 18:55:59  profilanswer
 

drasche a écrit :

En fait, le Null ne peut être associé qu'à des variables de type Variant (c'est le cas de la propriété Value mais pas de la propriété Text qui est de type String). Si t'essaies quand même: plantage. On ne fait jamais de comparaison avec Null mais on passe par la fonction IsNull (qui prendra la propriété .Value en paramètre), cfr FAQ.
 
Pour la requête, ben l'exécuter directement en mode GUI et voir le résultat de manière plus pratique avant de le faire dans le code ;)

D'accord ,je le note.
La requête oui c'est bien celle là que j'ai passé dans Access.
Bon ; prochain épisode demain.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°559104
MagicBuzz
Posté le 04-11-2003 à 22:19:51  profilanswer
 

Remplace :
 
if .Fields(i).Value <> Null Then Text1(i).Text = .Fields(i).Value
 
Par :
 
Text1(i).Text = "" & .Fields(i).Value
 
Et zou :ange:
 
Quand VB fait chier, faut être plus con que lui ;)

mood
Publicité
Posté le 04-11-2003 à 22:19:51  profilanswer
 

n°559117
Mr yvele
yvele n'est plus.
Posté le 04-11-2003 à 22:27:13  profilanswer
 

MagicBuzz a écrit :


Text1(i).Text = "" & .Fields(i).Value


 
 
 [:mcwimpy4]  
 
 
[:meganne]
 
 
 
pas con!!! :jap:  
 

MagicBuzz a écrit :


Quand VB fait chier, faut être plus con que lui ;)


 
bien dit [:prosterne]


Message édité par Mr yvele le 04-11-2003 à 22:27:30
n°560800
R3g
fonctionnaire certifié ITIL
Posté le 06-11-2003 à 12:53:14  profilanswer
 

Bon en fait avec IsNull() ça marche.


---------------
Au royaume des sourds, les borgnes sont sourds.
n°560805
drasche
Posté le 06-11-2003 à 13:15:12  profilanswer
 

[:cupra] :jap:


Message édité par drasche le 06-11-2003 à 13:15:22

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°605445
4get9
C'est clair !
Posté le 08-01-2004 à 11:11:21  profilanswer
 

y'a encore plus simple :
 
Text1(i).Text = nz( .Fields(i).Value , "" )
 
nz est une fonction qui teste si la valeur est nulle et dans ce cas remplace la valeur Null par ce qu'on lui passe en paramètre (ici : "" )
 
nz sert jutement à éviter ce genre de problème.
 
     4get9

n°605455
skeye
Posté le 08-01-2004 à 11:28:26  profilanswer
 

4get9 a écrit :

y'a encore plus simple :
 
Text1(i).Text = nz( .Fields(i).Value , "" )
 
nz est une fonction qui teste si la valeur est nulle et dans ce cas remplace la valeur Null par ce qu'on lui passe en paramètre (ici : "" )
 
nz sert jutement à éviter ce genre de problème.
 
     4get9


Je connaissais pas, tiens...noté! :jap:


---------------
Can't buy what I want because it's free -
n°605719
Guillaume1​er
I need Ammo !
Posté le 08-01-2004 à 16:53:31  profilanswer
 

nz ==> mot clé introuvable ?

n°605845
4get9
C'est clair !
Posté le 08-01-2004 à 20:49:59  profilanswer
 

Citation :

nz ==> mot clé introuvable ?


 
nz est une instruction de base d'Access !
 
il se peut qu'elle n'existe pas dans VB
 
A mon avis Nz etait indispensable à Access, bcp de pb sont résolu avec Nz, avec l'habitude on met partout ! :-D
 
pour info Nz peux être très utile,  
exemple : pour un tri de date si on veux que les champs non renseignés soient en dernier il suffit de faire : nz(Champs_Date,"31/12/2089" ) on est pas obligé de mettre "" comme paramètre.

n°605875
drasche
Posté le 08-01-2004 à 21:34:56  profilanswer
 

ah ouais clairement c'est du Access, je connaissais même pas :D
m'étonne que mon chef n'en ait jamais fait mention vu comment il encensce Access [:meganne]
 
edit: au fait le bricolage de MagicBuzz j'aime pas trop parce que tout ce qui a trait aux chaînes de caractères bouffent un temps fou en VB (mon chef en a appris quelque chose [:joce])


Message édité par drasche le 08-01-2004 à 21:36:23

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Problème de RecordSet avec des champs vides [Résolu merci drasche]

 

Sujets relatifs
[VB] problème erreur HELP[MySQL-résolu] apprécierais aide sur requete
[ASP/SQL] probleme de Select. [Rezolu]pb avec CRecordset, Ctime et Update() [RESOLU]
Calculette Lex + Yacc | probleme avec des strutures | oK[C++/GP32] Problème de conversion invalide
[Résolu]Probleme de traitement de chaine de caractereRecordset vers DOM
Probleme de taille avec ZipInputStream 
Plus de sujets relatifs à : Problème de RecordSet avec des champs vides [Résolu merci drasche]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR