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 :

String limitation sous Access


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Points : 60
    Points
    60
    Par défaut String limitation sous Access
    Bonjour,

    Je définis chaine As String et je viens ensuite la remplir progressivement avec des données en VBA Access .

    Tout se passe bien, jusqu'à ce que, je rajoute trop de données, je pense que ma chaine est coupée au bout de 255 caractères.

    Car quand je supprime des caractère, ceux qui manquaient à la fin viennent se rajouter.

    Cette chaine est censé être une requête SQL ensuite.

    Savez vous s'il est possible d'enlever cette limitation ?

    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Les chaînes de caractères (as string) peuvent contenir, de mémoire, environ 64000 caractères.

    La limite de 255 caractères est sur les champs de type texte dans les tables.
    Si tu as besoin de plus long, tu peux utiliser une champ mémo qui peut contenir, de mémoire, environ 64000 caractères.
    Il arrive que le contenu d'un champ mémo soit coupé à 255 quand il est utilisé dans une requête de regroupement.

    Il y a peut-être une erreur dans ton code, peux-tu le poster ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 69
    Points : 60
    Points
    60
    Par défaut
    Merci pour votre réponse, je vous envoie le morceau de code, mais je ne pense pas avoir fait d'erreurs.
    Peut être que je me trompe?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim chaine_locale As String
    chaine_locale=""
    Do Until condition=False
    If chaine_locale <> "" Then
                   chaine_locale = chaine_locale & "," & "( " & Variable1 & " , " & local.Id & ", " & local.Id_2 & " , " & local.Cout & ", " & local.Equivalent & " )"
                 Else
                   chaine_locale = "( " & Variable1 & " , " & local.Id & " , " & local.Id_2 & ", " & local.Cout & ", " & local.Equivalent & ")"
                  End If
     
    ...
     
    Loop
    Donc quand je suis en mode débogueur aucun soucis jusqu'ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If chaine_locale <> "" Then
         chaine_locale = "INSERT INTO ELEMENTS_DE_COUTS (Var1,Id_1 ,Id_2,Couts_Euros,Couts_2)VALUES " & chaine_locale & ";"
         Set Req_Compteur_Prestation = Db.CreateQueryDef("", chaine_locale)
        Req_Compteur_Prestation.Execute
     End If
    Aucun soucis tant que chaine locale ne dépasse pas un certain nombre de caratères.

    Sinon connaissez vous un moyen plus rapide (en temps d'exécution) pour exécuter des requêtes SQL ?

    Merci en tout cas.

Discussions similaires

  1. Update sous Access
    Par Sk8cravis dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/04/2009, 14h29
  2. fonction String sous Access 2003
    Par nonaparus dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/10/2007, 15h52
  3. Limitation d'Access pour les sous-requêtes ?
    Par guidav dans le forum Access
    Réponses: 5
    Dernier message: 19/10/2006, 12h18
  4. Réponses: 2
    Dernier message: 12/06/2006, 09h55
  5. [Optimisation] Rushmore sous Access
    Par P'tit Jean dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/07/2003, 15h15

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