Newsgroup: it.comp.appl.access
Titolo: Nr Record variabile in report

Ho necessità in un report di poter variare la quantità di dati da
stampare, mi spiego meglio.
Ho una tabella Tbl_Presenze con 200 record, devo poter effettuare la
stampa dei soli primi 100.
Premetto che la variabile "100" la rilevo nella maschera in un campo
non assegnato, quindi ci faccio inserire il valore all'occorrenza.
Ho fatto così in un report : SELECT TOP 100 Sedute.IDPaziente....
però chiaramente mi si ferma sempre a 100 mentre la mia necessità è
quella di poter variarlo come detto in un campo nella maschera dove ho
inserito il pulsante STAMPA.
Grazie e Buon Anno


Così a me funziona
SELECT TOP 100 tuatabella.*
FROM tuatabella
;


Certo lo so, così mi funziona, solo che a me serviva di poter rilevare
il numero dei record da stampare tipo..
SELECT TOP ? MiaTabella   FROM [quanti].[miaMaschera] ecc. ecc.

 ha scritto nel messaggio 
news:513c3499-67e6-439a...@o4g2000pra.googlegroups.com...

[risposta]
Imposta il limite al minimo (es. 10); apri il report e rendilo invisibile (o 
nascosto); modifica il RecordSource e rendilo visibile:
es.
DoCmd.OpenReport "nomeReport",acViewPreview ,,,acHidden
Reports("nomeReport").RecordSource = "Select top " & me!top & " ..."
Reports("nomeReport").Visible = true
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:513c3499-67e6-439a...@o4g2000pra.googlegroups.com...

Non sono riuscito a fare come spiegato, ma magari non sono stato
chiaro, posto il codice che c'è nel pulsante per aprire il report.
Nella maschera del pulsante ho una casella di testo chiamata "QUANTI"
dove inserisco di volta in volta la quantità di record da stampare.
Grazie della risposta.
------------------------------------  codice
Private Sub ASL_Click()
On Error GoTo Err_ASL_Click
'------
DoCmd.OpenReport "DETTAGLIO_PRESENZE_DH_ASL", acViewPreview
Reports("DETTAGLIO_PRESENZE_DH_ASL").RecordSource = "Select top " & Me!
Top & "..."
Reports("DETTAGLIO_PRESENZE_DH_ASL").Visible = True
'-----
'-------- questo l'originale ------------
   ' Dim stDocName As String
    'stDocName = "DETTAGLIO_PRESENZE_DH_ASL"
    'DoCmd.OpenReport stDocName, acPreview
'--------  fine originale -----------
Exit_ASL_Click:
    Exit Sub
Err_ASL_Click:
   ' MsgBox Err.Description
    Resume Exit_ASL_Click
End Sub
-------------------- fine codice

 ha scritto nel messaggio 
news:5a55ff97-13ee-42de...@p36g2000prp.googlegroups.com...
Non sono riuscito a fare come spiegato, ma magari non sono stato
chiaro, posto il codice che c'è nel pulsante per aprire il report.
Nella maschera del pulsante ho una casella di testo chiamata "QUANTI"
dove inserisco di volta in volta la quantità di record da stampare.
Grazie della risposta.
------------------------------------  codice
Private Sub ASL_Click()
On Error GoTo Err_ASL_Click
'------
DoCmd.OpenReport "DETTAGLIO_PRESENZE_DH_ASL", acViewPreview
Reports("DETTAGLIO_PRESENZE_DH_ASL").RecordSource = "Select top " & Me!
Top & "..."
[risposta]
Perché Me!Top invece di Me!QUANTI?
Reports("DETTAGLIO_PRESENZE_DH_ASL").Visible = True
'-----
'-------- questo l'originale ------------
   ' Dim stDocName As String
    'stDocName = "DETTAGLIO_PRESENZE_DH_ASL"
    'DoCmd.OpenReport stDocName, acPreview
'--------  fine originale -----------
Exit_ASL_Click:
    Exit Sub
Err_ASL_Click:
   ' MsgBox Err.Description
    Resume Exit_ASL_Click
End Sub
-------------------- fine codice
[risposta]
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:5a55ff97-13ee-42de...@p36g2000prp.googlegroups.com...

Non sono riuscito, magari potrebbe essermi di aiuto anche un altra
possibilità, per esempio far creare una tabella temporanea di "x"
record, la collego al report ed ho fatto.
Quindi nella maschera metto il valore [QUANTI] e clicco il pulsante
che mi crea la tabella ecc.
Grazie Sergio, con i tuoi suggerimenti riesco sempre...
A presto

 ha scritto nel messaggio 
news:e96c5db3-8fcb-4c3f...@s36g2000vbp.googlegroups.com...
Non sono riuscito, magari potrebbe essermi di aiuto anche un altra
possibilità, per esempio far creare una tabella temporanea di "x"
record, la collego al report ed ho fatto.
Quindi nella maschera metto il valore [QUANTI] e clicco il pulsante
che mi crea la tabella ecc.
Grazie Sergio, con i tuoi suggerimenti riesco sempre...
A presto
[risposta]
Funziona; solo che non puoi impostare il recordsource se il report è già in 
fase di stampa (es. anteprima).
Quindi apri il report, nascosto, in modalità design (struttura); cambi il 
recordsource e visualizzi il report.
Es.
...
DoCmd.OpenReport "DETTAGLIO_PRESENZE_DH_ASL", acViewDesign, , , acHidden
Reports("DETTAGLIO_PRESENZE_DH_ASL").RecordSource = "Select top " & 
Me!Quanti & "..."
DoCmd.OpenReport "DETTAGLIO_PRESENZE_DH_ASL", acViewPreview
...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:e96c5db3-8fcb-4c3f...@s36g2000vbp.googlegroups.com...

