Invalid use of Null dans ADO

cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 11 oct. 2005 à 10:08
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 - 11 oct. 2005 à 10:40
Bonjour,

j'ai la fonction suivante:

Function pragmaint3(sourceA As String) As String
Dim cpragma As New ADODB.Connection
Dim rpragma18 As New ADODB.Recordset, rpragma19 As New ADODB.Recordset


cpragma.Provider = "Microsoft.Jet.OLEDB.4.0"
cpragma.ConnectionString = "C:\pragma.mdb"Set rpragma18 New ADODB.Recordset: Set pragma18 New ADODB.Recordset
cpragma.Open
rpragma18.Open "SELECT DISTINCT Field8 FROM pragma1", cpragma
rpragma18.MoveFirst
rpragma19.Open "SELECT DISTINCT Field9 FROM pragma1", cpragma
rpragma19.MoveFirst
If rpragma18.RecordCount <> 0 And rpragma19.RecordCount <> 0 Then
Do While Not rpragma18.EOF
Do While Not rpragma19.EOF
modele = sourceA Like mot2 & rpragma18(0) & " " & rpragma19(0) & " " & "*"
If modele = True Then
msgbox "ok"
pragmaint3 = rpragma18(0) & " " & rpragma19(0)
Exit Function
Else: pragmaint3 = 0
End If
rpragma19.MoveNext
Loop
rpragma19.MoveFirst: rpragma18.MoveNext
Loop
End IfSet rpragma18 Nothing: Set rpragma19 Nothing
End Function

La base qui est réferencée est constituée de chaine de caractères, mais certaines cellules sont vides. Il semble que dans ce cas précis j'ai le message "invalid use of null", ce que j'interprète par le fait que la fonction retourne une chaine et que si la chaine est vide, j'ai un "Null" qui est incompatible avec la déclaration "string" de la fonction. D'ailleurs, en remplissant ces cellules vides dans la base avec du texte, ca marche.
je me souviens vaguemment d'une instruction :
iif is null ... replace "", " "
est-ce la seule solution ?
y'a-t-il une solution dans la requête ?
merci à vous

1 réponse

cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
11 oct. 2005 à 10:40
j'ai bien cette solution-ci:
If IsNull(rpragma18(0)) Then Exit Function
qui marche

mais je voudrais être sûr que j'ai bien compris le problème
0
Rejoignez-nous