Condividi tramite

QUERY usando SELECT TOP N

Anonimo
2017-03-23T02:36:12+00:00

Salve, volevo sapere se esiste la possibilità di creare una query utilizzando SELECT TOP N, dove N è un numero variabile che ricavo da una formula matematica che si trova nella maschera da cui voglio generare il Select.

ESEMPIO PRATICO:

Nella mia maschera visualizzo tutti i record di una tabella DETTAGLI.

Nella maschera ho il campo calcolato REC30 in cui viene calcolato il numero di record multipli di 30 della tabella dettagli.

Premendo il pulsante BOTTONE30, vorrei creare una tabella DETTAGLI30 in cui sono presenti SOLO i record della tabella DETTAGLI però in multipli di 30.

VALORIZZIAMO L'ESEMPIO:

Nella maschera visualizzo 173 record

REC30= 150  (FIX(173/30)*30)

Premo BOTTONE30 e mi si crea la tabella DETTAGLI30 con i miei 150 record

con il BOTTONER vorrei che si creasse una tabella DETTAGLIR con i restanti 23 record (173-150)

se nella tabella mi capitano 108 record allora

REC30=90

DETTAGLI30=90 record

DETTAGLIR= 18 record

nella stringa sql

SELECT TOP N DETTAGLI.*

vorrei che al posto di N ci fosse REC30.

Ho provato a farlo ma mi restituisce errore

Grazie

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-03-23T07:25:23+00:00

Ciao,

potresti creare una query e modificarne al volo lo statement sql tramite la proprietà sql dell'oggetto querydef. Esempio:

Crei una query generica tipo  SELECT * FROM DETTAGLI

Alla pressione del pulsante modifichi al volo la query:

currentdb.querydef ("tuaquery").sql = "SELECT TOP " & REC30 & " * FROM DETTAGLI"

Vedi qui

David

Ps: parli della tabella DettagliR e Dettagli30 ma poi nel codice sql vedo che fai una select su Dettagli?!!

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-03-23T13:34:01+00:00

    ... forse perchè non è querydef ma querydefs?

    David

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2017-03-23T12:10:25+00:00

    Non capisco come mai mi segnala errore su

    currentdb.querydef

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-03-23T10:49:09+00:00

    mmmm ...

    ad occhio mi pare di poterti dire di si, anzi la query potrebbe essere una unica che viene modificata nel codice SQL prima di lanciare ciascuno dei due report. In questo modo entrambi insistono sulla stessa query ma uno visualizzerà solo i multipli esatti di 30 mentre il secondo l'eccedenza.

    David

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-03-23T10:23:25+00:00

    Grazie David per la risposta.

    Parlo della tabella DETTAGLI, perché è la tabella che mi si crea da una query a campi incrociati...

    un po come dire:

    query tabella 1 >> crea tabella dettagli

    query tabella 2 >> aggiorna tabella dettagli

    query tabella A >> aggiorna tabella dettagli

    >> tabella dettagli è il mio bel calderone dove ho tutti i dati che m'interessano

    >> tabella DEttagli30 mi fa da origine dati per il report riepilogo1

    >> tabella DettagliR mi fa da origine dati per il report riepilogo2

    ma allora dici che non posso creare anche solo le 2 query ed assegnarle ai report in fase d'apertura anteprima, così evito anche la creazione delle tabelle?

    alla fine se ho i report e l'utente se li stampa le tabelle potrei anche evitare di crearle ed ogni volta le genero dalla tabella Dettagli.

    La risposta è stata utile?

    0 commenti Nessun commento