Recherche de filtre dans la liste déroulante incomplète programme modifié backend SQL base de données Access

StackOverflow https://stackoverflow.com/questions/3978062

Question

Dans ce fil un utilisateur a eu des problèmes avec le filtre de recherche étant manquant dans une base de données de acess qui avait un système de serveur SQL. a été facilement résolu le problème simplement en cochant sur une option dans les paramètres de base de données en cours qui ont permis à des champs ODBC pour fournir également des listes déroulantes recherche filtre.

Pour les confondre, le filtre de recherche est excel comme fonction dans une vue de fiche technique qui vous permet de cliquer sur le menu déroulant du nom du champ et sélectionnez des valeurs individuelles de ce champ pour les filtres par une case à cocher.

I, cependant, ont un problème légèrement différent. La case à cocher pour permettre de filtre lookups champ ODBC est actif dans les paramètres, de sorte que ce n'est pas un problème. Si j'ai une forme qui extrait des données d'une requête, les filtres recherche excellent travail, et sont préchargés avec des valeurs dans ce domaine pour la sélection du filtre. Si cette source d'enregistrement est changé en VBA, cependant, dire par exemple, une instruction SQL qui correspond exactement à cette requête, le filtre de recherche ne fonctionne plus. J'ai essayé de créer un jeu d'enregistrements et l'attacher à la même forme, la création d'une instruction SQL et l'attacher à la source d'enregistrement, et en ouvrant la forme avec des arguments qui sont ensuite utilisés dans la forme est sur l'événement de charge pour changer la source d'enregistrement, tout le même résultat sans filtre de recherche.

Suis-je sur quelque chose?

Était-ce utile?

La solution

Après HansUp a répondu, je pataugé à essayer de comprendre ce qu'il voulait dire et RAN en plutôt par mégarde.

Puisque la forme est ouverte par une autre forme où l'instruction SQL est prégénérés, je simplement attribué la requête sous-jacente à un objet QueryDef de la forme et appliqué la déclaration prégénérée SQL à la propriété SQL de l'objet. Lorsque le formulaire a ensuite été ouvert, la nouvelle instruction SQL a été utilisé et tous les filtres de consultation a fonctionné correctement. Je suis très heureux: D

Voici un bas de course rapide du code:

Dim db as Database
Dim qDef as QueryDef
Dim strSQL as String

'generate SQL statement and assign it to strSQL here'

Set qDef = db.QueryDefs("qryMyQuery")
qDef.SQL = strSQL
DoCmd.OpenForm "frmMyForm"  'frmMyForm is based of qryMyQuery'

Merci, HansUp!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top