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
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
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
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
Bonjour, Robert
Vois ici pour limiter une liste en utilisant le contenu d'un autre
contrôle:
http://www.mvps.org/accessfr/forms/frm0028.htm
Sinon, la sélection par rapport au nom n'est peut-être pas la plus
judicieuse (ni la plus imple à mettre en place).
Peut-être ta table des artistes comporte-t-elle d'autres données que tu
pourrais utiliser (nationalité, sexe, date de naissance...) sur lesquels
tu pourrais faire un premier filtre.
Bonne continuation
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
Bonjour, Robert
Vois ici pour limiter une liste en utilisant le contenu d'un autre
contrôle:
http://www.mvps.org/accessfr/forms/frm0028.htm
Sinon, la sélection par rapport au nom n'est peut-être pas la plus
judicieuse (ni la plus imple à mettre en place).
Peut-être ta table des artistes comporte-t-elle d'autres données que tu
pourrais utiliser (nationalité, sexe, date de naissance...) sur lesquels
tu pourrais faire un premier filtre.
Bonne continuation
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
Bonjour, Robert
Vois ici pour limiter une liste en utilisant le contenu d'un autre
contrôle:
http://www.mvps.org/accessfr/forms/frm0028.htm
Sinon, la sélection par rapport au nom n'est peut-être pas la plus
judicieuse (ni la plus imple à mettre en place).
Peut-être ta table des artistes comporte-t-elle d'autres données que tu
pourrais utiliser (nationalité, sexe, date de naissance...) sur lesquels
tu pourrais faire un premier filtre.
Bonne continuation
Je te remercie, je suis allé un peu voir, mais je ne pense pas que cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma demande
plus explicite
Merci quand même
Robert
Bonjour, Robert
Je n'ai pas dit que c'était la solution mais que tu peux t'en inspirer
pour
résoudre ton problème.
Sachant que les listes sont limitées à 65536 éléments, toute solution te
permettant d'en afficher plus te fera perdre des fonctionnalités au
passage
(du style, la propriété auto-étendre qui complète automatiquement le texte
dès la saisie du premier caractère).
Dans ton cas, on peut imaginer, d'une part, une zone de texte où
l'utilisateur tape les premiers caractères du nom et, d'autre part, une
zone
de liste (pas une liste déroulante) basée sur cette zone de texte et dont
la
source serait du style:
SELECT NOM FROM ARTISTES WHERE NOM LIKE Nz(Forms!TonForm!TaZoneDeTexte,'')
&
'*'
Problème: si l'utilisateur ne saisit rien, ta liste est toujours limitée à
65536 (adieu, Fred Williamson, Anthony Wong et Zovek).
Bonne continuation
Je te remercie, je suis allé un peu voir, mais je ne pense pas que cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma demande
plus explicite
Merci quand même
Robert
Bonjour, Robert
Je n'ai pas dit que c'était la solution mais que tu peux t'en inspirer
pour
résoudre ton problème.
Sachant que les listes sont limitées à 65536 éléments, toute solution te
permettant d'en afficher plus te fera perdre des fonctionnalités au
passage
(du style, la propriété auto-étendre qui complète automatiquement le texte
dès la saisie du premier caractère).
Dans ton cas, on peut imaginer, d'une part, une zone de texte où
l'utilisateur tape les premiers caractères du nom et, d'autre part, une
zone
de liste (pas une liste déroulante) basée sur cette zone de texte et dont
la
source serait du style:
SELECT NOM FROM ARTISTES WHERE NOM LIKE Nz(Forms!TonForm!TaZoneDeTexte,'')
&
'*'
Problème: si l'utilisateur ne saisit rien, ta liste est toujours limitée à
65536 (adieu, Fred Williamson, Anthony Wong et Zovek).
Bonne continuation
Je te remercie, je suis allé un peu voir, mais je ne pense pas que cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma demande
plus explicite
Merci quand même
Robert
Bonjour, Robert
Je n'ai pas dit que c'était la solution mais que tu peux t'en inspirer
pour
résoudre ton problème.
Sachant que les listes sont limitées à 65536 éléments, toute solution te
permettant d'en afficher plus te fera perdre des fonctionnalités au
passage
(du style, la propriété auto-étendre qui complète automatiquement le texte
dès la saisie du premier caractère).
Dans ton cas, on peut imaginer, d'une part, une zone de texte où
l'utilisateur tape les premiers caractères du nom et, d'autre part, une
zone
de liste (pas une liste déroulante) basée sur cette zone de texte et dont
la
source serait du style:
SELECT NOM FROM ARTISTES WHERE NOM LIKE Nz(Forms!TonForm!TaZoneDeTexte,'')
&
'*'
Problème: si l'utilisateur ne saisit rien, ta liste est toujours limitée à
65536 (adieu, Fred Williamson, Anthony Wong et Zovek).
Bonne continuation
Je te remercie, je suis allé un peu voir, mais je ne pense pas que cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma demande
plus explicite
Merci quand même
Robert
Je te remercie, je suis allé un peu voir, mais je ne pense pas que cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma demande
plus explicite
Merci quand même
Robert
Je te remercie, je suis allé un peu voir, mais je ne pense pas que cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma demande
plus explicite
Merci quand même
Robert
Bonjour.
Je suis tombé exactement sur le même problème, et on m'a proposé une
solution (qui est loin
d'être parfaite, mais qui allonge simplement un peu plus la durée de
saisie,
et qui augmente
les risques d'erreurs)
On m'a accusé de vouloir chercher la lune, mais il s'agit bien d'un GROS
defaut d'access, car
la seule solution pratique à la saisie d'un nom de ce type est bien la
liste
déroulante. J'ai
d'ailleurs le même problème pour les titres, car ma base en a dèjà 70000
et
75000 noms.
Bon, voici ma solution :
A coté de la zone de saisie déroulante, tu crée une zone isolée, qui
contient un caractère.
Je l'ai appelée 'prem_let'.
Sur l'événement sortie de ce champ (lost focus), tu entre le code :
' remplir la liste de recherche
' soit avec tout, soit avec un ou deux lettres de Prem_let
' il n'y a pas besoin de requery pour activer la liste
Dim sSQL As String
sSQL = "SELECT nom_divers FROM listnomtri " _
& "WHERE nom_divers Like '" & Prem_Let.Text & "*';"
'
Me.Champ30.RowSource = sSQL
End Sub
Sachant qu'ici 'champ30' est la liste déroulante, et que
listnomtri.nom_divers est une query
donnnant les noms triés alpha. Toute l'astuce tient dans la dénomination
'rowsource'.
Ensuite, la liste se déroule exactement comme d'habitude, mais uniquement
avec
cette première lettre (ou deux...). Le changement est assez rapide pour
être
invisible.
Il faut bien entendu ajouter une séquence identique au chargement du
formulaire, mais
avec juste '*' pour démarrer avec la liste totale. Il est aussi pratique
de
mettre un petit
bouton pour vider la zone 'prem_let', ce qui enlève la première lettre en
cours, et met
le focus pour en changer éventuellement.
Le seul risque, outre le temps perdu, c'est que si on oublie la vieille
première lettre, on peut
alors saisir un nom différent déjà existant sans le trouver, mais si la
table refuse les doublons
ce n'est pas catastrophique.
Et si on entre d'abord 't' sans remplir 'prem_let', on ne voit pas la
liste
correcte. Mais on
s'habitue assez vite.
Bonne chance....
--
Jean.paulo
"Gilles MOUGNOZ" a écrit dans le message de
news:%Je te remercie, je suis allé un peu voir, mais je ne pense pas que
cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma
demande
plus explicite
Merci quand même
Robert
Bonjour, Robert
Je n'ai pas dit que c'était la solution mais que tu peux t'en inspirer
pourrésoudre ton problème.
Sachant que les listes sont limitées à 65536 éléments, toute solution te
permettant d'en afficher plus te fera perdre des fonctionnalités au
passage(du style, la propriété auto-étendre qui complète automatiquement le
texte
dès la saisie du premier caractère).
Dans ton cas, on peut imaginer, d'une part, une zone de texte où
l'utilisateur tape les premiers caractères du nom et, d'autre part, une
zonede liste (pas une liste déroulante) basée sur cette zone de texte et dont
lasource serait du style:
SELECT NOM FROM ARTISTES WHERE NOM LIKE
Nz(Forms!TonForm!TaZoneDeTexte,'')
&'*'
Problème: si l'utilisateur ne saisit rien, ta liste est toujours limitée
à
65536 (adieu, Fred Williamson, Anthony Wong et Zovek).
Bonne continuation
Bonjour.
Je suis tombé exactement sur le même problème, et on m'a proposé une
solution (qui est loin
d'être parfaite, mais qui allonge simplement un peu plus la durée de
saisie,
et qui augmente
les risques d'erreurs)
On m'a accusé de vouloir chercher la lune, mais il s'agit bien d'un GROS
defaut d'access, car
la seule solution pratique à la saisie d'un nom de ce type est bien la
liste
déroulante. J'ai
d'ailleurs le même problème pour les titres, car ma base en a dèjà 70000
et
75000 noms.
Bon, voici ma solution :
A coté de la zone de saisie déroulante, tu crée une zone isolée, qui
contient un caractère.
Je l'ai appelée 'prem_let'.
Sur l'événement sortie de ce champ (lost focus), tu entre le code :
' remplir la liste de recherche
' soit avec tout, soit avec un ou deux lettres de Prem_let
' il n'y a pas besoin de requery pour activer la liste
Dim sSQL As String
sSQL = "SELECT nom_divers FROM listnomtri " _
& "WHERE nom_divers Like '" & Prem_Let.Text & "*';"
'
Me.Champ30.RowSource = sSQL
End Sub
Sachant qu'ici 'champ30' est la liste déroulante, et que
listnomtri.nom_divers est une query
donnnant les noms triés alpha. Toute l'astuce tient dans la dénomination
'rowsource'.
Ensuite, la liste se déroule exactement comme d'habitude, mais uniquement
avec
cette première lettre (ou deux...). Le changement est assez rapide pour
être
invisible.
Il faut bien entendu ajouter une séquence identique au chargement du
formulaire, mais
avec juste '*' pour démarrer avec la liste totale. Il est aussi pratique
de
mettre un petit
bouton pour vider la zone 'prem_let', ce qui enlève la première lettre en
cours, et met
le focus pour en changer éventuellement.
Le seul risque, outre le temps perdu, c'est que si on oublie la vieille
première lettre, on peut
alors saisir un nom différent déjà existant sans le trouver, mais si la
table refuse les doublons
ce n'est pas catastrophique.
Et si on entre d'abord 't' sans remplir 'prem_let', on ne voit pas la
liste
correcte. Mais on
s'habitue assez vite.
Bonne chance....
--
Jean.paulo
"Gilles MOUGNOZ" <gmougnoz@hotmail.fr> a écrit dans le message de
news:%23LkoH3kUGHA.4952@TK2MSFTNGP09.phx.gbl...
Je te remercie, je suis allé un peu voir, mais je ne pense pas que
cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma
demande
plus explicite
Merci quand même
Robert
Bonjour, Robert
Je n'ai pas dit que c'était la solution mais que tu peux t'en inspirer
pour
résoudre ton problème.
Sachant que les listes sont limitées à 65536 éléments, toute solution te
permettant d'en afficher plus te fera perdre des fonctionnalités au
passage
(du style, la propriété auto-étendre qui complète automatiquement le
texte
dès la saisie du premier caractère).
Dans ton cas, on peut imaginer, d'une part, une zone de texte où
l'utilisateur tape les premiers caractères du nom et, d'autre part, une
zone
de liste (pas une liste déroulante) basée sur cette zone de texte et dont
la
source serait du style:
SELECT NOM FROM ARTISTES WHERE NOM LIKE
Nz(Forms!TonForm!TaZoneDeTexte,'')
&
'*'
Problème: si l'utilisateur ne saisit rien, ta liste est toujours limitée
à
65536 (adieu, Fred Williamson, Anthony Wong et Zovek).
Bonne continuation
Bonjour.
Je suis tombé exactement sur le même problème, et on m'a proposé une
solution (qui est loin
d'être parfaite, mais qui allonge simplement un peu plus la durée de
saisie,
et qui augmente
les risques d'erreurs)
On m'a accusé de vouloir chercher la lune, mais il s'agit bien d'un GROS
defaut d'access, car
la seule solution pratique à la saisie d'un nom de ce type est bien la
liste
déroulante. J'ai
d'ailleurs le même problème pour les titres, car ma base en a dèjà 70000
et
75000 noms.
Bon, voici ma solution :
A coté de la zone de saisie déroulante, tu crée une zone isolée, qui
contient un caractère.
Je l'ai appelée 'prem_let'.
Sur l'événement sortie de ce champ (lost focus), tu entre le code :
' remplir la liste de recherche
' soit avec tout, soit avec un ou deux lettres de Prem_let
' il n'y a pas besoin de requery pour activer la liste
Dim sSQL As String
sSQL = "SELECT nom_divers FROM listnomtri " _
& "WHERE nom_divers Like '" & Prem_Let.Text & "*';"
'
Me.Champ30.RowSource = sSQL
End Sub
Sachant qu'ici 'champ30' est la liste déroulante, et que
listnomtri.nom_divers est une query
donnnant les noms triés alpha. Toute l'astuce tient dans la dénomination
'rowsource'.
Ensuite, la liste se déroule exactement comme d'habitude, mais uniquement
avec
cette première lettre (ou deux...). Le changement est assez rapide pour
être
invisible.
Il faut bien entendu ajouter une séquence identique au chargement du
formulaire, mais
avec juste '*' pour démarrer avec la liste totale. Il est aussi pratique
de
mettre un petit
bouton pour vider la zone 'prem_let', ce qui enlève la première lettre en
cours, et met
le focus pour en changer éventuellement.
Le seul risque, outre le temps perdu, c'est que si on oublie la vieille
première lettre, on peut
alors saisir un nom différent déjà existant sans le trouver, mais si la
table refuse les doublons
ce n'est pas catastrophique.
Et si on entre d'abord 't' sans remplir 'prem_let', on ne voit pas la
liste
correcte. Mais on
s'habitue assez vite.
Bonne chance....
--
Jean.paulo
"Gilles MOUGNOZ" a écrit dans le message de
news:%Je te remercie, je suis allé un peu voir, mais je ne pense pas que
cette
solution corresponde au problème, je vais essayer de mieux l'exposer et
surtout je vais mettre un lien ici vers un schéma pour rendre ma
demande
plus explicite
Merci quand même
Robert
Bonjour, Robert
Je n'ai pas dit que c'était la solution mais que tu peux t'en inspirer
pourrésoudre ton problème.
Sachant que les listes sont limitées à 65536 éléments, toute solution te
permettant d'en afficher plus te fera perdre des fonctionnalités au
passage(du style, la propriété auto-étendre qui complète automatiquement le
texte
dès la saisie du premier caractère).
Dans ton cas, on peut imaginer, d'une part, une zone de texte où
l'utilisateur tape les premiers caractères du nom et, d'autre part, une
zonede liste (pas une liste déroulante) basée sur cette zone de texte et dont
lasource serait du style:
SELECT NOM FROM ARTISTES WHERE NOM LIKE
Nz(Forms!TonForm!TaZoneDeTexte,'')
&'*'
Problème: si l'utilisateur ne saisit rien, ta liste est toujours limitée
à
65536 (adieu, Fred Williamson, Anthony Wong et Zovek).
Bonne continuation
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
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
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