2010-07-05 7 views
0

Pour les données de requête comme celle-ci:Microsoft Access - Créer une séquence numérique basée sur les changements de valeur de champ?

+-------+---------+ 
    | Name | Details | 
    | JEFF | TEST1 | 
    | JEFF | TEST2 | 
    | JEFF | TEST3 | 
    | BOB | TEST1 | 
    | BOB | TEST2 | 
    +-------+---------+ 

Comment faire une requête de sorte qu'une séquence numérique (1,2,3 ...) peut être ajouté qui remet à zéro retour à 1 à chaque fois que le changement de nom (c.-à- JEFF à BOB)?

Est-il possible d'utiliser la fonction DCOUNT?

Ce que j'ai à ce jour est (il ne correctement séquence pas):

Update1:

La requête est correcte:

SELECT [dQuery].Name, [dQuery].[sequence], (select count([dQuery].Name) + 1 
from [dQuery] as dupe where 
dupe.[sequence]< [dQuery].[sequence] and dupe.name = [dQuery].name 
) AS [Corrected Sequence] 
FROM [dQuery] 
WHERE ((([dQuery].Name)="jeff")) 
ORDER BY [dQuery].Name, [dQuery].[sequence]; 
+0

Pourquoi croyez-vous que vous devez faire cela? –

+0

@ David-W-Fenton - C'est pour un rapport personnalisé - la séquence montre l'occurrence pas-à-pas d'un certain nombre d'activités et cette séquence change dynamiquement en fonction des données sources. –

+1

La séquence que vous tentez de générer est-elle dérivée d'autres données? Si oui, pourquoi ne pas utiliser les données dont il est dérivé pour commander les résultats? Si cette information n'est stockée nulle part, le modèle de données n'est peut-être pas aussi complet qu'il devrait l'être. –

Répondre

1

Jetez un oeil here . Je pense que l'auteur a résolu des problèmes très similaires.

1

Si vous souhaitez ajouter dynamiquement un numéro de série dans votre rapport, créez un rapport pour la table spécifique et ouvrez le rapport en mode Création. Ensuite, ajoutez une zone de texte dans le côté gauche de la ligne de données et donnez "= 1" (avec deux points) à sa propriété Source de contrôle @ onglet "Données". Remplacez "Non" par "Sur groupe" de sa propriété "Somme courante" @ onglet "Données". Au moment de l'exécution, ce champ de texte affichera les données en séquence comme 1, 2, 3 dans chaque ligne.

Merci

Questions connexes