Utilisation non autorisée de Null avec un ADODB.Recordset [Résolu]

Messages postés
34
Date d'inscription
jeudi 9 octobre 2003
Dernière intervention
19 novembre 2007
- 25 janv. 2007 à 11:48 - Dernière réponse :
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 25 janv. 2007 à 13:05
bonjour,

J'ai implémenté ce code (cnx est initialisé ailleur)

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
rst.Open "SELECT NOM, PRENOM FROM CLIENT", cnx
Dim myNom As String
Dim myPrenom As String
myNom = rst("NOM")
myPrenom = rst("PRENOM")


Si j'ai dans ma base, NOM=TOTO et PRENOM non renseigné (donc Null), j'ai une erreur "Utilisation non autorisée de Null"

La base est SQL SERVEUR

Merci
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 25 janv. 2007 à 12:19
3
Merci
Il faut testé si ta valeur est nulle ou pas avant de l'affecter à ta variable :

If not isnull(rst.Fields("PRENOM").value) then Let myPrenom = rst.Fields("PRENOM").Value

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_DARKSIDIOUS
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Dernière intervention
15 novembre 2016
- 25 janv. 2007 à 11:53
0
Merci
Salut,
Je pense que le problème est lié à ta table, ou ton champ doit être déclaré en acceptant une valeur nul(vide), propriété : chaine vide autorisé, mettre oui
A+
Exploreur
Commenter la réponse de cs_Exploreur
Messages postés
34
Date d'inscription
jeudi 9 octobre 2003
Dernière intervention
19 novembre 2007
- 25 janv. 2007 à 12:17
0
Merci
salut,
Dans ma table, j'ai mis null autorisé pour la colonne Prenom. Je peux pas rendre obligatoire la colonne, car elle est rempli avec un chargement de fichier qui ne dépend pas de moi. :(. Je vais essayer de regarder si je peux modifier la requete genre SELECT replace(PRENOM,NUll, "")

merci
Commenter la réponse de cs_opala
Messages postés
34
Date d'inscription
jeudi 9 octobre 2003
Dernière intervention
19 novembre 2007
- 25 janv. 2007 à 12:28
0
Merci
je vais tester ca de suite. La j'avais commencé a faire cette fonction de surcharge.

Public Function rstNull(ByRef rst As ADODB.Recordset, szChaine) As String
On Error GoTo rstNullError
rstNull = rst(szChaine)
Exit Function
rstNullError:
rstNull = ""
End Function


mais c'est assez bourrin
Commenter la réponse de cs_opala
Messages postés
34
Date d'inscription
jeudi 9 octobre 2003
Dernière intervention
19 novembre 2007
- 25 janv. 2007 à 12:39
0
Merci
Public Function rstNull(ByRef rst As ADODB.Recordset, szChaine) As String
On Error GoTo rstNullError
If Not IsNull(rst.Fields(szChaine).Value) Then Let rstNull = rst.Fields(szChaine).Value
Exit Function
rstNullError:
rstNull = ""
End Function
Commenter la réponse de cs_opala
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Dernière intervention
15 novembre 2016
- 25 janv. 2007 à 13:05
0
Merci
Excuse moi de t'avoir mal orienter.

A+
Exploreur
Commenter la réponse de cs_Exploreur
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 25 janv. 2007 à 13:05
0
Merci
Pas besoin d'encapsuler dans une fonction avec une routine de traitement d'erreur : la fonction IsNull te permettra justement de ne pas lever d'erreur même si le champ est null.
Commenter la réponse de cs_DARKSIDIOUS

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.