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

Type de données Text ou Mémo?

13 réponses
Avatar
Marco38
Bonsoir,

J'importe des donn=E9es d'excel dans une table Access, je=20
rempli cette table avec une requ=EAte SQL pour regrouper=20
des donn=E9es correspondant =E0 mon 1er champ dont les=20
valeurs sont unique.

La longueur total de mon deuxi=E8me champ d=E9passe souvent=20
les 255 caract=E8res le type de donn=E9e de d=E9part que j'ai=20
s=E9lectionn=E9 est : "Text" j'ai essay=E9 avec "M=E9mo" pour=20
avoir un plus grand espace mais quand je lance mon=20
importation et ma requ=EAte SQL j'ai 2 carr=E9s qui s'affiche=20
dans mon =E9tat.

Avez vous une solution ou cela est il tous simplement=20
impossible quand il y =E0 une alimentation automatique du=20
champ par SQL?

Pour info voici ma requ=EAte :

DoCmd.RunSQL "UPDATE tblResults INNER JOIN xxx ON=20
[tblResults].[zzz]=3D[xxx].[zzz] SET tblResults.tblResults=20
=3D ([tblResults].[tblResults]+"" / "") & [xxx].[yyy]
& ""+"" &[xxx].[www]; ", -1

j'suis sous xp et A2000

Bonne soir=E9e

Marc

10 réponses

1 2
Avatar
Jean
Bonjour Marc,

Si dans tes tables, les données sont correctement
enregistré, sache que pour l'affichage d'un champ en état
la longueur de 255 caratères est le maximun, d'où les
caratères bizarres.

A+ Jean
Avatar
Marco38
Bonjour,

MErci pour ta réponse donc si je comprend bien il est
impossible dans un état de faire afficher plus de 255
caractère dans un champ même en prenant le type de
données "Mémo" qui lui permet d'avoir + de 65000
caractères.

Marc
-----Message d'origine-----

Bonjour Marc,

Si dans tes tables, les données sont correctement
enregistré, sache que pour l'affichage d'un champ en état
la longueur de 255 caratères est le maximun, d'où les
caratères bizarres.

A+ Jean


.



Avatar
Raymond [mvp]
Bonjour.

il ne faut pas raisonner comme ceci. c'est le fait que ta requête est une
requête regroupement que Access tronque les champs mémos à 255 caractères
qui est le maxi des champs textes. Si tu veux conserver une valeur
supérieure à 255 il faut que ta requête traite ton champ par longueurs
contiguës de 255 et ensuite tu concatènes sous Access.
lis la fiche http://support.microsoft.com/default.aspx?scid=KB;EN-US;q208801
qui est prévue pour l'export mais qui reste valable pour l'import.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit dans le message de
news:0bd201c3d531$2f646bd0$
Bonjour,

MErci pour ta réponse donc si je comprend bien il est
impossible dans un état de faire afficher plus de 255
caractère dans un champ même en prenant le type de
données "Mémo" qui lui permet d'avoir + de 65000
caractères.

Marc
Avatar
Marco38
Bonsoir Raymond,

Je te remercie pour ta réponse mais je n'arrive pas à
comprendre comment ma requête peut traiter le champ par
longueurs contiguës de 255 La requête concatène les
valeurs correspondant au critère du champ 1 si il y à 50
données à concaténer automatiquement cela fera plus de
255 caractères si par contre il y à 15 données à
concaténer les 255 caractères suffiront.
Merci de m'éclairer un peu plus
@+
Marc

-----Message d'origine-----
Bonjour.

il ne faut pas raisonner comme ceci. c'est le fait que
ta requête est une

requête regroupement que Access tronque les champs mémos
à 255 caractères

qui est le maxi des champs textes. Si tu veux conserver
une valeur

supérieure à 255 il faut que ta requête traite ton champ
par longueurs

contiguës de 255 et ensuite tu concatènes sous Access.
lis la fiche http://support.microsoft.com/default.aspx?
scid=KB;EN-US;q208801

qui est prévue pour l'export mais qui reste valable pour
l'import.


--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit
dans le message de

news:0bd201c3d531$2f646bd0$
Bonjour,

MErci pour ta réponse donc si je comprend bien il est
impossible dans un état de faire afficher plus de 255
caractère dans un champ même en prenant le type de
données "Mémo" qui lui permet d'avoir + de 65000
caractères.

Marc


.



