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

Probleme Access

7 réponses
Avatar
Hotmerlino
Bonjour,

Je travaille avec ACCESS 2000 en FR

Je dois creer une table qui doit comporter des caractes majuscules et
miniscules.

Le probleme est que si j'ai 100A et 100a, access les traite comme si c'est
la meme valeur.

J'ai besoin de faire la difference, comment faire?

Merci de votre aide.

Salva

7 réponses

Avatar
David
Bonjour Salva,

Trouvé dans mes archives mais jamais testé !

Dans une requête, le code SQL SELECT * FROM Table1 WHERE
((StrComp("Roland",[champ1],0))=0); renverra uniquement les enregistrements
de la table Table1 ou [Champ1] sera égal à "Roland" (les enregistrements
contenant par exemple "roland" ne seront pas retournés).

a+
Jean-Pol DAVID
http://users.skynet.be/DAVID/



"Hotmerlino" a écrit dans le message de news:

Bonjour,

Je travaille avec ACCESS 2000 en FR

Je dois creer une table qui doit comporter des caractes majuscules et
miniscules.

Le probleme est que si j'ai 100A et 100a, access les traite comme si c'est
la meme valeur.

J'ai besoin de faire la difference, comment faire?

Merci de votre aide.

Salva




Avatar
Jean-marc
Hotmerlino wrote:
Bonjour,



Hello,

Je travaille avec ACCESS 2000 en FR

Je dois creer une table qui doit comporter des caractes majuscules et
miniscules.

Le probleme est que si j'ai 100A et 100a, access les traite comme si
c'est la meme valeur.



Bien sur. Les noms de tables et de champs sont insensibles à la casse:
minuscules et majuscules sont traités de la même façon.

C'est vrai dans Acess, et dans toutes les bases de données.

J'ai besoin de faire la difference, comment faire?



On ne peut pas, et heureusement. C'est de toute façon une mauvaise
idée et/ou un mauvais design que de vouloir distinguer des tables
par une différence maj/min.

En plus, aucun (bon) design ne peut être fait
qui imposerait un nom particulier pour une table.

Si tu as besoin d'établir une correspondance entre
une chaine de caractères et une table, et bien tu peux créer
une table de correspondance.

Table : Correspondance
Champs : Valeur et nom_table

Correspondance
============= Valeur | nom_table
-------+------------
100A | Table_XXX
100a | Table_YYY
... | ....
-------+------------

Pour écrire/lire des données dans une table, tu fais
un premier SELECT qui en fonction de la chaine
de caractère te donne le nom de la table:

"SELECT nom_table FROM Correspondance
WHERE Valeur = '" & v & "'"

Puis tu construis
ta seconde requete sur base du nom de table retrouvée
par la première.

Ainsi, tu es totalement indépendant du nom des tables.


Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Gloops
Bonjour,

ça serait une bonne idée de mieux préciser ce que tu veux faire.

Jean-Marc te parle de distinguer deux tables, pourtant j'ai l'impression
que tu as parlé de créer une table, et il me reste ensuite deux
interprétations possibles, soit tu parles de deux champs (où je rejoi ns
Jean-Marc pour dire que ça serait une mauvaise idée de les appeler 10 0A
et 100a), soit tu parles des valeurs d'un champ sur deux enregistrements.

Dans ce deuxième cas, si il s'agit d'un champ texte quelconque, il n'y a
aucun souci pour mettre treize fois 100A, et quatorze fois 100a (ou
plus, ou seulement une fois chacun si on préfère). Si c'est un champ
indexé sans doublons, par exemple une clef primaire, il me semble que ç a
coince. On peut imaginer de mettre une succession des codes ASCII mais
c'est assez ardu de se représenter un cas où c'est une bonne idée.

En dehors du cas de l'index, pour comparer deux chaînes de caractères ,
tenir compte de la clause "Option Compare" placée en début de module.
Dans l'aide d'Access, voir "Option Compare".
________________________________________
Hotmerlino a écrit, le 25/11/2007 14:42 :
Bonjour,

Je travaille avec ACCESS 2000 en FR

Je dois creer une table qui doit comporter des caractes majuscules et
miniscules.

Le probleme est que si j'ai 100A et 100a, access les traite comme si c' est
la meme valeur.

J'ai besoin de faire la difference, comment faire?

Merci de votre aide.

