IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

qdf.Parameters("monParam") = maVariable limité à 255 caractères


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 18
    Points
    18
    Par défaut qdf.Parameters("monParam") = maVariable limité à 255 caractères
    Bonjour,

    Le problème que j'ai est est le suivant :
    J'utilise une requête paramétrée et tout fonctionne très bien jusqu'à ce que l'un des paramètres dépasse 255 caractères. Lorsque ce cas arrive, j'obtiens l'erreur suivante : 'Valeur de propriété non valide'

    Voici le code qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set qdf = CurrentDb.QueryDefs("updateUserQuery")
    Dim extract As String
    [... initialisation de extract ...]
    qdf.Parameters("clauseSelect_") = extract
    qdf.Execute
    En fait lorsque extract dépasse 255 caractères, l'instruction qdf.Parameters("clauseSelect_") = extract génère l'erreur 'Valeur de propriété non valide'
    Dans le cas ou extract fait moins de 255 caractères, tout fonctionne correctement.
    Le champ clauseSelect dans la bdd Access est de type Mémo., ce qui ne devrait pas poser de problèmes au niveau de la taille.

    La seule chose que j'ai trouvé en cherchant est celle là :
    http://access.developpez.com/faq/?pa...es#RequeteMemo
    Mais elle ne dit pas comment contourner le problème.

    Pour info la version d'Access que j'utilise est la suivante :
    Access 2000 (9.0.6926 SP-3).

    Merci par avance,

    Barjovial

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Relance
    Bonjour,

    Je me permet de relancer parce que ça me fait vraiment ch...

    Je pourrais utiliser une autre méthode mais toute mes fonctions de mise à jour sont basés sur ce modèle et je n'ai qu'un champ qui peut excéder 255 caractères.

    Bref si quelqu'un pouvait m'aider

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut barjovial et bienvenu sur le forum,

    pourrais tu être plus clair?
    ton pb c'est que tu as un paramètre dans ta requête qui est limité à 255 caractère et tu l'as bien compris.
    mais que souhaites tu faire? ne plus avoir cette limitation? faut pas rêver ont est pas là pour améliorer access...

    si tu veux concevoir autrement ton traitement il faudrait que tu précises un peu plus ton pb, en commencant par exemple par donner ta requete, la partie de ton code qui coince... ce que tu souhaite changer quoi.

    parceque sinon moi je te propose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qdf.Parameters("clauseSelect_") = left(extract,255)
    et t'auras plus de pb...

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Salut Vodiem,

    Le code qui coince est celui que j'ai mis dans le premier post, et la requête associée est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE RequeteUtilisateur SET Profil_idLDAP = [Profil_idLDAP_], libelle = [libelle_], description = [description_], clauseSelect = [clauseSelect_], clauseFrom = [clauseFrom_], clauseWhere = [clauseWhere_], clauseGroupBy = [clauseGroupBy_], clauseOrderBy = [clauseOrderBy_], tailleColonne = [tailleColonne_], categorie = [categorie_], ordre = [ordre_]
    WHERE id=[id_];
    Le champ qui peut excéder 255 caractères est le champ clauseSelect.
    En fait je pense que s'est la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qdf.Parameters("clauseSelect_") = extract
    qui n'accepte pas de valeur supérieur à 255 caractères.

    Une des solution que je vais essayer est de ne pas passer par une requête paramétrée mais plutôt de créer la requête SQL et de l'exécuter directement dans le code.

    C'est juste pour le fun car au final il a été décidé de refondre l'appli en PHP/MYSQL (non pas que je n'aime pas le VBA Access mais ...)

    Je vous tiendrai au courant quand même,

    @ ++ et encore merci

    Barjovial

  5. #5
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    179
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 179
    Points : 222
    Points
    222
    Par défaut
    Bonjour,
    le paramètres que tu utilises doit être déclaré comme un champ mémo ainsi que le champs testé dans ta requête. Ta requête actuelle voit le paramètre comme un string qui dans une base access ne peut pas dépasser 255 caractères.

    CQFD

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    Jack78960>
    un string qui dans une base access ne peut pas dépasser 255 caractères
    non, cf <F1>.

    barjovial>
    si il y a limitation ce serait du coté "Parameters" et je doute: ca fait pas grand chose.
    si c'est 'extract', il serait bon de connaitre sa valeur.

    Une des solution que je vais essayer est de ne pas passer par une requête paramétrée mais plutôt de créer la requête SQL et de l'exécuter directement dans le code.
    sage décision.

Discussions similaires

  1. [CR 8] Export état dans Excel - colonne limitée à 255 caractères
    Par ARONE dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 20/07/2009, 10h50
  2. Export au format CSV limité à 255 caractères
    Par RKU01 dans le forum Access
    Réponses: 1
    Dernier message: 07/12/2006, 04h53
  3. Variables string limité à 255 caractères?
    Par krfa1 dans le forum Access
    Réponses: 7
    Dernier message: 27/01/2006, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo