Bonjour,
La chaîne SQL envoyée via la procédure OpenRecordSet est de type String.
Quel est le moyen pour renvoyer un recordset relatif à une chaine SQL de plus de 255 caractères ?
Merci,
Bonjour,
La chaîne SQL envoyée via la procédure OpenRecordSet est de type String.
Quel est le moyen pour renvoyer un recordset relatif à une chaine SQL de plus de 255 caractères ?
Merci,
Bonjour,
Je dirai : un champ memo plutot que texte.
Le type de donnée du recordset est de type string donc même si ma variable est variant (donc plus de 255 caractère) elle est tronquée lors de l'appel de open recordset.
Set recordset = object.OpenRecordset (source, type, options, lockedits)
Source est de type string.
Fait une requète et appel le nom de ta requète comme source de ton recordset.
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 set monRS=maDB.OpenRecordset(nomDeMaRequete).
Tu as vérifié ? En VBA les chaine ne sont pas limitée à 255 caractères mais je pense à 32560 (2 octets) sauf si tu le défini explictement.Envoyé par acama
Re,
Voila ce que j'ai pu trouver
Bonne chanceun champ mémo pourra être limité à 255 caractères en cas de tri‚
regroupement‚ requête union‚ certaines exportations‚ formatage etc.· etc…
lire par exemple les fiches:
http://support.microsoft.com/default.as … ;fr;103998
http://support.microsoft.com/default.as … ;fr;468408
et
http://minilien.com/?WnCMMg3s16
oui j'ai vérifié.
J'aurais aimé éviter de créer une requête en amont. Je souhaite la créer via le code.
Mais si elle dépasse 255 caractères, on ne peux pas utiliser OpenRecordSet.
Merci PC75 pour ta réponse, mais mon problème n'est pas de savoir si un champ mémo peux faire plus de 255 caractères, il est que le paramètre de la procédure OpenRecordSet est de type string et donc tronqué si la chaîne de caractère transmise fait plus de 255 caractères.
Est-tu vraiment sûr de ce que tu avances.
Pour ma part, je viens de contrôler. J'ouvre un recordset avec une chaîne sql qui fait plus de 500 caractères, sans tenir compte des valeurs concaténées dans la chaînes, valeurs qui proviennent d'autres variables.
Je précise bien que ma chaîne est construite entièrement en vba et mon recordset ouvert.
au pire tu peux parfaitement créer une requête temporaire à la volée grâce à DAO ...Envoyé par acama
Je viens de faire le test direct et ça marche effectivement avec une chaîne de plus de 255 envoyé
Donc il y a quelquechose qui tronque dans mon code, je vais vérifier
Ca y est j'ai trouvé : une erreur dans ma chaîne SQL...
Ce qui m'a mis dedans c'est la fenetre espion qui elle tronque l'information affichée à 255 alors que la variable peut en faire plus.
J'espère au moins que cela pourra servir à d'autre.
Merci à tous et surtout JFC pour m'avoir permis de me remettre en question
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager