ODBC + ACCESS : problème d'accents

Fermé
Tartopom - 9 déc. 2009 à 16:24
ingenu Messages postés 1 Date d'inscription vendredi 20 septembre 2013 Statut Membre Dernière intervention 20 septembre 2013 - 20 sept. 2013 à 08:08
Bonjour,

je fais appel à vous aujourd'hui car j'ai un souci que je n'arrive pas à résoudre.
J'ai fait un moteur de recherche avec un bête SELECT en fond. Le problème c'est que quand je recherche un mot qui a un accent il ne me le sort pas.
Un exemple vaut mieux qu'un long discours :
J'ai "Céline" dans ma table "personnel", champ "prenom".
Ma requête ressemble à SELECT prenom FROM personnel WHERE prenom LIKE "mavariable%"
Si mavariable = cé ou Cé ou Ce ou ce il ne me trouve pas Céline. :/
Si je tape la même requête directement dans ACCESS ça fonctionne bien (mais bon, ACCESS c'est pas une référence du SQL, ça a le don de m'horripiler).

Après plusieurs recherches sur le net j'ai vu qu'en rajoutant un attribut "COLLATE SQL_Latin1_General_Cp437_CI_AI" à ma requête ça devrait fonctionner. Mais non, j'ai une belle erreur "Microsoft OLE DB Provider for ODBC Drivers erreur '80040e14' Erreur de syntaxe" en gros.

Et là je sèche.

Je m'en remets donc à vous en espérant que vous me sortirez de ce bourbier.

Bonne journée,

et vive MySql ;)

17 réponses

OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
9 déc. 2009 à 16:46
Bonjour,
votre problème ne provient pas de la base de données mais de la où est affiché votre page.
J'ai le cas où je travaille et on a pas trouvé pourquoi !
Jamais un accent ne posera problème dans Access par contre dans MySql je peux vous dire que par expérience c'est la m... justement pour cause d'un problème de Font qui est mal interprété par le moteur de données.
Le collate ne s'applique pas à Access mais plutôt à SQLSERSERVER pour communiquer entre db qui ont une police par défaut différente.
3
Bonjour,

Je relance le sujet. Après des heures à squatter le net à la recherche d'indices j'en conclus aussi que ça ne vient pas d'ODBC mais d'ACCESS. Malheureusement je n'ai pas trouvé de réponses :/
Je pensais à un problème d'encodage des tables mais j'ai rien trouvé pour changer l'encodage. Je n'ai pas vu l'ombre d'un truc qui y ressemblait.
Vive ACCESS, plus j'en fais plus je trouve ça pourri.
Rendez moi mon Mysql T_T
1
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
10 déc. 2009 à 16:54
Si plutôt de dire n'importe quoi ... vous expliquiez plus précisement votre problème, on pourrait peut-être mieux vous aider ! Il n'y a qu'à lire votre call pour voir tout de suite que vous partez avec un appriori sur Access ...
Reprenons depuis le début :
Quelle base de données ? Un lien vers quoi ? Quel type de donnée ?
Quelle langage ?
Un message d'erreur ? Quand ? Après quoi ?

Essayer de voir le problème dans son ensemble. Vous semblez persuader que ce serait donc un problème de Font " ... Après plusieurs recherches sur le net j'ai vu qu'en rajoutant un attribut "COLLATE SQL_Latin1_General_Cp437_CI_AI""
Quelle police se trouve chez l'hébergeur ? Avez-vous vérifier les Region Settings ?
1
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
11 déc. 2009 à 09:26
pour le lien, autant pour moi, je me suis trompé de call.
Relisez votre call du 11 décembre, c'est bien vous et non pas moi qui avez supposé que l'ajout d'un "Collate" pourriez-vous aider !
Quand je vous demande de ne pas dire n'importe quoi c'est en relation directe avec votre critique sur Access.
Ce qui moi m'horripile c'est que très souvent des personnes se mettent à critiquer un produit parce qu'il n'arrive pas à résoudre leur problème, alors que ces mêmes personnes n'ont pas pris connaissance un minimum du produit qu'ils utilisent et cela même, et c'est le comble, dans le cadre professionnel de leurs activités. Dans votre call vous écrivez "mais bon, ACCESS c'est pas une référence du SQL". ... La vérité c'est que vous avez une erreur qui vous énerve et plutôt que d'avouer votre manque de connaissance vous mettez le problème sur le dos du logiciel, vous ne pensez pas ? ;-)
Bref, tout ça ne résout pas votre problème. Dites moi en un peu plus, pour l'instant je sais deux choses :
1) vous utilisez une base Access
2) vous vous y connecter par lien ODBC
3) Via une application ? Avec quel langage ? Pourquoi une connexion ODBC ? Dites-moi en un peu plus.
1

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

Posez votre question
Je viens de changer l'encodage de la page pour voir mais ça ne change rien.
pour moi c'est un souci de la couche ODBC.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
10 déc. 2009 à 09:30
Non plus, le lien ODBC n'est jamais qu'un tuyau dans lequel on dit à une db d'utiliser tel ou tel driver avec un compte. Si vous trouvez dites le moi parce que ça m'intéresse aussi.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
10 déc. 2009 à 17:00
http://www.infos-du-net.com/forum/253695-21-resolu-affichage-accents-site
0
Bonjour,

j'ai du mal à croire c'est vous qui avez écrit le message précédent. D'ailleurs vous me conseillez "Après plusieurs recherches sur le net j'ai vu qu'en rajoutant un attribut "COLLATE SQL_Latin1_General_Cp437_CI_AI"" alors que c'est vous qui m'avez dit 2 posts plus haut que le collate ne fonctionnait que pour SqlServer. Comme votre lien qui n'a rien à voir :/ Comprend pas pourquoi vous me parlez comme ça, il me semble avoir exprimer mon problème de la façon la plus claire possible.
0
Euh oui j'ai une forte aversion envers Access et alors ? quel problème y a t-il à ça ? je gère plus que bien d'autres SGBD et celui là est le plus mauvais (selon moi) que j'ai eu l'occasion de voir, je ne vois pas vraiment où est le problème à manifester mon animosité envers ce logiciel. Oui quand je fais une requête sur 5-6 tables j'hallucine sur les magouilles obligatoires pour pouvoir faire ma requête correctement. La syntaxe est absurde, le sql ne fonctionne pas bien (les JOIN ne fonctionne pas correctement par exemple) et je perds énormément de temps à faire des choses simples qui ne m'aurait pris que le temps de les écrire en SQL pur. Quel mal y a t-il à dénigrer un logiciel que je n'aime pas ? Quand je code en ASP, je peste autant voire plus. malgré tout cela ne reflète pas un piètre niveau dans ce langage.

Bon revenons à nos moutons.
Je travaille sous ACCESS 2007, via ODBC, sur un site intranet d'entreprise sous IIS. Le driver utilisé est "Driver do Access (*.mdb). Dès que j'utilise un accent dans ma requête, ou qu'il est question d'accent dans la table, la requête galère. Je reprends mon exemple : si je tape "ce" ou "cé" ou "Ce" dans mon formulaire de recherche il ne sort pas "Céline" comme résultat.
La requête est lancée via AJAX mais j'ai testé sans et ça ne fonctionne pas quand même. De plus, si ça peut aider, les requêtes fonctionnent correctement quand je les fait sous ACCESS mais plus via ASP (3.0 au passage T_T).
Désolé pour vous si vous êtes un partisan d'ACCESS ;)
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
11 déc. 2009 à 10:20
C'est donc un problème sur une page Web ? Vous dites que vous lancez la requête via Ajax, dans quel langage faites-vous cela ? PHP ?
0
Ouais c'est une page Web. Et je travaille en ASP 3.0 (oui je sais c'est nul mais j'implémente juste un truc déjà fait il y a longtemps).

Pour infi la requête fonctionne quand je la tape dans ACCESS même mais plus lorsque je la lance via ma page web.
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
11 déc. 2009 à 12:12
Et bien je me demande si lien que je t'ai envoyé ne peut pas t'aider ....
http://www.infos-du-net.com/forum/253695-21-resolu-affichage­-accents-site
vous avez tout lu ?
je suis pratiquement sur de mon coup ... le problème vient de l'interprétation web qui est faite.
0
Déjà testé, ça ne fonctionne pas :/
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
11 déc. 2009 à 14:13
pourriez-vous me montrer la partie de code qui indique la connexion et le select svp.
0
Yes.

querystring = Request.Form("queryString")

set objConnection = Server.CreateObject("ADODB.Connection")
objConnection.Open("annu2")

set objRecordset = Server.CreateObject("ADODB.Recordset")

query = "SELECT DISTINCT nom, prenom, mail, telephone, fonction, service, pole, hopital FROM personnel "
query = query & "WHERE nom LIKE '"&querystring&"%' OR prenom LIKE '"&querystring&"%' "
query = query & "OR fonction LIKE '"&querystring&"%' OR service LIKE '"&querystring&"%' "
query = query & "ORDER BY nom, prenom, fonction, service"
objRecordset.Open query, objConnection
0
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 36
22 déc. 2009 à 08:43
Bonjour,
désolé pour mon retour si tard mais j'ai osé prendre quelques jours de congés :-)
Vous en êtes où ?

Quand je lis votre code, il y a un truc qui me parait bizarre :

querystring = Request.Form("queryString")
set objConnection = Server.CreateObject("ADODB.Connection")

objConnection.Open("annu2")

cela devrait plutôt être ceci non ? : objConnection.Open(querystring )
0
ingenu Messages postés 1 Date d'inscription vendredi 20 septembre 2013 Statut Membre Dernière intervention 20 septembre 2013
20 sept. 2013 à 08:08
Bonjour tartopom,
j'ai le meme probleme avec access et caracteres accentues
avez vous eu une solution?
0