Vous devez ajouter une ligne qui indique 'Rien' ou 'Tout', ce qui convient le mieux. La solution habituelle est une requête UNION, qui peut être utilisée comme RowSource de la liste déroulante. La requête Union peut être utilisée pour ajouter des champs virtuels.
Si le combo comtains que des valeurs uniques, vous pouvez dire:
SELECT "Nothing" As Description
FROM ATable
UNION
SELECT Description
FROM ATable
UNION élimine les doublons, UNION ALL < n'a pas, donc s'il y a des lignes correspondantes, vous pouvez dire:
SELECT DISTINCT "Nothing" As Description
FROM ATable
UNION ALL
SELECT Description
FROM ATable
Si vous voulez "Rien" pour trier d'abord, vous devez jongler un peu et utiliser "Rien", ou "-Neuf", mais si vous avez un ID ou une colonne clé, vous pouvez obtenir un bon tri, comme ça:
SELECT 0 As ID, "Nothing" As Description
FROM ATable
UNION
SELECT ID, Description
FROM ATable
Lorsque je veux retourner 1 ligne, comme dans le SELECT pour le choix "Tout" ou "Rien", j'utilise SELECT TOP 1 sur la plus petite table indexée dans mon application (locale, si possible). Cela semble être plus efficace que DISTINCT, mais je n'ai jamais vraiment testé. –
Je suppose que tant que la table choisie est garantie pour rester pendant la vie de la base de données. Il pourrait être assez déroutant si la suppression d'une petite table causait de nombreux problèmes. – Fionnuala
Je ne supprime pas les tables car une fois que j'ai implémenté l'application, le schéma reste en place pour la durée de vie de l'application. Je ne choisirais jamais une table qui ne faisait pas partie du schéma de données principal, ou dont dépendait l'interface utilisateur (comme le tblConfig que j'ai dans la partie frontale de presque toutes mes applications). –