Newsgroup: it.comp.appl.access
Titolo: Origine record con query filtrata

Ho una query1 con vari campi tra cui un campo tipo si/no
Ho una maschera con origine query1
Come si può fare in modo, sempre da origine dati (credo o forse da
filtro?),
che la maschera (di tipo continuo), mi visualizza (in apertura) tutti i
record esclusi
quelli in cui il campo_si_no ha valori si.
Inoltre al click di un pulsante1 devo fare in modo di visualizzare
tutti i record della quer1.
Al click di un pulsante2 devo visualizzare solo i record con campo_si_no
uguale a no, (eventualmente con l'accorgimento di una msgbox che avvisa
che non vi sono record tipo no nel caso il conteggio risultasse uguale a
zero).
penso che per l'ultima parte tra parentesi di essere in grado di
impostare
il codice, ipotizzo con un if applicato ad un dcount dei record)
ciao e grazie in anticipo per suggerimenti

 il codice, ipotizzo con un if applicato ad un dcount dei record)
Esatto, lo applichi alla query col criterio where a No
Antonio

 ciao e grazie in anticipo per suggerimenti
secondo me, se ho capito bene quello che vuoi fare, potresti mettere un
pulsante di opzione nell'intestazione del form, e inserire il criterio nel
campi si/no della query uguale al pusante, poi sull'evento click sul
pulsante di opzione esegui il requery
saluti
Paolo

 Cambiando la query col criterio Where complementare
Scusa cosa significa esattamente
si fa da codice e come?
Io ho provato ad inserire al click il comando DoCmd.ShowAllRecords
perň, giustamente mi fa vedere solo quelli con campisino = true
essendo proprio quella l'origine dei record (un'origine filtrata)
Ciao

 pulsante di opzione esegui il requery
mi sembra che per inserire nei criteri della query si
usa un'espressione del genere forms!mascherax!controllox,
per cui poi dopo la requery visualizzo i dati in base al criterio
solo che io già in apertura devo avere solo i dati dove camposi_no
è uguale a si
se metto nell'origine dati tale filtro, poi non so più come fare
per riapplicare il filtro dove camposi_no = no
oppure seguendo il tuo suggerimento dovrei (ipotizzo) quando carico
la maschera applicare da codice il criterio camposi_no = si
(solo che non so quale codice usare)
e poi al click di un pulsante far eseguire il criterio con camposi_no = no
(idem per quanto riguarda  il codice);
ipotizzo che si debba lavorare solo da codice poichè
dai criteri della query non posso più fare riferimento all'azione di un
pulsante
inoltre poi devo avere un pulsante che al click mostra tutti i recordi
indipendentemente dal campo si_no
penso che un DoCmd.ShowAllRecords sia sufficiente

rr12rr ha scritto:

imposti il pulsante di opzione con valore predefino true (lo fai dalle prorietà
del pulsante stesso),
come giustamente hai detto inserisci il criterio nella query facendo riferimento
al pulsante di opzione che metti in maschera
 forms!mascherax!OpzioneX . l'unico codice che devi scrivere è ME.Requery
sull'evento click del pulsante di opzione,
poi puoi inserite un command button che te li visualizza tutti.

 del pulsante stesso),
ah, già e vero; così lui partirebbe sempre con il criterio predefinito (anche se in
realtà è il valore predefinito a passargli il criteri)
più che un pulsante di opzione penso serva una casella di controllo (quella quadrata
piccolina)
oppure, visto che alla fine devo avere tre possibilità cioè tre criteri
variabili per filtrare
1) campo_si_no = si
1) campo_si_no = no
1) campo_si_no = tutti e due
posso creare sulla maschera un raggruppamento di tre pulsanti di opzione
e poi fare in modo che ai criteri venga assegnato solo uno dei tre
e in base a quale viene assegnato filtra o il si o il no oppure
nessun filtro
Solo che mi sfugge totalmente come si puo fare
Nel senso che se ho la casella, è semplice perchè usando il forms!mascherax!OpzioneX
dentro il criterio Query il gioco è fatto
invece dovrei ora mettere un criterio che se attivato pulsante 1 allora criteri
=true
se attivato pulsante 2 allora criterio=false, se attivato criterio 3 allo criterio
nessuno
Non ho la minima idea di come possa essere il codice da inserire
Hai qualche idea?
ciao

rr12rr wrote:

tieni presente che per i pulsanti di opzione (o alternativi, è uguale), tu hai la
possibilità di gestire il triplo stato, Si, No, Null
Proprietà StateTripo = si nella scheda dati
a questo punto, senza romperti troppo con la modifica del criterio sulla query, e senza
dover scrivere molto codice
potresti agire semplicemente sulla proprietà filter della maschera con, nell'evento
click del pulsante queste righe di codice:
Private Sub Opzione0_Click()
    If Not IsNull(Me.Opzione0) Then
        Me.Filter = "CampoSINO = " & Me.Opzione0
        Me.FilterOn = True
    Else
        Me.Filter = ""
    End If
End Sub

 possibilità di gestire il triplo stato, Si, No, Null
scusa, ma non vorrei sbagliarmi:
siccome io ho un unico pulsante, mentre lo utilizzo posso averlo
o spuntato oppure no, quindi posso fare 2 scelte
forse l'eventuale valore null, lo posso avere in apertura maschera.
Però io devo avere la possibilità di scegliere
o tutti i record, o quelli con campo_si_no a "si" o con medesimo campo a "no".
Fatto salvo, poi il fatto di far partire la maschera con un di questi filtri.


 o spuntato oppure no, quindi posso fare 2 scelte
no se tu imposti la proprietà StateTriplo hai la possibilità di selezionare tre valori, ti
apparirà spuntato, non spuntato e grigio quando ha valore null


proverò