type de données incompatibles dans l'expression du critère
Le
Davy Crockett

Bonjour,
Dans Access 2007 J'exécute la requete suivante :
"SELECT racinecompte([F1]) AS mycpte, filtreN.F2 FROM filtreN WHERE
racinecompte([F1])='467'"
où la fonction racinecompte correspond au code suivant :
Dim mytab(50)
Dim compte As String
Dim nbchaine As Long
nbchaine = Len(texte)
j = 0
For i = 1 To nbchaine
mytab(i) = Mid(texte, nbchaine - i + 1, 1)
Next i
For i = 1 To nbchaine
If j = 0 Then
If mytab(i) <> 0 Then
compte = mytab(i) & compte
j = 1
ElseIf i = nbchaine - 2 And mytab(i) = 0 Then
compte = mytab(i) & compte
j = 1
End If
Else
compte = mytab(i) & compte
End If
Next i
racinecompte = compte
A l'exécution de la requete, j'ai le message suivant :
type de données incompatibles dans l'expression du critère
Je ne vois pas ce qui provoque une telle erreur. Pourriez vous
m'éclairer ?
Merci
Dans Access 2007 J'exécute la requete suivante :
"SELECT racinecompte([F1]) AS mycpte, filtreN.F2 FROM filtreN WHERE
racinecompte([F1])='467'"
où la fonction racinecompte correspond au code suivant :
Dim mytab(50)
Dim compte As String
Dim nbchaine As Long
nbchaine = Len(texte)
j = 0
For i = 1 To nbchaine
mytab(i) = Mid(texte, nbchaine - i + 1, 1)
Next i
For i = 1 To nbchaine
If j = 0 Then
If mytab(i) <> 0 Then
compte = mytab(i) & compte
j = 1
ElseIf i = nbchaine - 2 And mytab(i) = 0 Then
compte = mytab(i) & compte
j = 1
End If
Else
compte = mytab(i) & compte
End If
Next i
racinecompte = compte
A l'exécution de la requete, j'ai le message suivant :
type de données incompatibles dans l'expression du critère
Je ne vois pas ce qui provoque une telle erreur. Pourriez vous
m'éclairer ?
Merci
Rajoute et exécute ce code et dis-nous ce que cela donne :
Sub Test
MsgBox TypeName(racinecompte("4670000")) & vbcrlf & _
racinecompte("4670000")
End Sub
Davy Crockett a écrit :
Ca donne :
string
467
Bonjour,
est ce que F1 est également de type text ?
@+
Je pense que pour 1 enregistrement au moins de la table FiltreN, le
champ F1 est Null.
Que se passe-t-il si tu modifies le sql en :
SELECT racinecompte([F1]) AS mycpte, filtreN.F2 FROM filtreN WHERE
racinecompte([F1])='467' and not isnull(F1);
Davy Crockett a écrit :
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr