Newsgroup: it.comp.appl.access
Titolo: vedere "n" record per pagina su form

ho una tabella con 10000 record, è possibile con qualche funzionalità di access mostrare solo 10 record per pagina sulla form?
 
esempio prelevo i 10000 record in ordine di data
appena apro la form vedo i primi 10 record poi cliccando freccia a destra vedo i 10 successivi e cosi via dove 10 è il numero di record per pagina "modificabile" all'occorrenza
 
se clicco freccia a sinistra vedo i 10 record precedenti 
 
in pratica lo stesso metodo di come gestisce i risultati di ricerca google o altri siti web per pagina.
 
Grazie a tutti.


Se in una Form continua non ridimensionabile togli le barre di scorrimento e disabiliti PgUP e PgDwn con l'apposito evento, puoi ottenere un effetto simile.
 
 
In alternativa, dovresti gestire la visione tabellare con un Array di controlli da popolare e ripulire su pressione dei 2 tasti. 
Però comporta più lavoro e perdi la possibilità di usare i filtri nativi di Access.
 
Saluti
 
 


Proverei a vedere questo, magari ha un senso:
http://forum.masterdrive.it/access-79/gestione-paginazione-maschere-continue-70896/
 
 
@Alex

Il giorno giovedì 7 novembre 2019 10:25:01 UTC+1, mario rossi ha scritto:

se usi una connessione ADODB puoi vedere le proprietà PageSize, PageCount.
come esempio di MS
https://docs.microsoft.com/it-it/sql/ado/reference/ado-api/absolutepage-pagecount-and-pagesize-properties-example-vb?view=sql-server-ver15
 

 
http://forum.masterdrive.it/access-79/gestione-paginazione-maschere-continue-70896/
 
 
 
Un pò pesante ma è una gran bella idea...
 
Come vanno le performances su un set di record ampio?
 
Saluti

Come descritto secondo me non è il massimo... su tabelle molto grandi la differenza si nota è personalmente non mi piace moltissimo.
Tuttavia è anche vero che se si sta usando Access come BE probabilmente si lavora in locale e non remoto, e forse con moli di dati relative, e questo mi tira molto il difetto... 
 
@Alex

Era mitiga... il T9 lo odio...
 
@Alex


Frammento di codice molto interessante
C'e' un piccolo errore facilmente intuibile
Essendo la subquery quella che fa escludere i record visibili alla query 
principale, per avere la PRIMA decina, sara' cosi'
-----------------------------
SELECT TOP 10 *
FROM Tabella
WHERE campochiave
          NOT IN (SELECT TOP 0 campochiave
                  FROM Tabella
                  ORDER BY  Campordinamento)
ORDER BY Campordinamento
----------------------------
 
per avere la SECONDA decina di record sara' cosi'
-----------------------------
SELECT TOP 10 *
FROM Tabella
WHERE campochiave
          NOT IN (SELECT TOP 10 campochiave
                  FROM Tabella
                  ORDER BY  Campordinamento)
ORDER BY Campordinamento
----------------------------
 
La domanda e':  dovendo pescare dati da una tabella ed avendo gia' una 
selezione per qualche campo (o piu' di uno), induvele' che si mettono le 
condizioni per filtrare?
-----------------------------
SELECT TOP 10 *
FROM Tabella
WHERE campochiave
          NOT IN (SELECT TOP 10 campochiave
                  FROM Tabella
                  ORDER BY  Campordinamento)
          AND campo1 = 'peppe'
          AND campo2 not like '*rossi*'
	 AND campo3 > 100
          AND campo4 >= #10/24/2019#
ORDER BY Campordinamento
----------------------------
 
Che dite, come logica e' giusta questa sopra?


O la where aggiuntiva ci vuole anche nella subquery?
 
  -----------------------------
  SELECT TOP 10 *
  FROM Tabella
  WHERE campochiave
            NOT IN (SELECT TOP 10 campochiave
                    FROM Tabella
                    where campo1 = 'peppe'


Prova ad analizzare il tutto con lo SHOWPLAN e può essere che si capisca meglio la dinamica di elaborazione dei dati in termini funzionali...
 
https://www.access-programmers.co.uk/forums/showthread.php?t=302257
 
https://www.techrepublic.com/article/use-microsoft-jets-showplan-to-write-more-efficient-queries/
 
 
Certo che se metti i criteri nella Query, che viene eseguita dopo la SubQuery, potrebbe essere che la Paginazione non sia proprio quella voluta... ma non ho prvato, lascio a chi ha voglia fare i tests... 
 
@Alex
 


Non volevo fare la prova via jet, perche' immagino sia mica tanto 
prestante la cosa, anzi da primi test e' decisamente lento, parliamo di 
diversi minuti per una tabella da 20k righe
Volevo preparare una query da sparare direttamente al db server, coi 
dati restituiti riempire un recordset da collegare alla form per la 
visualizzazione

Ma di che server parli...?
Quel codice va bene per Jet che non ha altri metodi per il paging...
 
Sqlserver ad esempio...: 
 
https://oakdome.com/programming/SQL_Pagination.php
 
 
Fai una SP alla quale passi il parametro di page...
 
@Alex


Si parlavo di Sql Server
Non sapevo avesse istruzioni native per la paginazione