2015-10-23 3 views
2

J'utilise Microsoft Office Access comme SGBD et j'utilise VBA pour écrire mon code pour ce projet.Pourquoi mes enregistrements ne sont-ils pas insérés dans le même ordre d'exécution?

Je suis en train de scrapper des données pour des éléments sur un site Web et j'ai rencontré quelque chose qui m'a semblé bizarre après avoir inséré mes données dans une table.

Dans mon code, j'utilise une boucle pour itérer et collecter tous les éléments que le site a à offrir. Une fois que j'ai toutes les données pour un article, je l'insère dans ma table, puis passe à la suivante. Il y a 14 724 articles que je dois insérer dans ma table. Si je les passe en revue tous, ils seront ajoutés à la table mais ils sont hors d'usage une fois que je les regarde dans la table, même si tous les éléments sont là, mais si je règle la boucle pour ne collecter que ... disons seulement les 10 premiers éléments puis ils apparaîtront dans le même ordre dans lequel ils ont été recueillis qui est le même ordre qu'ils apparaissent dans le code source du site.

Il est important de noter que ma table n'a pas de champ id car elle n'est pas obligatoire car il existe un autre champ qui sert d'identifiant unique pour un élément de la table.

Cela ne semble pas être un gros problème, mais je suis curieux de savoir pourquoi cela se produit. Existe-t-il une sorte de limitation lors de l'utilisation de MS-Access en tant que votre SGBD?

Toute idée est grandement appréciée.

Merci.

+1

Si vous souhaitez récupérer les enregistrements dans le même ordre que celui dans lequel ils ont été insérés à l'origine, incluez un champ dans lequel ils stockent leur ordre d'insertion. – HansUp

+0

^Comme une colonne NuméroAuto, que vous pouvez trier par la suite. – Andre

Répondre

5

Une table n'est pas une feuille de calcul.

Ceci est inhérent à tout moteur de base de données relationnelle. Les enregistrements d'une table n'ont pas d'autre ordre que celui que vous avez défini ou appliqué.

1

Si vous souhaitez trier les données (croissant ou décroissant), utilisez une requête. La table n'a aucun ordre. Même les champs n'ont aucun ordre pertinent.