2010-10-04 3 views
0

complexe Je sais que la question de savoir comment passer des paramètres a été demandé un certain temps avec la présente Previous Stack Overflow questionAccès: Comment passer des paramètres à signaler lorsque la clause WHERE est intégrée dans SQL

Cependant ma situation implique SQL est un peu plus complexe et ne peut pas utiliser le filtre "where clause" disponible lors de l'ouverture d'un rapport. Mon instruction SQL est un agrégat qui produit une seule ligne avec un champ pour chaque agrégat. J'ai deux paramètres "@StartDate" et "@EndDate" que je dois passer dans la requête.

SELECT q1.CasesAssigned, q2.WarningsIssued 
FROM 
(SELECT COUNT(*) AS CasesAssigned 
FROM vwCaseDetail 
WHERE DateAssigned Between @StartDate AND @EndDate) as q1, 
(SELECT COUNT(*) AS WarningsIssued 
FROM vwWarningDetail 
WHERE DateIssued Between @StartDate AND @EndDate) as q2 

Ce que je voudrais faire est « pop-up » un dialogue ou un petit formulaire pour l'utilisateur à saisir les dates de début et de fin, mais je n'ai aucune idée sur la façon de transmettre les valeurs dans la requête le rapport est basé sur. Aucune suggestion? Je vous remercie.

Répondre

2

Il vous suffit d'appeler le rapport à partir d'un formulaire. Sur ce formulaire, vous avez deux zones de texte pour vos dates de début et de fin.

La requête doit alors être changé pour

WHERE DateAssigned Between [Forms]![frmReporting]![txtDate_from] AND [Forms]![frmReporting]![txtDate_to] 
+0

Ce fonctionnait très bien! Cela me permet de valider l'entrée de l'utilisateur avant de le transmettre au rapport. Maintenant, je dois juste comprendre pourquoi le rapport s'ouvre et se ferme par lui-même. Je lance le rapport après avoir cliqué sur un bouton "OK" lorsque toutes les valeurs ont été saisies. Peut-être que c'est pour une autre question :) Merci Kevin! – webworm

+0

J'ai ajouté une autre question de débordement de pile qui aborde le problème .. http://stackoverflow.com/questions/3856261/how-to-collect-input-via-a-form-and-pass-to-report-query-in -access – webworm

+0

Comme je l'ai suggéré dans un commentaire de cette autre question, vous pouvez envisager d'ouvrir le formulaire dans l'événement OnOpen du rapport et de définir la propriété Recordsource du rapport avec la clause WHERE appropriée. –