web-dev-qa-db-fra.com

Utilisation d'une requête de paramètres pour générer des graphiques dans les rapports d'accès MS

J'utilise Microsoft Access 2007 et j'ai une requête qui ressemble à quelque chose comme ça;

PARAMETERS Identifier TEXT(255);

SELECT 
  DateDiff('h', (SELECT Min(SampleDateTime) FROM Specimen WHERE UserID=[Identifier]), SampleDateTime) AS ElapsedTime, Specimen.ValueA 
FROM Specimen
WHERE Specimen.UserID=[Identifier]
ORDER BY Specimen.SampleDateTime

Maintenant, cette requête fonctionne bien si j'ouvre la requête puis entrez la valeur "identifiant" appropriée dans le formulaire qui apparaît. Cependant, j'aimerais utiliser cette requête pour générer un graphique dans un rapport qui répertorie toutes les études. c'est à dire. Le rapport sera composé de 1 page par enregistrement, et chaque page contiendra 1 graphique, qui indique les données ci-dessus tracées en tant que tableau de ligne.

Toutefois, si je publiais un tableau et utilisez l'assistant pour créer le graphique, lorsque j'arrive à la scène où j'aimerais affecter un démon de l'enregistrement en cours dans le rapport à une valeur dans la carte, je ne parviens pas à attribuer Une variable de rapport au paramètre que j'ai décrit ci-dessus "Identifiant". Maintenant, normalement, je construirais la requête pour descendre toutes les données, puis affecter un "filtre" sur ces données, je suppose que l'assistant de graphique. Cependant, comme j'ai une sous-requête, cela ne fonctionne pas dans ce cas.

Ce que je crois que je cherche, c'est une façon d'attribuer le paramètre 'Identifiant' à partir des paramètres d'enregistrement actuels dans un rapport multi-enregistrements.

5
John Wordsworth

Vous devez essayer quelque chose d'un peu de Loopy, comme ce qui suit:

Les rapports ont une propriété appelée tag
[.____] Ouvrez le rapport dans la vue design
[.____] Ouvrez la feuille de propriétés et sélectionnez l'onglet "Autre"
[.____] La propriété Tag est au bas de la liste

Vous pouvez accéder à cette balise comme suit:

Reports("Report Name").Tag

Il suffit de remplacer le [Identifier] Avec Reports("Report Name").Tag ou Me.Tag

De cette façon, si vous ouvrez la requête, vous serez toujours invité à saisir l'ID utilisateur.

Lorsque vous ouvrez le rapport, définissez Me.Tag Sur n'importe quel nombre que vous voulez. Comment pour vous le mettre en premier lieu?

Sur la feuille de propriétés, cliquez sur Event Tab. Dans le OnLoad Event, Cliquez sur les trois points (ellipses). Menu pop ups. Cliquez sur Code Builder. VBA s'ouvre avec:

Private Sub Report_Load()

End Sub

Maintenant, mettez ce paramètre dans (disons que l'ID utilisateur provient d'un formulaire):

Private Sub Report_Load()

   Me.Tag = Forms("Form Name")("Field Name")

End Sub

Essaie !!!

3
RolandoMySQLDBA