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 :

Requête trop longue en VBA


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Requête trop longue en VBA
    Bonjour;

    J'essaie de faire une requête en VBA du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    requete = "ID_ACTION = '" & Me!lst_action & "' " & _
    "and EXISTENCE= '" & Me!lst_existence & "' " & _
    "and ANCIENNETE= '" & Me!lst_anciennete & "' " & _
    "and APPLICATION= '" & Me!lst_application & "' " & _
    "and ZONE_CLIM= '" & Me!lst_zone_clim & "' " & _
    "and PERFORMANCE= '" & Me!lst_performance & "' " & _
    "and SURF_PIECE= '" & Me!lst_surf_piece & "' " & _
    "and ENERGIE= '" & Me!lst_energie & "' " & _
    "and SECT_ACTIVITE= '" & Me!lst_sect_activite & "' " & _
    "and USAGE= '" & Me!lst_usage & "' " & _
    "and TYPE_EQUIP= '" & Me!lst_type_equip & "' " & _
    "and MODE_SITE= '" & Me!lst_mode_site & "'"
    coeff_c = DLookup("[COEFF_C]", "TAB CRITERE", requete)
    Malheureusement, elle semble trop longue (> 256 caractères) et elle est tronquée. J'ai essayé avec DLookup, un recordset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim cn As ADODB.Connection
    Dim rst As New ADODB.Recordset
    Dim requete As String
     
    requete = "blah blah blah ...."
     
    Set cn = CurrentProject.Connection
    Set rst = cn.Execute(requete)
    et même avec runsql mais je sais pas comment récupérer le résultat et il semblerait que cela ne fonctionne pas avec un select.

    J'ai épuisé mes faibles connaissances en access et VBA. Quelqu'un aurait-il une solution ?

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 229
    Points : 553
    Points
    553
    Par défaut
    Salut,

    Pourquoi ne pas faire plusieurs requête.
    Une première qui trie déjà un certains nbre de record, ensuite une deuxième basée sur la première qui trie celle-ci, etc, etc...

    A+

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Salut.

    Je pense, mais cela demande vérification, qu'une requete sql doit avoir une longueur maximale de 1024 caractères.

    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    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
    Oui, il y a une limite à la longueur d'une requête mais là c'est bizar que cela coupe à 256.

    Les chaînes d'access acceptent environ 32000 cars et DLookup attent une string donc cela ne devrait pas couper.

    Fait afficher (debug.print len(requete)) pour vérifier la longueur de ta chaîne de critère et vérifie ce qui se passe quand tu as des nulls dans tes champs.
    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.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour;

    Il y avait effectivement un problème avec les Null. Dlookup marche une fois que je gère les colonnes à Null (comme je les connais, je ne les intègre pas dans la requête).
    J'ai tellement essayé de solutions que j'ai du mélanger les erreurs. D'autres accès, en gérant les Null, ne fonctionnant pas.

    Enfin bref, Dlookup m'ira très bien.

    Merci à tous.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/03/2008, 11h22
  2. requéte trop longue sous ie
    Par devboy dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 16/05/2007, 16h43
  3. Réponses: 4
    Dernier message: 15/05/2007, 10h10
  4. [Requête] Requête trop longue
    Par Ithilien dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/01/2007, 10h58
  5. [MySQL] Requête trop longue ?
    Par Thomas1434 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 24/03/2006, 21h55

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