Avatar
Raymond [mvp]
en général , on définit autant de colonnes de requêtes qu'il est possible
d'avoir de fois 255 caractères. si tu définis que le mémo ne dépassera
jamais 2550 caractères tu déclares 10 colonnes dans ta requête. la 1ere de 1
à 255, la 2e de 256 à 510 ................
pour travailler tu concatèneras les 10 colonnes pour retrouver le mémo.
dans la pratique on prend 250 pour faciliter les calculs.
exemple:
SELECT Mid([Monmemo],1,250) AS memo01, Mid([Monmemo],251,250) AS memo02
........
FROM Correspondants;
dans ton formulaire ou ton état tu concatènes tes colonnes memo01 & memo02
.......... pour reconstituer la valeur.
faut pas croire que c'est de tout repos car il faut quand même bien calculer
son affaire.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit dans le message de
news:02b801c3d562$275ec760$
Bonsoir Raymond,

Je te remercie pour ta réponse mais je n'arrive pas à
comprendre comment ma requête peut traiter le champ par
longueurs contiguës de 255 La requête concatène les
valeurs correspondant au critère du champ 1 si il y à 50
données à concaténer automatiquement cela fera plus de
255 caractères si par contre il y à 15 données à
concaténer les 255 caractères suffiront.
Merci de m'éclairer un peu plus
@+
Marc
Avatar
Marco38
Bonjour,

J'ai essayé d'intégrer la commande SELECT Mid à ma requête
mais cela ne fonctionne pas. Tu as une idée?
Faut-il séparer les deux commandes SQL?


@+
Marc

-----Message d'origine-----
en général , on définit autant de colonnes de requêtes
qu'il est possible

d'avoir de fois 255 caractères. si tu définis que le mémo
ne dépassera

jamais 2550 caractères tu déclares 10 colonnes dans ta
requête. la 1ere de 1

à 255, la 2e de 256 à 510 ................
pour travailler tu concatèneras les 10 colonnes pour
retrouver le mémo.

dans la pratique on prend 250 pour faciliter les calculs.
exemple:
SELECT Mid([Monmemo],1,250) AS memo01, Mid
([Monmemo],251,250) AS memo02

.........
FROM Correspondants;
dans ton formulaire ou ton état tu concatènes tes
colonnes memo01 & memo02

........... pour reconstituer la valeur.
faut pas croire que c'est de tout repos car il faut quand
même bien calculer

son affaire.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit
dans le message de

news:02b801c3d562$275ec760$
Bonsoir Raymond,

Je te remercie pour ta réponse mais je n'arrive pas à
comprendre comment ma requête peut traiter le champ par
longueurs contiguës de 255 La requête concatène les
valeurs correspondant au critère du champ 1 si il y à 50
données à concaténer automatiquement cela fera plus de
255 caractères si par contre il y à 15 données à
concaténer les 255 caractères suffiront.
Merci de m'éclairer un peu plus
@+
Marc


.



Avatar
Raymond [mvp]
Bonjour.

Affiche ici ta requête sql pour voir.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit dans le message de
news:021201c3d688$5f3a52e0$
Bonjour,

J'ai essayé d'intégrer la commande SELECT Mid à ma requête
mais cela ne fonctionne pas. Tu as une idée?
Faut-il séparer les deux commandes SQL?
Avatar
Marco38
Bonjour,

Voici la requête elle est intégrée dans un modul VBA :

DoCmd.RunSQL "UPDATE tblResults INNER JOIN xxx ON
[tblResults].[zzz]=[xxx].[zzz] SET tblResults.tblResults
= ([tblResults].[tblResults]+"" / "") & [xxx].[yyy]
& ""+"" &[xxx].[www]; ", -1

Si je comprend bien ta dernière réponse il me faudrait 2
requêtes : par exemple une qui traite les données
correspondant aux caractèrex 1 à 250 et l'autre de 251 à
500.

@+
Marc

-----Message d'origine-----
Bonjour.

Affiche ici ta requête sql pour voir.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit
dans le message de

news:021201c3d688$5f3a52e0$
Bonjour,

J'ai essayé d'intégrer la commande SELECT Mid à ma requête
mais cela ne fonctionne pas. Tu as une idée?
Faut-il séparer les deux commandes SQL?


.



Avatar
Raymond [mvp]
je ne vois pas de mid ?
pourquoi vouloir récupérer ton champ mémo dans une requête modification ?

