2017-06-04 2 views
0

Dans le passé, je produisais toujours des rapports en interrogeant une base de données, en la déposant sur une feuille de calcul, en la triant, en lisant dans un tableau et en bouclant pour créer les documents. Ce que j'essaye de faire maintenant est de générer les rapports directement à partir du jeu d'enregistrements. Le problème que j'ai cependant est lors de l'utilisation des tableaux que j'avais un nombre d'enregistrement absolu, donc je pouvais vérifier si un champ dans l'enregistrement précédent était le même que dans l'enregistrement en cours.Boucle conditionnelle avec jeu d'enregistrements ADO dans VBA

Quelle est la meilleure façon de faire cela avec un jeu d'enregistrements? Stocker la valeur du champ dans une variable? Utiliser des boucles While imbriquées? Obtenez un nombre total d'enregistrements et utilisez des positions absolues pour faire des va-et-vient (ce qui ne semble pas être une bonne idée)?

MISE À JOUR Le jeu d'enregistrements contient plusieurs enregistrements de 20 sociétés différentes. Je trier la requête par le nom de l'entreprise et ensuite commencer à la parcourir. J'ai ensuite besoin de vérifier chaque enregistrement pour voir si elle provient de la même société que la précédente et si ce n'est pas créer une nouvelle feuille de calcul pour cette société.

+0

Certains d'entre eux semblent des approches raisonnables - pourquoi ne pas en essayer un? –

+0

J'ai senti que c'était probablement une tâche commune et que quelqu'un pourrait y répondre rapidement. Plus important encore, j'étais intéressé à découvrir quelle était la meilleure approche pour ne pas finir avec quelque chose qui fonctionne mais ne devrait pas être utilisé pour une raison quelconque. – pheeper

+3

Il est difficile de savoir quelle est la meilleure approche sans connaître vos besoins exacts en ce qui concerne la façon dont vous devez construire vos rapports. Si vous avez juste besoin de suivre quand la valeur d'un ou plusieurs champs spécifiques change alors en utilisant une variable pour suivre la valeur précédente fonctionne bien. –

Répondre

0

Je fais généralement le tri dans la requête en utilisant une clause "Order By". Parcourez ensuite les enregistrements triés en utilisant une variable pour suivre le nom de l'ordre de tri actuel et détecter le changement de nom en comparant le champ du nom de l'enregistrement actuel à la valeur de la variable.