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 :

Résultat partiel si données supérieur à 255 caractères


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    janvier 2023
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : janvier 2023
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Résultat partiel si données supérieur à 255 caractères
    Bonjour,

    J'ai trouvé sur ce forum une fonction qui me permet de concaténer des données provenant d'un champ précis d'une table et qui fonctionne à merveille mais, si le résultat est supérieur à 255 caractères, ça ne marche plus.
    Est-il possible ? comment ? d'augmenter le nombre de caractères au-delà de 255

    Ainsi, dans ma requête, champ Recuplivre, je dois retrouver tous mes numéros d'articles correspondant sans bloquer à 255 caractères.
    Je joins un exemple pour mieux comprendre

    Merci pour votre aide


    appel de la fonction dans ma requête :

    Champ
    produits_livres : Recuplivre([code vendeur])

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Public Function Recuplivre(produits_livres As String) As String
     
     
     
    Dim res As DAO.Recordset
    Dim Sql As String
     
    On Error Resume Next
     
    'selectionne les articles livres par code vendeur
    'chr34 correspond a des guillements pour encadrer le texte
     Sql = "SELECT numero de produit FROM table detail livraison Where [code vendeur]=" & Chr(34) & produits_livres & Chr(34)
     
     
     Set res = CurrentDb.OpenRecordset(Sql)
    'Concatene les différents enregistrement
     While Not res.EOF
        Recuplivre = Recuplivre & res.Fields(0).Value & ";"
        res.MoveNext
    Wend
    'Enleve le dernier ;
    Recuplivre = Left(Recuplivre, Len(Recuplivre) - 1)
    'libere la mémoire
    Set res = Nothing
     
       End Function
    detail_probleme.xlsxdetail_probleme.xlsxdetail_probleme.xlsx

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    avril 2005
    Messages
    11 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2005
    Messages : 11 682
    Points : 23 881
    Points
    23 881
    Par défaut
    Bonjour,

    La colonne de destination soit être du type Texte Long (anciennement Mémo).

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2019
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juin 2019
    Messages : 1 223
    Points : 1 877
    Points
    1 877
    Par défaut
    Bonsoir,
    Je serais fort étonné si ta requête fonction ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Sql = "SELECT [numero de produit] FROM [table detail livraison] Where [code vendeur]='" & produits_livres & "'"

    Élèves ce vilain on error!
    Et donnes nous le message d'erreur !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    janvier 2023
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : janvier 2023
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Re : résultat partiel
    Bonjour et merci à tous les deux pour votre aide,

    Pour Loufab : effectivement, ça va mieux

    à la base, mes données sources sont issues d'une fichier excel lié et, j'ai fais une requête création de table(qui me met par défaut texte court) de ces données afin d’exécuter ma requête car beaucoup plus rapide qu'avec la table liée.(mais pas plus loin que 255 caractères)

    Comment, peut on changer le type de données avec ce type de requête ? vba ?

    Pour Thumb Down : on error supprimé et pas d'erreurs remontées

    Merci encore pour votre aide

  5. #5
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    juin 2019
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : juin 2019
    Messages : 1 223
    Points : 1 877
    Points
    1 877
    Par défaut
    Bonjour,
    Comment ta requête peut elle fonctionner avec des espaces dans le nom des champs et de table si tu ne les mets pas entre [crochets]?

    De plus je ne vois pas le rapport entre la concaténation d'un string avec la taille des champs !

    Si d'aventure tu avais une valeur supérieure à 255 dans excel,elle serait tronqué car DAO calcul la taille des champs en fonction des 8 première lignes {voir 3 selon les versions}.

    Pour corriger le titre il faudrait inséré en ligne 2 une ligne bidons dans ton fichier excel avec plus de 255 carataires dans la bonne colonne.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    technicien
    Inscrit en
    janvier 2023
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : technicien

    Informations forums :
    Inscription : janvier 2023
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ça y est, j'ai trouvé grâce à vos remarques !

    Je suis également surpris mais sans mise en crochets ça fonctionnait aussi.

    Du coup, j'ai crée une table vierge avec le type de données qui me convient(et longueur du format pour mon cas=>texte long) et j'alimente cette dernière via une requête ajout et plus de soucis.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : juillet 2006
    Messages : 665
    Points : 1 061
    Points
    1 061
    Par défaut
    Salut,

    Plutôt que d'altérer ton fichier source (ce qui n'est pas très propre), as-tu essayé avec ADO ?

    Ou solution ultime:
    Enregistre ton classeur en CSV, puis via ADO, ouvre une connexion en fournissant un fichier Schema.ini, qui contiendra la définition des colonnes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2016] Problème champ texte long supérieur à 255 caractère
    Par Bob_R67 dans le forum IHM
    Réponses: 3
    Dernier message: 30/03/2020, 16h15
  2. Réponses: 11
    Dernier message: 24/07/2015, 19h17
  3. Réponses: 4
    Dernier message: 20/03/2013, 15h10
  4. [AC-2003] Champs text supérieur à 255 caractères
    Par smutmutant2003 dans le forum Modélisation
    Réponses: 2
    Dernier message: 22/01/2010, 15h14
  5. Variable string supérieur à 255 caractères !
    Par AgriFlash dans le forum Langage
    Réponses: 14
    Dernier message: 20/05/2008, 21h10

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