Sergio scusami ma proprio non ci riesco, ti ripeto che non sono molto
ferrato quindi sarà questo il problema, e penso che l'alternativa che
ti ho chiesto prima alla fine mi torna utile in altri parti del
programma.
Se puoi darmi una dritta per fare così:
Faccio una query che mi crea una nuova tabella, la stessa varia a
seconda di un valore che devo inserire di volta in volta in una
maschera, poi con la tabella ci faccio il report ed ho risolto.
Ti ringrazio
Ciao

 ha scritto nel messaggio 
news:7b7e6bc0-14be-4d7a...@40g2000prx.googlegroups.com...
Sergio scusami ma proprio non ci riesco, ti ripeto che non sono molto
ferrato quindi sarà questo il problema, e penso che l'alternativa che
ti ho chiesto prima alla fine mi torna utile in altri parti del
programma.
[risposta]
Mi dispiace ma non posso accettare un "ma proprio non ci riesco" senza che 
tu descriva il "cosa hai fatto", in merito alle modifiche (suggerite) da 
effettuare e (per es.) i nomi dei controlli (form, caselle di testo, etc.). 
Oltretutto non indichi cosa succede o non succede per affermare che non 
funziona (o non riesci).
Io ho creato una form, con una casella di testo e un bottone; un report 
associato ad una tabella (chiamata [prova]) chiamato [provaTop]. La casella 
di testo l'ho chiamata [top] e nel bottone, evento "su clic", ci ho 
inserito:
...
DoCmd.OpenReport "provaTop", acViewDesign, , , acHidden
Reports("provaTop").RecordSource = "Select top " & Me!top & " * From prova"
DoCmd.OpenReport "provaTop", acViewPreview
...
e a me funziona.
Se puoi darmi una dritta per fare così:
Faccio una query che mi crea una nuova tabella, la stessa varia a
seconda di un valore che devo inserire di volta in volta in una
maschera, poi con la tabella ci faccio il report ed ho risolto.
[risposta]
Currentdb.Execute "Select into nomeNuovaTabella top " & me!quanti & "..."
Ti ringrazio
Ciao


 ha scritto nel messaggionews:7b7e6bc0-14be-4d7a...@40g2000prx.googlegroups.com...

Perfetto Sergio, sono io che non riesco a spiegarmi, in realtà mi sono
creato gli elementi come hai fatto tu e funziona perfettamente,
adesso devo associarlo al mio sistema.
Per la creazione della tabella però non sono riuscito, dove devo
inserire il codice - Currentdb.Execute "Select into nomeNuovaTabella
top " & me!quanti & "..." - ?
Siete sempre i migliori, riuscite sempre a risolvere ogni
problematica...  Certo dovrei studiare un pochino...
Grazie

 ha scritto nel messaggio 
news:f4800e4c-8f83-40eb...@35g2000pry.googlegroups.com...
Perfetto Sergio, sono io che non riesco a spiegarmi, in realtà mi sono
creato gli elementi come hai fatto tu e funziona perfettamente,
adesso devo associarlo al mio sistema.
Per la creazione della tabella però non sono riuscito, dove devo
inserire il codice - Currentdb.Execute "Select into nomeNuovaTabella
top " & me!quanti & "..." - ?
[risposta]
Dove(o quando) vuoi che venga eseguita l'istruzione.
Se la nuova tabella è l'origine del report, dovrai per forza eseguire 
l'istruzione prima dell'apertura del report; quindi o in testa al codice 
precedente o in un altro bottone...
Siete sempre i migliori, riuscite sempre a risolvere ogni
problematica...  Certo dovrei studiare un pochino...
Grazie
[risposta]
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggionews:f4800e4c-8f83-40eb...@35g2000pry.googlegroups.com...

Benissimo Sergio, ho eseguito il tutto inserendolo nel mio database e
funziona in maniera perfetta,
l'unica cosina è il fatto che al momento di chiudere il report,
l'utente debba rispondere con SI/NO/ANNULLA  ecco,
si potrebbe eliminare questa domanda e far si che il report si chiuda
in automatico, magari dopo la stampa ?
Ho provato a mettere "DoCmd.Close acReport, "ReportName", acSaveYes"
nell'evento di chiusura del report ma non accade nulla.
Se si puo fare è meglio visto che gli utenti non devono poter
modificare nulla.
Grazie Sergio e come sempre GRANDI
Ciao

 ha scritto nel messaggio 
news:2f92b35a-8f3f-4dcc...@v5g2000prm.googlegroups.com...
Benissimo Sergio, ho eseguito il tutto inserendolo nel mio database e
funziona in maniera perfetta,
l'unica cosina è il fatto che al momento di chiudere il report,
l'utente debba rispondere con SI/NO/ANNULLA  ecco,
si potrebbe eliminare questa domanda e far si che il report si chiuda
in automatico, magari dopo la stampa ?
Ho provato a mettere "DoCmd.Close acReport, "ReportName", acSaveYes"
nell'evento di chiusura del report ma non accade nulla.
Se si puo fare è meglio visto che gli utenti non devono poter
modificare nulla.
Grazie Sergio e come sempre GRANDI
Ciao
[risposta]
Difatti non è l'utente che modifica ma la tua istruzione con la TOP; quindi 
dopo averla impostata devi salvare il report e poi aprirlo:
...
Reports("...").RecordSource = "Select top " & Me!top & " * From ..."
RunCommand acCmdSave
DoCmd.OpenReport "...", acViewPreview