Salva




Avatar
Hotmerlino
Bonsoir,

Avant tout, merci de votre aide.



Ce n'est pas un probleme de nom de table.
Simplement des donnees contenues dans la database, dans un champs

Ex.:
Num_article 100A Articles 1 100 pour un groupe d'artile et
le A pour un 1° type d'article
100a Articles 2 100 pour un groupe
d'artile et le a pour un 2° type d'article
:
:

Dans ce cas bien precis, j'ai besoin de differencier les 2 N° d'articles.

Merci de votre aide.

P.S. Ce n'est pas un champs clef unique.

Salva

"Hotmerlino" a écrit dans le message de news:

Bonjour,

Je travaille avec ACCESS 2000 en FR

Je dois creer une table qui doit comporter des caractes majuscules et
miniscules.

Le probleme est que si j'ai 100A et 100a, access les traite comme si c'est
la meme valeur.

J'ai besoin de faire la difference, comment faire?

Merci de votre aide.

Salva




Avatar
Jean-marc
Hotmerlino wrote:
Bonsoir,



Hello,


Avant tout, merci de votre aide.



Ce n'est pas un probleme de nom de table.
Simplement des donnees contenues dans la database, dans un champs

Ex.:
Num_article 100A Articles 1 100 pour un groupe
d'artile et le A pour un 1° type d'article
100a Articles 2 100 pour un
groupe d'artile et le a pour un 2° type d'article
:
:

Dans ce cas bien precis, j'ai besoin de differencier les 2 N°
d'articles.



Heu, c'est moi qui suis fatigué ou alors quoi ??

SELECT * From Table1 where Num_article = '100A'
retourne les 100A et pas les 100a

SELECT * From Table1 where Num_article = '100a'
retourne les 100a et pas les 100A

Ou est le problème ?

Je sens que c'est un truc archi évident mais qu'on a un peu de
mal à comprendre de quoi il s'agit.

le plus facile:

Donne nous:
- Le nom des tables
- Les noms des champs (avec les types, etc.)

- Un exemple sous une forme *lisible*, en ASCII Genre :


+---------------------------------+
| TABLE T_XXXX |
+---------------------------------+
+ NUM | Nom | Prenom |
+-------+----------+--------------+
| 1 | dupont | Robert |
+-------+----------+--------------+
| 2 | DUPONT | Alain |
+-------+----------+--------------+

Puis un exemple de ce que tu veux faire, du genre:
Je veux les infos pour 'DUPONT' et pas 'dupont'

Et on te répondra un truc du genre :

SELECT * FROM T_XXXX
WHERE Nom = 'DUPONT'


Avec ça on devrait s'en sortir :-)

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Gloops
Bonsoir,

Je ne sais pas si mon message est passé. Personne ne l'a vu ou il
n'était pas clair.

Je confirme ce que tu dis pour un champ texte quelconque, on peut
distinguer sans problème "100A" et "100a".

Pour une clef primaire, en revanche ...

________________________________________
Jean-marc a écrit, le 29/11/2007 20:54 :
Donne nous:
- Le nom des tables
- Les noms des champs (avec les types, etc.)



et les champs index ;)
Avatar
Hotmerlino
Bonsoir,

Je crois que je me suis mal explique.

Je vais revoir ma copie.

Desole

Je reviendrais plus tard

Bonne soiree

"Hotmerlino" a écrit dans le message de news:

Bonsoir,

Avant tout, merci de votre aide.



Ce n'est pas un probleme de nom de table.
Simplement des donnees contenues dans la database, dans un champs

Ex.:
Num_article 100A Articles 1 100 pour un groupe d'artile
et le A pour un 1° type d'article
100a Articles 2 100 pour un groupe
d'artile et le a pour un 2° type d'article
:
:

Dans ce cas bien precis, j'ai besoin de differencier les 2 N° d'articles.

Merci de votre aide.

P.S. Ce n'est pas un champs clef unique.

Salva

"Hotmerlino" a écrit dans le message de news:

Bonjour,

Je travaille avec ACCESS 2000 en FR

Je dois creer une table qui doit comporter des caractes majuscules et
miniscules.

Le probleme est que si j'ai 100A et 100a, access les traite comme si
c'est
la meme valeur.

J'ai besoin de faire la difference, comment faire?

Merci de votre aide.

Salva