Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

4 réponses
Avatar
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

4 réponses

Avatar
Michel__D
Bonjour,

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 :
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




Avatar
Davy Crockett
Michel__D avait écrit le 10/01/2009 :

Rajoute et exécute ce code et dis-nous ce que cela donne :

Sub Test
MsgBox TypeName(racinecompte("4670000")) & vbcrlf & _
racinecompte("4670000")
End Sub




Ca donne :
string
467
Avatar
Fabien
Davy Crockett a écrit :
Michel__D avait écrit le 10/01/2009 :

Rajoute et exécute ce code et dis-nous ce que cela donne :

Sub Test
MsgBox TypeName(racinecompte("4670000")) & vbcrlf & _
racinecompte("4670000")
End Sub




Ca donne :
string
467




Bonjour,
est ce que F1 est également de type text ?
@+
Avatar
Eric
Bonjour,

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 :
Michel__D avait écrit le 10/01/2009 :

Rajoute et exécute ce code et dis-nous ce que cela donne :

Sub Test
MsgBox TypeName(racinecompte("4670000")) & vbcrlf & _
racinecompte("4670000")
End Sub




Ca donne :
string
467





--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr