Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access

VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.

Réponse
 
Outils de la discussion
Vieux 16/07/2008, 14h56   #1 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 993
Par défaut Utilisation incorrecte du nul

Bonjour, je voudrais savoir si il existe un moyen radical d'éviter ce message d'erreur???

En fait il apparait par exemple quand je veut afficher un champ d'une table dans un textBox ou autre, par exemple:

Code :
sql = "select * from tbl_Intervention where ID_intervention = " & id_Intervention & ";"
Set oRst = odb.OpenRecordset(sql, dbOpenDynaset)
 
ID_Diagnostic = oRst.Fields("ID_Diagnostic").Value
Et la sa bloque sur
Citation:
ID_Diagnostic = oRst.Fields("ID_Diagnostic").Value
Et sa me met: Utilisation incorecte du nul.

J'ai bien une solution qui serait de faire:

Code :
If IsNull(oRst.Fields("ID_Diagnostic").Value) Then
ID_Diagnostic = ""
Else
ID_Diagnostic = oRst.Fields("ID_Diagnostic").Value
End If
Mais sachant que j'ai plus de 70 formulaires sa me parâit un peu lourd de le faire à chaque fois!!!

Mais si il n'existe pas d'autres solutions je vais le faire. Mais si quelqu'un sait s'y prendre autrement et simplement, je suis preneur!!!
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h06   #2 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

avec la fonction Nz()
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h14   #3 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 993
Par défaut

et dans mon cas quelle est la syntaxe de cette fonction?
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h15   #4 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 993
Par défaut

J'ai vu sa:

Citation:
Nz(variant, [valeur-si-null])
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h18   #5 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, 0)
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h20   #6 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 993
Par défaut

Oui d'accord sa remplace le IF en fait!

Mais il faut quand même que je place ce code sur chacune de mes variables... OK bon ba si il n'y a rien de plus rapide je vais prendre sa c'est quand même plus rapide que les If...

Merci à toi
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h22   #7 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 993
Par défaut

Et est ce que je peut mettre:

Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, "")
Ou c'est pareil que

Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, 0)
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h23   #8 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

et bien, c'est fait pour ça... Pas d'autre solution que celle d'y penser en codant
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h24   #9 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

Citation:
Envoyé par moilou2 Voir le message
Et est ce que je peut mettre:

Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, "")
Ou c'est pareil que

Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, 0)
Nan, ce n'est pas pareil, tout dépend du format de ta variable; tu ne peuxpas mettre "" dans un integer, par exemple...
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h30   #10 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 993
Par défaut

OK donc la soluce, c'est de soit mettre:

Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, "")
Quand c'est des string

Et de mettre

Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, 0)
Quand c'est des integer

Ou de mettre

Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, 0)
Que ce soit des integer ou des string
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h38   #11 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

ben, faut quand même faire attention à se que tu veux voir ensuite dans ta bdd... parfois, tu peux mettre
Code :
ID_Diagnostic = Nz(oRst.Fields("ID_Diagnostic").Value, "Null")
pour renseigner la valeur Null ds ta Bdd, pour une String...
c'est à toi de voir ce qui est le plus adapté.
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h39   #12 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 993
Par défaut

et pour une date alors?
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h40   #13 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

Pour une date, idem: la valeur Null est adaptée
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h48   #14 (permalink)
Débutant(e)
 
Date d'inscription: décembre 2007
Messages: 993
Par défaut

Merci beaucoup
moilou2 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 16/07/2008, 15h54   #15 (permalink)
Membre éprouvé
 
Date d'inscription: septembre 2007
Localisation: Comtois, rends-toi, Neni ma Foi!!
Âge: 29
Messages: 440
Par défaut

Pense au tag "Résolu"
__________________
6ril25



"Par trois méthodes nous pouvons apprendre la sagesse : d'abord, par la réflexion qui est la plus noble; en second lieu, par l'imitation, qui est la plus facile; et troisième, par l'expérience, qui est la plus amère." Confucius
6ril25 est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide