Maison >Les sujets >Access >Introduction à la méthode de pagination de la base de données d'accès
Comme il existe de nombreux enregistrements de base de données, les résultats de la requête doivent être affichés dans des pages. Voici deux méthodes de pagination pour la base de données Access.
(Partage de vidéos d'apprentissage : Introduction à la programmation)
1. Méthode de pagination des résultats de la requête d'accès 1
1.
Supposons que le nombre d'enregistrements par page soit CntPerPage. Pour obtenir les résultats de la requête sur la page, utilisez l'instruction SQL suivante.SELECT * FROM ( SELECT TOP CntPerPage * FROM( SELECT TOP Page*CntPerPage * FROM TableName WHERE Query_Conditionm ORDER BY OrderField ) ORDER BY OrderField DESC ) ORDER BY OrderFieldOù TableName est le nom de la table, Query_Condition est la condition de requête et OrderField est le nom du champ utilisé pour le tri2 Principe Requête imbriquée en trois étapes :
Requête de première étape : interrogez les enregistrements de la page actuelle et de toutes les pages précédentes, et triez-les par ordre décroissant selon le champ de tri
SELECT TOP Page*CntPerPage * FROM TableName WHERE Query_Conditionm ORDER BY OrderFieldRequête de deuxième étape : interrogez le CntPerPage précédent de l'enregistrement qui vient d'être interrogé ( déjà classés par ordre décroissant) Interrogez les enregistrements (conservez-les par ordre décroissant), ce sont tous les enregistrements de la page
SELECT TOP CntPerPage * FROM( 第一步查询结果 ) ORDER BY OrderField DESCLa troisième étape de la requête : La requête précédente a effectivement interrogé tous les enregistrements de la page, mais par ordre décroissant Disposé, cette troisième étape consiste simplement à mettre les données qui viennent d'être obtenues dans une séquence positive. Si la commande n'est pas requise ou s'il existe d'autres processus de tri de données dans le programme, cette étape peut être omise.
SELECT * FROM ( 第二步查询结果 ) ORDER BY OrderField3. Par exemple Une table Student doit interroger tous les enregistrements dont l'âge est inférieur à 20 ans, triés par nom, le nombre d'enregistrements par page est de 100 et la requête à la page 5 doit être obtenu. Par conséquent, utilisez l'instruction SQL suivante.
SELECT * FROM (SELECT TOP 100 * FROM( SELECT TOP 500 * FROM Student WHERE age<20 ORDER BY name ) ORDER BY name DESC) ORDER BY name2. La méthode NOT IN couramment utilisée sur Internet Lors de la recherche de méthodes de pagination sur Internet, c'est la méthode la plus courante.
Méthode :
SELECT TOP CntPerPage * FROM TableName WHERE Query_Conditionm AND id NOT IN ( SELECT TOP (Page-1)*CntPerPage id FROM TableName WHERE Query_Conditionm ORDER BY id ) ORDER BY idPrincipe :
Requête en deux étapes :
Étape 1 : Sélectionnez tous les ID d'enregistrement éligibles avant cette page
SELECT TOP (Page-1)*CntPerPage id FROM TableName WHERE Query_Conditionm ORDER BY idDeuxième étape : Ajoutez la condition de requête "l'identifiant n'est pas dans les résultats de la requête des identifiants qui viennent d'être sélectionnés", et obtiendra les premiers enregistrements CntPerPage de cette manière, les résultats de la requête filtreront toutes les données de la première page Page-1, puis sélectionneront les données sur Page-. 1. Tous les enregistrements.
SELECT TOP CntPerPage * FROM TableName WHERE Query_Conditionm AND id NOT IN (第一步查询结果) ORDER BY id3. Efficacité des requêtes de paginationL'efficacité réelle des tests des deux méthodes est presque la même, mais je pense personnellement que l'efficacité des jugements NOT IN dans la deuxième méthode ne devrait pas l'être. élevé, donc je pense que si la quantité d'enregistrements est relativement importante, la première méthode devrait être plus efficace. Recommandations associées :
Tutoriel d'accès à la base de données
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!