Pb de conversion....

Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006 - 6 mai 2004 à 13:20
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006 - 6 mai 2004 à 16:22
Bonjour, voilà mon problème :
j'utilise ASP avec une base de donnée Access.
Lorsqu'un utilisateur se connecte (après s'être identifié), je met des information dans un cookie (son identifiant qui est un entier).
Lorsque je réutilise cette variable dans une requête, j'ai l'erreur suivante :
"Type de données incompatible dans l'expression du critère."

Je sais que cela vient du type de ma donnée dans la base de données.
Lorsque je mets l'identifiant de l'utilisateur en tant que texte et que je récupère la valeur dans le cookie sans la convertir, il n'y a aucun problème.
C'est lorsque je mets l'identifiant en tant qu'entier que ca m****. J'ai bien essayé de convertir la valeur du cookie (avec cint(), puis clng() et cdbl()) mais rien n'y fait, la valeur est convertit mais l'erreur est tjrs là :-(
Si quelqu'un pouvais me dire comment convertir ma variable en entier compatible avec le type de la donnée Access.
Peut-être que j'ai mal paramétré le type de la donnée sous Access (c'est possible) mais je ne trouve pas l'erreur...
J'ai mis :
- Type de donnée : Numérique
- Taille du champ : Entier (j'ai aussi testé Entier long)
- Format : Nombre général
- Décimales : 0
- Masque de saisie : 'vide'
- Légende : 'vide'
- Valeur par défaut : 0
- Valide si : 'vide'
- Message si erreur : 'vide'
- Null interdit : Non
- Indexé : Non

Je vous demande donc quelques conseils pour arreter cette prise de tête inutile...

Partagez votre savoir :-)

7 réponses

cs_Bud Messages postés 224 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 14 juillet 2006
6 mai 2004 à 13:45
Montre ta requête.
0
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006
6 mai 2004 à 14:39
Voici ma requête (qui marche quand id_emp est de type texte) :
<%
id = Request.Cookies("cookie_id")
SQL="SELECT * FROM congés,employés
WHERE employés.id_emp=congés.id_emp
AND employés.id_emp='"&id&"'"
...
%>
où 'cookie_id' contient l'identifiant de l'utilisateur,mais ca vous l'auriez compris je pense :o)

Voici la même requete lorsque l'identifiant est de type entier dans la base (c'est la que j'ai l'erreur)
<%
num = Request.Cookies("cookie_id")
id=cint(num)
SQL="SELECT * FROM congés,employés
WHERE employés.id_emp=congés.id_emp
AND employés.id_emp= '"&id& "'"
...
%>
j'ai aussi essayer :
- id=clng(num)
- id=cdbl(num)
mais sans résultat :-(

La requête est bonne puisque ca marche avec en type 'texte'...
Je pense pluto que cela vient des parametre du type donnée sous Access...

Partagez votre savoir :-)
0
cs_Bud Messages postés 224 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 14 juillet 2006
6 mai 2004 à 14:56
... AND employés.id_emp=" & cLng(id) & ""
par contre tu me permets de sauter au mur en voyant des variables avec des accents...
0
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006
6 mai 2004 à 16:10
Désolé de t'avoir fais sauté au mur, tu peux en redescendre car j'ai rectifié cela...
Trève de plaisanterie,déjà merci de répondre aussi vite mais cela ne marche toujours pas...
Pourtant quand j'enregistre l'id de l'employé dans la base de donnée j'utilise exactement le même typeque pour le récupérer a savoir :

- Enregistrement :
id = Request.Cookies("cookie_id")
SQL="SELECT * FROM conges"
Set RS = server.createobject("ADODB.Recordset")
RS.Open SQL,strConnexion , 3, 3
RS.addnew
RS("id_emp")=clng(id)
RS.update

et donc pr le récupérer :
id = Request.Cookies("cookie_id")
SQL_a="SELECT * FROM conges WHERE conges.etat='Attente...' AND conges.id_emp='"&clng(id)&"'"
Set demande_absence = server.createobject("ADODB.Recordset")
demande_absence.Open SQL_a,strConnexion , 3, 3

Partagez votre savoir :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006
6 mai 2004 à 16:16
Désolé si je te parait ignorant mais je débute en ASP...

Partagez votre savoir :-)
0
cs_Bud Messages postés 224 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 14 juillet 2006
6 mai 2004 à 16:17
Désolé, mais t'as pas vu ma modif...

conges.id_emp="&clng(id)&""

En effet, le gros problème vient du fait que ton champ est numérique, donc il ne faut pas mettre ta variable entre ' qui eux sont réservés aux champs de type texte.
0
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006
6 mai 2004 à 16:22
Ok,j'avais pas fais attention...
C'est bon maintenant ca marche,je te remercie de ton aide rapide et précieuse.
A bientot je pense ;o)

Partagez votre savoir :-)
0
Rejoignez-nous