Sottomaschera e casella opzioni

di il
22 risposte

Sottomaschera e casella opzioni

Ciao a tutti
Ho una maschera di ricerche che contiene la sottomaschera dei valori ANAGRAFICA
Vorrei fare in modo che selezionando nella maschera un pulsante tra i vari disponibili della casella opzioni (anch eun altro metodo andrebbe bene) la sottomaschera anagrafica mi visualizzasse i records risultanti
In particolare si tratta del valore relativo all' eta
Con le opzioni scelgo:
minore 14
tra 15 e 20
tra 16 e 25
ecc

e nella sottomaschera dovrei vedere i risultati
Il valore eta è gia calcolato e si trova nella ANAGRAFICA

Non so come procedere, se vado di sql non so dove inserirlo per collegarlo ai pulsanti
se collego ai pulsanti un codice..non so come va scritto

Inoltre vorrei avere il conteggio dei record risultanti

Grazie per l aiuto

22 Risposte

  • Re: Sottomaschera e casella opzioni

    Avere il calcolo dell'età nella tabella Anarafica è quanto di più sbagliato si possa fare nel modo più assoluto....!!!!
    Pensa alla validità di quel dato...? Non è minimamente affidabile, anche ipotizzando tu faccia un aggiornamento saresti in ogni caso fuori di qualsiasi regola.

    Il Calcolo dell'età è il tipico dato che si ricava ONLINE in una query, in questo modo è sempre aggiornato.

    Detto questo farai come credi...

    La questione del filtro invece è semplice, se per Opzioni intendi un OptionGroup quindi con 3 Opzioni... dovrai costruire una Condizione da passare alla proprietà Filter della SottoMaschera...!
    
    Dim strWHR As String
    Select Case Me!NomeGRuppoOpzioni.Value
       Case 1:         strWHR="CampoEta<=14"
       Case 2:         strWHR="CampoEta Between 15 And 20"
       Case 3:         strWHR="CampoEta Between 16 And 25"
    End Select
    Me.NomeSubForm.Form.Filter=strWHR
    Me.NomeSubForm.Form.FilterOn=true
  • Re: Sottomaschera e casella opzioni

    Grazie
    mi pare che il valore eta funziuoni perfettamente in ogni caso..
    cmq mi interessa sapere come lavorare in quella condizione esposta perchè si riproporra anch eper altri tipi di valori

    Ora tu dici di inserire il codice nella proprietà filtro della sottomaschera
    Mi potresti indicare dove trovo la proprietà filtro?
    dici che quelle poche righe bastano a sostituire quello che in sql., per uno dei range equivale a
    SELECT anagrafica.Id, anagrafica.[id Anagrafica], anagrafica.[DATA I° CONTATTO], anagrafica.cognome, anagrafica.nome, anagrafica.[LUOGO DI NASCITA], anagrafica.[DATA DI NASCITA], anagrafica.[NAZIONALITA'], anagrafica.SESSO, anagrafica.[TITOLO DI STUDIO], anagrafica.[SITUAZIONE LAVORATIVA], anagrafica.[SOSTANZA PRIMARIA], anagrafica.[SOSTANZA SECONDARIA], anagrafica.[età I° assunzione], anagrafica.[età uso continuato], anagrafica.[date trattamenti], anagrafica.[date trattamenti].Value, anagrafica.eta
    FROM anagrafica
    WHERE (((anagrafica.eta)>14 And (anagrafica.eta)<20));

    grazie
  • Re: Sottomaschera e casella opzioni

    @Alex ha scritto:


    Avere il calcolo dell'età nella tabella Anarafica è quanto di più sbagliato si possa fare nel modo più assoluto....!!!!
    Pensa alla validità di quel dato...? Non è minimamente affidabile, anche ipotizzando tu faccia un aggiornamento saresti in ogni caso fuori di qualsiasi regola.

    Il Calcolo dell'età è il tipico dato che si ricava ONLINE in una query, in questo modo è sempre aggiornato.

    Detto questo farai come credi...

    La questione del filtro invece è semplice, se per Opzioni intendi un OptionGroup quindi con 3 Opzioni... dovrai costruire una Condizione da passare alla proprietà Filter della SottoMaschera...!
    
    Dim strWHR As String
    Select Case Me!NomeGRuppoOpzioni.Value
       Case 1:         strWHR="CampoEta<=14"
       Case 2:         strWHR="CampoEta Between 15 And 20"
       Case 3:         strWHR="CampoEta Between 16 And 25"
    End Select
    Me.NomeSubForm.Form.Filter=strWHR
    Me.NomeSubForm.Form.FilterOn=true
    cmq ho capito cosa intendi riguardo il campo eta. in effetti devo verificare che non rimanga un valore statitico
    grazie per avermi messo in guardia
  • Re: Sottomaschera e casella opzioni

    stefanocps ha scritto:


    Grazie
    mi pare che il valore eta funziuoni perfettamente in ogni caso..
    cmq mi interessa sapere come lavorare in quella condizione esposta perchè si riproporra anch eper altri tipi di valori

    Ora tu dici di inserire il codice nella proprietà filtro della sottomaschera
    Mi potresti indicare dove trovo la proprietà filtro?
    dici che quelle poche righe bastano a sostituire quello che in sql., per uno dei range equivale a
    SELECT anagrafica.Id, anagrafica.[id Anagrafica], anagrafica.[DATA I° CONTATTO], anagrafica.cognome, anagrafica.nome, anagrafica.[LUOGO DI NASCITA], anagrafica.[DATA DI NASCITA], anagrafica.[NAZIONALITA'], anagrafica.SESSO, anagrafica.[TITOLO DI STUDIO], anagrafica.[SITUAZIONE LAVORATIVA], anagrafica.[SOSTANZA PRIMARIA], anagrafica.[SOSTANZA SECONDARIA], anagrafica.[età I° assunzione], anagrafica.[età uso continuato], anagrafica.[date trattamenti], anagrafica.[date trattamenti].Value, anagrafica.eta
    FROM anagrafica
    WHERE (((anagrafica.eta)>14 And (anagrafica.eta)<20));

    grazie
    Guarda dalla domanda che hai fatto credo tu non abbia minimamente compreso quanto ti ho proposto...
    La mia indicazione non ha nulla a che fare con il linguaggio SQL che hai prpposto... e proprio per il fatto che non sempre è conveniente manipolare le query... ci sono con Access metodi tipoci di Aceess... o dei recordset che serve conoscere.
    A quello che ti ho suggerito c'è poco da aggiungere come ulteriore dettaglio... è sostanzialmente pronto da usare... quindi temo tu possa avere qualche lacuna sui fondamentali o sulle basi...

    Tralascio l'aspetto età che non è da capire... si fa solo come ti ho suggerito Io, qualsiasi altro strumento non è nemmeno da prendere in considerazione, mi spiego meglio... chi sviluppa in modo tecnicamente consapevole lo fa come ti ho detto, pero tu sei libero di fare come tu ritieni meglio.
  • Re: Sottomaschera e casella opzioni

    Ferma restando l'osservazione sollevata da @Alex sul fatto che l'età non si scrive in tabella ANAGRAFICA, potresti ri-spiegare questo (almeno per me)

    stefanocps ha scritto:


    Ho una maschera di ricerche che contiene la sottomaschera dei valori ANAGRAFICA
    Vorrei fare in modo che selezionando nella maschera un pulsante tra i vari disponibili della casella opzioni (anch eun altro metodo andrebbe bene) la sottomaschera anagrafica mi visualizzasse i records risultanti
    In particolare si tratta del valore relativo all' eta
    Con le opzioni scelgo:
    minore 14
    tra 15 e 20
    tra 16 e 25
    ecc

    e nella sottomaschera dovrei vedere i risultati
    usando nomi propri di maschera/sottomaschera e tutti i loro rispettivi campi/controlli?
  • Re: Sottomaschera e casella opzioni

    Allora perdonatemi io ho una coscienza limitata di access e soprattutto di visual basic
    Opero in campo d volontariato e sto aiutando una onlus che cura le dipendenze a fare un db per vaere dei report annuali

    Questa è la partenza

    COmunque credo di poter semplificare, non ho bisogno di fare maschere e sottomaschere per ricerca dati ma mi basta un report che conta secondo dei criteri ch eposso piu facilmente impostare con query

    Ora mi manc aun passaggio, come assegno ad una casella di testo il valore risultante di una query con la funzioine COUNT?

    p.s. per il calcolo eta, intedevo dire che provano a spostare avanti il calendario ho capito di cosa parlavi
    quindi anche quello dovro calcolarlo direttamente nella query con la funzione count che mi calcolera il numeor di utenti per fasce di eta
    grazie
  • Re: Sottomaschera e casella opzioni

    stefanocps ha scritto:


    Allora perdonatemi io ho una coscienza limitata di access e soprattutto di visual basicOpero in campo d volontariato e sto aiutando una onlus che cura le dipendenze a fare un db per vaere dei report annuali
    A maggiore ragione ti suggerisco di indicare dettagliatamente:
    - nomi propri di tutte le tue tabelle
    - nomi propri di tutti i loro campi con indicazione della chiave primaria (abbandona i campi Età da ANAGRAFICA)
    - le relazioni
    - nomi propri di maschere (no...hai detto che non le vuoi usare più…), allora di query e report
    - rispiega quello che vuoi fare usando i nomi propri

    Se hai cambiato radicalmente idea...suggerisco di aprire una nuova discussione...sempre indicando chiaramente i punti che ti ho indicato sopra.
  • Re: Sottomaschera e casella opzioni

    ]Allora ho una tabella ANAGRAFICA
    che viene popolata da diversi campi
    id, data 1 contatto,cognome, nome,luogo nascita.data nascita,nazionalità, sesso,titolo studio,,occupazione,sostanza primaria,sostanza secondaria,eta 1 assunzione,eta uso continuativo,date trattamenti

    molti di questi campi vengono popolati attraverso caselle combinate che pesano nelle relative tabelle contenti i valori
    esempio occupazione, pesca nella tabella occupazione,sostanze nella tabella sostanze ecc, le altre sono nazionalita,sesso,titolo di studio,sostanza primaria,sostanza secondaria

    ora tutti questi dati sono inseriti tramnite la maschera AM>BULATORIO e poi dovrebbero essere lavorati tramite la maschera RICERCHE che contine una sottomaschera che restituisce i valori della ricerche
    Le ricerche sono tramite casella combinata che pesca i dati nella relativa tabella (esattamente come i dati gia spiegati prima)
    FIna qua è facile
    La difficolta inizia quando devo elaborare dati in modo diverso
    Esmpio estrai tutte le donne di eta compresa tra x e y che sono state trattate nell ultimo anno (le fascie di eta sono fisse)
    Da qui avevo pensato alla casella gruppo opzioni, ma poi non riesco a gestirla

    In ogni caso la cosa piu urgente è quella di avere semplicemnte un report che mi dia il numero di pazienti trattati secondo vari parametri
    Quindi devo avere dei nmeri, che in genere sono numero di donne, numero di uomini e totale

    Questa la partenza
    Le richieste, le vedete nell allegato
    https://drive.google.com/file/d/1GHNv1-ErDvOnNQl_cm7AdEAhQtIfVTcu/view?usp=sharing
  • Re: Sottomaschera e casella opzioni

    Scusa ma perché ora hai modificato l'esigenza...?
    Il 3d parte per filtrare dati in relazione alla fascia di età... quindi si tratta questo argomento.
    Se hai una nuova esigenza si apre un nuovo 3d.
    Tuttavia mi permetto di farti notare che per entrambe le richieste il metodo da usare è il medesimo... e probabilmente prima di aggiungere cose ti serve leggere qualche documento tecnico che ti aiuti a capire di cosa si parla, altrimenti anche i suggerimenti che ti vengono dati non servono a nulla dal momento che non capendoli devi i discorsi senza entrare nel merito... e così non funziona molto bene.

    Detto questo hai già ricevuto la soluzione... prova a studiare quLche cosa e cerca di capire quanto suggerito.
  • Re: Sottomaschera e casella opzioni

    Si maschera o report è abbstanza lo stesso. non totalmente lo stesso mi pare, mi sembra che se devo solo raccogliere un numero con una query me la cavo meglio
    tu mi hai dato un codice e ti avevo chiesto dove devo metterlo, ho piu difficoltà a lavorare col codice, capisco le istruzioni che mi hai dato ma..non so dove metterele
  • Re: Sottomaschera e casella opzioni

    stefanocps ha scritto:


    Si maschera o report è abbstanza lo stesso. non totalmente lo stesso mi pare, mi sembra che se devo solo raccogliere un numero con una query me la cavo meglio
    tu mi hai dato un codice e ti avevo chiesto dove devo metterlo, ho piu difficoltà a lavorare col codice, capisco le istruzioni che mi hai dato ma..non so dove metterele
    Ci sono molti posti in cui metterle... ma forse non sono tutti utili..., tuttavia... forse è un tema che converrebbe tu approfondissi con qualche testo di base per come interagire con le standard proprietà delle Maschere... in questo caso la proprietà Filter.
    Ora però sena voler essere eccessivi... dal momento che hai descritto l'utilizzo di una OptionButton... hai solo 2 Opzioni:
    1° AfterUpdate del controllo OptionButton
    2° Su Click di un Button per applicare il filtro

    Ora sai anche dove metterle.
  • Re: Sottomaschera e casella opzioni

    stefanocps ha scritto:


    ho una tabella ANAGRAFICA che viene popolata da diversi campi id, data 1 contatto,cognome, nome,luogo nascita.data nascita,nazionalità, sesso,titolo studio,,occupazione,sostanza primaria,sostanza secondaria,eta 1 assunzione,eta uso continuativo,date trattamenti
    A mio parere questa tabella contiene campi non omogenei a ANAGRAFICA. Ad esempio scarterei i campi da [sostanza primaria] in poi.

    stefanocps ha scritto:


    ora tutti questi dati sono inseriti tramnite la maschera AM>BULATORIO e poi dovrebbero essere lavorati tramite la maschera RICERCHE che contine una sottomaschera che restituisce i valori della ricercheLe ricerche sono tramite casella combinata che pesca i dati nella relativa tabella (esattamente come i dati gia spiegati prima)FIna qua è facileLa difficolta inizia quando devo elaborare dati in modo diversoEsmpio estrai tutte le donne di eta compresa tra x e y che sono state trattate nell ultimo anno (le fascie di eta sono fisse)Da qui avevo pensato alla casella gruppo opzioni, ma poi non riesco a gestirla
    Io non ho capito se vuoi tutte queste "possibili opzioni di ricerca" in poco spazio. Io preferirei creare una query per ogni domanda, poi gestisci/visualizzi quella che ti interessa volta per volta. Soprattutto sulla maschera non accavallare troppe cose. Il report così predisposto come appare nella tua immagine sembra disomogeneo e (almeno io) non vedo una gestione Access adeguata "in un colpo solo". Gestisci un query/report alla volta, poi magari esporti a pezzetti ogni singolo risultato su Word ad esempio.
  • Re: Sottomaschera e casella opzioni

    OsvaldoLaviosa ha scritto:


    stefanocps ha scritto:


    ho una tabella ANAGRAFICA che viene popolata da diversi campi id, data 1 contatto,cognome, nome,luogo nascita.data nascita,nazionalità, sesso,titolo studio,,occupazione,sostanza primaria,sostanza secondaria,eta 1 assunzione,eta uso continuativo,date trattamenti
    A mio parere questa tabella contiene campi non omogenei a ANAGRAFICA. Ad esempio scarterei i campi da [sostanza primaria] in poi.

    stefanocps ha scritto:


    ora tutti questi dati sono inseriti tramnite la maschera AM>BULATORIO e poi dovrebbero essere lavorati tramite la maschera RICERCHE che contine una sottomaschera che restituisce i valori della ricercheLe ricerche sono tramite casella combinata che pesca i dati nella relativa tabella (esattamente come i dati gia spiegati prima)FIna qua è facileLa difficolta inizia quando devo elaborare dati in modo diversoEsmpio estrai tutte le donne di eta compresa tra x e y che sono state trattate nell ultimo anno (le fascie di eta sono fisse)Da qui avevo pensato alla casella gruppo opzioni, ma poi non riesco a gestirla
    Io non ho capito se vuoi tutte queste "possibili opzioni di ricerca" in poco spazio. Io preferirei creare una query per ogni domanda, poi gestisci/visualizzi quella che ti interessa volta per volta. Soprattutto sulla maschera non accavallare troppe cose. Il report così predisposto come appare nella tua immagine sembra disomogeneo e (almeno io) non vedo una gestione Access adeguata "in un colpo solo". Gestisci un query/report alla volta, poi magari esporti a pezzetti ogni singolo risultato su Word ad esempio.
    fondamentalmente se hai visto il file allegato mi serve di contare i pazienti trattati secondo determinate caratteristiche, su base trimestrale ed annuale
    penso anche io che con le query alla fine risolvo prima, ma non riesco a far contare i record ottenuti. uso la funzione conteggio nella finestra di programmazione della query. Per l essattezza ricordo che dovrei prendere una colonna vuota, mettere la unzione conteggio e pero poi sopra non ricordo come mettere la variabile a cui assegnare il conteggio. Mi viene fuori la scritta "espr..."


    Per quanto riguarda anagrafica come organizzeresti tu? un altra tabella collegata con i campi che dicevi?
  • Re: Sottomaschera e casella opzioni

    stefanocps ha scritto:


    ma non riesco a far contare i record ottenuti. uso la funzione conteggio nella finestra di programmazione della query.
    Per contare i record di una tabella/query usa la funzione DCount con la sintassi:
    =DCount("*"; "Nome tabella")
    che non devi scrivere dentro la query, ma utilizzare come espressione dentro una casella di testo.

    stefanocps ha scritto:


    Per quanto riguarda anagrafica come organizzeresti tu? un altra tabella collegata con i campi che dicevi?
    Per me una tabella ANAGRAFICA deve contenere solo dati Anagrafici.
    Gli altri valori devono essere desunti da una più ampia organizzazione tabelle che finora non possiamo sapere senza una tua descrizione dettagliata del database. Per risolvere questo aspetto però direi di aprire una nuova discussione, possibilmente nella sezione dedicata "Progettazione database" in cui si discute espressamente della NORMALIZZAZIONE ossia corretta organizzazione delle tabelle.
Devi accedere o registrarti per scrivere nel forum
22 risposte