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

Access Discussion :

Erreur 2176 sur liste de valeur (paramètre de propriété trop


Sujet :

Access

  1. #1
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 336
    Points : 166
    Points
    166
    Par défaut Erreur 2176 sur liste de valeur (paramètre de propriété trop
    Bonjour

    Je rempli une liste de valeurs à partir d'enregistrements d'une table par add-item pour pouvoir ensuite utiliser remove pour faire passer d'une liste filtrée à une liste de sélection (classique dans les choix de champs des assistants par exemple...). Mais j'obtiens le message cité en sujet lorsque j'ai un nombre de valeurs important (plus de 1000 lignes avec 2 ou 3 colonnes...). Dans les forum, je n'ai trouvé que la solution de fonction dans le rowsourcetype ais je ne sais pas si ça répond à mon problème ou pas...
    Voilà mon code...(ACCESS 2000) sachant que j'ai bien mis la textbox en "liste de valeurs" :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Public Function Remplir_liste_structure(SQL_filtre As String)
        Dim db As DAO.Database
        Dim rst As DAO.Recordset
     
        'vide la liste si pleine
        Forms![Filtre des structures]![Liste_structures_filtrées].RowSource = ""
     
        ' crée le SQL de base
        Dim SQL As String
        Dim SQL_debut As String
        Dim SQL_fin As String
     
        'préparation de la chaîne SQL
        SQL_debut = "SELECT COOPANNU, [NOM SIMPLIFIE], COMM, SECTEUR FROM [Sélection toutes structures non dissoutes]"
        SQL_fin = " ORDER BY COOPANNU;"
        If SQL_filtre <> "" Then
            SQL_filtre = " WHERE " & SQL_filtre
        End If
        SQL = SQL_debut & SQL_filtre & SQL_fin
     
        'génère le recordset
        Set db = CurrentDb()
        Set rst = db.OpenRecordset(SQL)
     
        'vérifie si pas nul
        If rst.EOF Then
            MsgBox "Aucune structure ne répond à votre critère de recherche", vbExclamation
        Else
            'ajoute dans la liste
            While rst.EOF = False
                Forms![Filtre des structures]![Liste_structures_filtrées].AddItem rst("COOPANNU") & ";" & rst("[NOM SIMPLIFIE]") & ";" & rst("COMM") & ";" & rst("SECTEUR")
                rst.MoveNext
            Wend
        End If
     
        'sélectionner le premier dans la liste
        Forms![Filtre des structures]![Liste_structures_filtrées] = Forms![Filtre des structures]![Liste_structures_filtrées].ItemData(0)
     
     
        'fermeture et libération des objets
        rst.Close
        Set rst = Nothing
        Set db = Nothing
     
    End Function
    Est-ce que vous avez une solution simple pour régler mon problème ? Merci par avance

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Une liste déroulante Access ne possède pas de propriété AddItem...
    Tu construits ta chaine SQL et tu l'affectes à ta zone de liste en définissant les propriétés ColumnWidths, ColumnCount et BoundColumn.

    Ceci dit, qui va consulter + de 1000 lignes dans une telle liste ?
    Tu devrais tout de même filtrer davantage...

    Tu peux aussi regarder tes options d'Access au niveau de l'onglet Modifier/Rechercher.

    Argy

  3. #3
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 336
    Points : 166
    Points
    166
    Par défaut
    Merci pour la réponse. Il s'agit bien d'une zone de liste et non une liste déroulante. L'augmentation du nb de ligne visible dans les propriétés modifier/rechercher ne change rien... Le pb ne vient pas du nb de lignes mais plutôt lorsque j'ajoute bcp de valeurs c'est à dire un grand nombre de ligne avec en plus 2 ou 3 colonnes...
    c'est vrai que je peux mettre une limite et demander à l'utilisateur de filtrer d'avantage son choix...mais je fais ça dans un formulaire de filtre sur choix multiple et il peut arriver que le choix dépasse les 1000 lignes (j'ai ensuite un bouton sélectionner tout...)
    Je n'ai plus le même problème lorsque je mets sur table/query et affecte mon SQL à .rowsource mais alors je ne peux plus utilsier le delete item (j'efface de la liste filtrée lorsque je sélectionne...)
    bon il faut peut être que je fasse des concessions...à moins qu'il y ait une autre idée ???
    merci

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bien fais un simplement un sous-formulaire qui ressemble à ta zone de liste...
    Tu peux y mettre un nombre quasi illimité de données et tu couvres les champs de la section détails (qui n'ont pas d'arrêts tabulation et qui sont verrouillés) d'un bouton transparent ; j'ose espérer que tu vois où je veux en venir...

    Argy

Discussions similaires

  1. [AC-2007] Erreur 3021 sur liste déroulante
    Par El Bosc dans le forum VBA Access
    Réponses: 5
    Dernier message: 27/10/2013, 07h14
  2. Réponses: 1
    Dernier message: 21/01/2013, 18h58
  3. Réponses: 10
    Dernier message: 16/11/2010, 09h26
  4. [BO 5.1.8] Invite et liste de valeurs paramètrables
    Par moun_moun dans le forum Deski
    Réponses: 8
    Dernier message: 30/11/2008, 14h34
  5. [POO] Erreur d'analyse de la valeur pour la propriété "top"
    Par chtisyl dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/09/2008, 17h11

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