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 :

Problème avec la fonction InputBoxListView de Arkham


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 113
    Points : 124
    Points
    124
    Par défaut Problème avec la fonction InputBoxListView de Arkham
    Bonjour à tous,

    Voilà, j'utilise l'excellente ressource d'Arkham documentée dans cette page et notamment la fonction InputBoxListView.

    Dans un formulaire de ma BDD, je veux que les utilisateurs choisissent un client parmi la totalité des clients dans une boîte de dialogue (via la fonction InputBoxListView d'Arkham). Cela marchait parfaitement avant mais depuis peu, la boîte de dialogue est vide.

    En analysant un peu le problème, je me suis rendu compte que cela était lié, vraisemblablement, au nombre de lignes renvoyées par la requête source passée en paramètre dans la Boîte de dialogue. En fait, si je limite le nombre de lignes à 2^15 (32768) via un SELECT TOP 32768 ça marche mais dès qu'on passe à 32769 ou plus la liste est totalement vide...

    Cela semble être un problème de mémoire ou une limitation de la fonction. L'un d'entre vous connaît-il un moyen de contourner cet ecueil ? Un grand merci par avance pour votre aide.

    Bien cordialement.
    el

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Salut,

    je te suggere de te contenter de faire un Dcount dans un premier temps.

    Si le total est superieur a un (deja) grand nombre, tu mets un message d'informations
    Sinon tu affiches les resultats dans la zone de liste.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonjour,
    si je limite le nombre de lignes à 2^15 (32768) ...
    Je n'utilise pas cette liste mais ça sent certainement la limitation d'un INTEGER, qui serait à déclarer en LONG (et en vérifier les conséquences !).

    CDLT
    "Always look at the bright side of life." Monty Python.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 113
    Points : 124
    Points
    124
    Par défaut
    Merci pour votre réponse mais malheureusement, la requête retourne actuellement un peu plus de 33000 lignes. Cela augmente régulièrement (c'est d'ailleurs pour cela que ça marchait avant car le nombre de clients devait être inférieur à 32768), tester le nombre de lignes ne me permettra pas de contourner le problème car le nombre de lignes va continuer à augmenter.

    Comment puis-je faire pour déplafonner ce nombre de lignes dans cette fonction ? Si cela est possible ?

    Un grand merci par avance.
    el

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 113
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par micniv Voir le message
    Bonjour,

    Je n'utilise pas cette liste mais ça sent certainement la limitation d'un INTEGER, qui serait à déclarer en LONG (et en vérifier les conséquences !).

    CDLT
    Cette piste me semble intéressante, je vais tester et je vous tiens informés si ça règle le problème

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 113
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par micniv Voir le message
    Bonjour,

    Je n'utilise pas cette liste mais ça sent certainement la limitation d'un INTEGER, qui serait à déclarer en LONG (et en vérifier les conséquences !).

    CDLT
    Bingo !!!
    C'était bien cela... A toutes fins utiles, pour ceux qui utilisent cette fonction d'Arkham et qui seraient confrontés au même problème, la variable à modifier est lcpt, elle est déclarée dans la fonction IBProc. Voici la ligne à modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Dim lcpt As Integer, lsubcpt As Integer, lcptimg As Long
    A remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Dim lcpt As Long, lsubcpt As Integer, lcptimg As Long
    Pour les conséquences, a priori, pas de plantage ou de comportement anormal... On verra si cela pose problème dans le futur.

    Merci pour votre aide.
    el

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

Discussions similaires

  1. Problème avec une fonction date.
    Par kmayoyota dans le forum ASP
    Réponses: 8
    Dernier message: 09/09/2004, 12h33
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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