OVH Cloud OVH Cloud

Limitiation zone de liste à 65536 enregistrements

12 réponses
Avatar
Robert LOI
Bonjour,
N'ayant pas eu de réelles solutions suite à une demande déjà postée. Je
tente de poser le problème à nouveau avec un petit espoir et en remerciant
encore ceux qui ont répondu à la première demande

Voici donc un copier-coller du problème

Merci d'avance

Bonjour,

Je travaille sur une base de données cinéma qui contient 18 000 films et 80
000 artistes.

DAns un formulaire film, j'intègre les artistes ou techniciens grâce à une
liste déroulante qui les classe par ordre alphabétique. Or le problème est
qu'access (même la version 2003) n'affiche que les 65536 premiers
enregistrements de la liste et pas les suivants. Ce qui me pose de plus en
plus de problèmes car si le nom commence par V, W etc. Impossible de
l'afficher dans la liste, j'ai bien fait une deuxième liste inversée pour
avoir les 65536 premiers en partant de z, mais bon ça m'ajoute une liste
déroulante dans un formulaire déjà très complexe et ça ne résout le problème
que provisoirement car dès que j'aurais atteints 2 X 65536 en nombre
d'enregistrements, je ne pourrais pas faire apparaître tous les noms même
avec deux listes.

J'avais déjà évoqué ce problème dans un forum et on m'avait proposé de créer
une liste pour chaque lettre ou un systyme de bouton alphabétique...mais ce
serait fastidieux, et surtout éminément pas pratique...

1/ Existe-t-il un moyen qui permette de faire afficher la totalité des
enregistrements dans la liste déroulante et pas seulement les 365 premiers ?
2/ Dans le cas contraire, serait-il possible que si par exemple je dois
saisir un nom qui commence par "V" cela filtre automatiquement la liste en
ne tenant compte que des noms qui commencent par "V" Ainsi en partant de "V"
je pourrais afficher tous les noms jusqu'à 65536 qui semble être la limite
d'affichage d'Acces en liste déroulante. ? Si le principe est possible, je
pourrais l'appliquer à pour toutes les lettres, là j'aurais une solution
quasi-définitive à mon problème, car potentiellement la possibilité
d'afficher 65536 noms par lettre de l'alphabet

Voilà je sais pas si c'est clair, mais si ça l'est et que quelqu'un connaît
une solution ?

Merci d'avance

2 réponses

1 2
Avatar
jean.paulo
--
Jean.paulo

"3stone" a écrit dans le message de
news:
re,

"jean.paulo"

Ah oui ?
Et comment peux tu télécharger et faire confiance à quelque chose
que l'on t'indique sur ces mêmes news et qui plus est à télécharger
à partir du même site ??
Tu serais pas un peu parano toi ? ;-)

Charger en FTP un fichier et l'analyser avant ouverture, c'est tout autre

chose que
d'autoriser Java à danser librement chez soi.



Bavardages inutiles pour noyer le poisson que tout cela et qui n'ont rien
à voir

avec le fait qu'une liste déroulante soit (raisonnablement) limitée à
~65.000 lignes.

Ceci dit, c'est autant que ce que peut contenir un feuille Excel toute
entière!


Qui voudrait mettre 65000 lignes dans Excel ? Ca ne sera jamais une base

de données.

Bof, de toutes façons il est impossible de convaincre celui qui ne veut pas
écouter,
et j'ai trouvé la solution qui était cachée dans l'exemple.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
ldie
Robert LOI a écrit le 31/03/2006 à 11h49 :
Bonjour,
N'ayant pas eu de réelles solutions suite à une demande
déjà postée. Je
tente de poser le problème à nouveau avec un petit espoir et en
remerciant
encore ceux qui ont répondu à la première demande

Voici donc un copier-coller du problème

Merci d'avance

Bonjour,

Je travaille sur une base de données cinéma qui contient 18 000
films et 80
000 artistes.

DAns un formulaire film, j'intègre les artistes ou techniciens
grâce à une
liste déroulante qui les classe par ordre alphabétique. Or le
problème est
qu'access (même la version 2003) n'affiche que les 65536 premiers
enregistrements de la liste et pas les suivants. Ce qui me pose de plus en
plus de problèmes car si le nom commence par V, W etc. Impossible de
l'afficher dans la liste, j'ai bien fait une deuxième liste
inversée pour
avoir les 65536 premiers en partant de z, mais bon ça m'ajoute une
liste
déroulante dans un formulaire déjà très complexe et
ça ne résout le problème
que provisoirement car dès que j'aurais atteints 2 X 65536 en nombre
d'enregistrements, je ne pourrais pas faire apparaître tous les noms
même
avec deux listes.

J'avais déjà évoqué ce problème dans un
forum et on m'avait proposé de créer
une liste pour chaque lettre ou un systyme de bouton
alphabétique...mais ce
serait fastidieux, et surtout éminément pas pratique...

1/ Existe-t-il un moyen qui permette de faire afficher la totalité des
enregistrements dans la liste déroulante et pas seulement les 365
premiers ?
2/ Dans le cas contraire, serait-il possible que si par exemple je dois
saisir un nom qui commence par "V" cela filtre automatiquement la
liste en
ne tenant compte que des noms qui commencent par "V" Ainsi en partant
de "V"
je pourrais afficher tous les noms jusqu'à 65536 qui semble être
la limite
d'affichage d'Acces en liste déroulante. ? Si le principe est possible,
je
pourrais l'appliquer à pour toutes les lettres, là j'aurais une
solution
quasi-définitive à mon problème, car potentiellement la
possibilité
d'afficher 65536 noms par lettre de l'alphabet

Voilà je sais pas si c'est clair, mais si ça l'est et que
quelqu'un connaît
une solution ?

Merci d'avance


Salut,

J'ai eu le même problème avec une liste de 80 000 plantes dans ma base de donnée où je stocke mes observations de plantes. Mon souci était de garder une saisie rapide pour choisir l'espèce, surtout sans avoir recours à la souris.

Solution : sur l'évènement touche activée, mettre à jour la source de la liste déroulante avec la première lettre saisie.

Je tape 2 ou 3 lettres puis F4 pour dérouler le menu puis je me déplace avec les flêches haut/bas ou PgAR/PgAV pour atteindre l'espèce que je souhaite.

Voir le code ci-dessous :

-----------------------------------------------------------------

Private Sub ESPECE_KeyPress(KeyAscii As Integer)

Dim sSQL As String

sSQL = "SELECT TAXREF_FLORE_022008_SYN.NOM_COMPLET, TAXREF_FLORE_022008_SYN.CD_NOM FROM TAXREF_FLORE_022008_SYN"
sSQL = sSQL + " WHERE TAXREF_FLORE_022008_SYN.NOM_COMPLET Like ('" & Left(ESPECE.Text, 1) & "*')"
sSQL = sSQL + " ORDER BY TAXREF_FLORE_022008_SYN.NOM_COMPLET;"

Me.ESPECE.RowSource = sSQL

End Sub

-----------------------------------------------------------------

Finalement, on trouve des solutions à presque tout !

@+ Luc
1 2