--
@+
Raymond Access MVP
http://access.seneque.free.fr/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access.seneque.free.fr/
http://access2003.free.fr/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access2003.free.fr/
http://users.skynet.be/mpfa/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit dans le message de
news:09e501c3d6a3$3ca6e610$
Bonjour,

Voici la requête elle est intégrée dans un modul VBA :

DoCmd.RunSQL "UPDATE tblResults INNER JOIN xxx ON
[tblResults].[zzz]=[xxx].[zzz] SET tblResults.tblResults
= ([tblResults].[tblResults]+"" / "") & [xxx].[yyy]
& ""+"" &[xxx].[www]; ", -1

Si je comprend bien ta dernière réponse il me faudrait 2
requêtes : par exemple une qui traite les données
correspondant aux caractèrex 1 à 250 et l'autre de 251 à
500.

@+
Marc

-----Message d'origine-----
Bonjour.

Affiche ici ta requête sql pour voir.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access.seneque.free.fr/
http://access2003.free.fr/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access2003.free.fr/
http://users.skynet.be/mpfa/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit
dans le message de

news:021201c3d688$5f3a52e0$
Bonjour,

J'ai essayé d'intégrer la commande SELECT Mid à ma requête
mais cela ne fonctionne pas. Tu as une idée?
Faut-il séparer les deux commandes SQL?


.



Avatar
Marco38
Bonjour Raymond,

La requête modification et le suel moyen que j'ai trouver
pour concatener les éléments d'une table qui se compose
comme cela :

N° Indices Marge
1 E3M 0.10
1 E6M 0.10
1 E9M 0.10
100 T6M 0.15
100 E6M 0.12
100 T1M 0.15
100 T3M 0.13

Et....

La requête regroupe pour chaque n° dans une nouvelle
table tblResults ave un champ N° et un champ Indices
comme cela :
N° Indices
1 E3M+0.10 / E6M+0.10 / E9M+0.10
100 T6M+0.15 / E6M+0.12 / T1M+0.15 / T3M+0.13
Etc....

Quand le résultat dépasse les 255 caractères il me manque
automatiquement dans mon champ de table et donc dans mon
champs d'état des données.

Voila pourquoi je me suis posé la question du mémo qui
lui peut comporte 65000 caractère environ.
Toi si j'ai bien compris tu me dit de traiter ma requête
par "paquet" de 255 caractères et de coller les résultat
dans plusieurs champs, ce qui donnerais pour ma table
tblResults par exemple :

N° Indices1 (caractères 1 à 255)
Indices2 (caractère 256 à 500)
1 E3M+0.10 / E6M+0.10 / E9M+0.10
100 T6M+0.15 / E6M+0.12 / T1M+0.15 / T3M+0.13
Etc....

J'ai assayer d'intéger un mid dans la requête existante
mais cela ne fonctionne pas, mais connaissance en SQL
étant assez limitées.

En te remerciant, bon WE

@+
Marc


-----Message d'origine-----
je ne vois pas de mid ?
pourquoi vouloir récupérer ton champ mémo dans une
requête modification ?


--
@+
Raymond Access MVP
http://access.seneque.free.fr/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access.seneque.free.fr/
http://access2003.free.fr/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access2003.free.fr/
http://users.skynet.be/mpfa/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit
dans le message de

news:09e501c3d6a3$3ca6e610$
Bonjour,

Voici la requête elle est intégrée dans un modul VBA :

DoCmd.RunSQL "UPDATE tblResults INNER JOIN xxx ON
[tblResults].[zzz]=[xxx].[zzz] SET tblResults.tblResults
= ([tblResults].[tblResults]+"" / "") & [xxx].[yyy]
& ""+"" &[xxx].[www]; ", -1

Si je comprend bien ta dernière réponse il me faudrait 2
requêtes : par exemple une qui traite les données
correspondant aux caractèrex 1 à 250 et l'autre de 251 à
500.

@+
Marc

-----Message d'origine-----
Bonjour.

Affiche ici ta requête sql pour voir.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access.seneque.free.fr/
http://access2003.free.fr/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://access2003.free.fr/
http://users.skynet.be/mpfa/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://users.skynet.be/mpfa/ pour débuter sur le forum


"Marco38" a écrit
dans le message de

news:021201c3d688$5f3a52e0$
Bonjour,

J'ai essayé d'intégrer la commande SELECT Mid à ma
requête


mais cela ne fonctionne pas. Tu as une idée?
Faut-il séparer les deux commandes SQL?


.




.




1 2