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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #18352391
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




Davy Crockett
Le #18371091
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
Fabien
Le #18374431
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 ?
@+
Eric
Le #18374711
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
Publicité
Poster une réponse
Anonyme