Newsgroup: it.comp.appl.access
Titolo: RecordSource di un report

Ho un report a cui una maschera di input parametri invia:
1) Le date dal / al
2) Le matricole dal /al
3) la tipologia di matricole (Gruppo di tre opzioni : TUTTI - ATTIVI - 
INATTIVI)
4) I cantieri dal /  al
I parametri date, matricole e cantieri sono passati dalla maschera 
direttamente alla query di origine
mentre la tipologia di matricole (campo ATTIVO:True/false) non sono riuscito 
a passarlo.
Ho tentato con la seguente procedura:
1) In un modulo pubblico ho aggiunto:
     Pubblic Cercattivi As String
2) Ho creato la seguente sub su chiusura della cornice contenuta nella 
maschera Intervallo Stampa (maschera di input parametri):
     Private Sub CorniceCercaTuttiAttiviInattivi_AfterUpdate()
     Select Case Cercattivi
     Case 1
     Cercattivi = "TUTTI"
     Case 2
     Cercattivi = "ATTIVI"
     Case 3
     Cercattivi = "INATTIVI"
    End Select
    End Sub
3) Ho effettuato in chiusura della maschera Intervallo Stampa la seguente 
sub:
     Private Sub Form_Close()
    If Cercattivi = "TUTTI" Then
     Reports![LibroSoci e Matricola Generale].RecordSource = 
[QU-DATAMATRICOLA-MATRICOLA-CANTIERE-TUTTI]
     ElseIf Cercattivi = "ATTIVI" Then
     Reports![LibroSoci e Matricola Generale].RecordSource = 
[QU-DATAMATRICOLA-MATRICOLA-CANTIERE-ATTIVI]
     ElseIf Cercattivi = "INATTIVI" Then
     Reports![LibroSoci e Matricola Generale].RecordSource = 
[QU-DATAMATRICOLA-MATRICOLA-CANTIERE-INATTIVI]
     End If
     End Sub
4) Ho duplicato la query di origine del Report 
[QU-DATAMATRICOLA-MATRICOLA-CANTIERE] con  tre query in cui nel campo
ATTIVO ho messo come criteri rispettivamente: nella prima: [Nessun 
crirerio], nella seconda: [ =True], nella terza: [ =False]
ed ho reso il report non associato.
Le domande sono:
a) posso in qualche modo direttamente nella unica query inserire anche sul 
campo ATTIVO la scelta?
b) cosa è sbagliato nella sub Form_Close(0) (mi richiede l'imput dei 
parametri, anche di quelli che già funzionavano prima della
aggiunta del parametro tipologia)
c) c'è una collocazione migliore della sub (semmai direttamente nel report 
anzicché nella maschera di input dei parametri)?
Grazie per la risposta
Ladrodivita

 ha scritto nel messaggio 
news:44c5186a$0$47971$4faf...@reader3.news.tin.it...

Non so se sei tu un po' incasinato o se sono io che non ho capito il tuo 
problema.
Mi pare che tu voglia, secondo necessità, stampare tutti i cantieri (attivi 
e non), solo quelli attivi oppure solo quelli inattivi.
Se così è, devi avere nella form di selezione dei parametri di stampa un 
controllo <gruppo opzioni> con tre valori:
1=Tutti
2=Attivi
3=Inattivi
Nella query (una sola) che sta alla base del report inserisci un campo 
(miocampo:forms!miaform!nomegruppoopzioni).
Nei criteri di questo campo metti i valori 1,2,3, uno per riga.
Nei criteri della colonna del campo CercaAttivi e della riga con il valore 
1, non metti nulla;
nella riga del valore 2 metti "Attivo", nella riga del valore 3 metti 
"Inattivo".
Quando apri il report i record selezionati saranno quelli corrispondenti 
alla selezione fatta nel gruppo di opzioni della maschera.
Sono riuscito a darti un suggerimento, oppure ho aggiunto un altro po' di 
confusione?
Ciao
NatPP

 ha scritto nel messaggio 
news:44c55895$0$15866$4faf...@reader2.news.tin.it...

Hai perfettamente capito cosa volevo! Ho cercato di mettere in pratica i 
tuoi suggerimenti:
adesso ho una sola query "QU-DATAMATRICOLA-MATRICOLA-CANTIERE" che riceve
i parametri dalla maschera "Intervallo Stanpa". In talemaschera, oltre alle 
richieste di
data di inizio e fine, matricola inizio e fine, cantiere inizio e fine (che 
funzionano già) ho
la "CorniceCercaTuttiAttiviInattivi".
Quello che non ho ben capito come collegare l'opzione 1, 2 e 3 di tale 
cornice
al campo della Query denominato ATTIVO (campo che nella tabela di 
provenienza
è Vero/Falso.) nela query per fare in modo che stampi rispettivamente i 
Vero+Falso con opzione 1,
solo Vero con opzione 2, solo falso con opzione 3.
Grazie per l'infinita pazienza che hai con un novellino
Pietro


Chiariamo. Dato che quello che tu definisci 'cornice' sia uno dei controlli 
di Access chiamato 'Gruppo di opzioni', dato che queste opzioni possono 
essere in numero variabile (nel nostro caso tre), dato che per le sue 
caratteristiche è possibile una sola scelta, il valore che deve leggere la 
query è il valore che assume la 'cornice' in base alla scelta che hai fatto, 
per cui:
nella query QU-DATA... devi inserire un nuovo campo (e qui sto ripetendo 
quanto già detto nella precedente risposta)
MioCampo:Forms![Intervallo stampa]!CorniceCercaTuttiAttiviInattivi
(occhio alla sintassi; puoi modificare solo quello che sta alla sinistra dei 
due punti).
Nella stessa colonna di MioCampo all'incrocio della prima riga dei criteri 
scrivi 1, nella seconda riga 2, nella terza riga 3.
Nella stessa colonna del campo ATTIVO della query all'incrocio con la riga 
dei criteri dove ai messo 1, non scrivi nulla; nella seconda riga (quella 
con il 2) e sempre nella colonna del campo ATTIVO scrivi "-1" (senza 
virgolette) e nella riga con il valore 3 scrivi "0" (zero senza virgolette).
In questo modo se nella cornice... della form Intervallo stampa, selezioni 
la prima voce (che puoi chiamare come vuoi perché è solo un'etichetta), la 
cornice... assume il valore UNO e quindi la query ti restituirà tutti i 
record perché non valuterà lo stato del campo ATTIVO.
Se invece selezionerai la seconda voce, la query selezionerà solo quei 
record in cui il campo ATTIVO sarà Vero. Lo stesso dicasi per la terza voce 
per quanto riguarda i record con il campo ATTIVO posto a Falso.
Spero di essere stato esauriente.
Ciao.
NatPP