Maschera per selezionare alcuni record

di il
18 risposte

Maschera per selezionare alcuni record

Salve a tutti. Mi ritrovo alle prese con un nuovo grattacapo. Ho fatto un database che mi restituisce dei dati con una query con un criterio di ricerca in base al cognome. Tabella DATI con i campi COGNOME, NOME, CATEGORIA, INDIRIZZO, TELEFONO E ALTRI DATI A TEMA. Una volta ricercato il nominativo, ho la possibilità di stampare un report con la scheda dei suoi dati. Adesso però avrei bisogno di avere la disponibilità di un elenco con tutti i nominativi disponibili ( e questo lo faccio con una semplice query) ma adesso il problema: da questo elenco devo avere la possibilità di selezionare solo alcuni nominativi e stampare una scheda con solo alcuni dei campi disponibili. Ho guardato un pò in giro ma non ho trovato nulla che faccia al caso mio. Qualche suggerimento? Grazie anticipatamente a tutti.

18 Risposte

  • Re: Maschera per selezionare alcuni record

    Quando dici SOLO ALCUNI NOMINATIVI, puoi stabilire anche IN BASE A COSA?
  • Re: Maschera per selezionare alcuni record

    Una volta visualizzati tutti i record con i relativi campi, devo avere la possibilità di selezionare solo quelli che mi interessano per aggiungerli ad un report (visualizzando solo cognome e numero di telefono)
  • Re: Maschera per selezionare alcuni record

    Dai un'occhiata a questo link:
    http://microsoft.public.it.office.access.narkive.com/jasXjurZ/report-su-filtro-in-base-maschera
  • Re: Maschera per selezionare alcuni record

    Grazie. Ho dato uno sguardo, ma cose simili ne avevo più o meno trovate. Purtroppo non fa al caso mio. Io non ho bisogno di filtrare i dati, in base ad una ricerca. Devo averli tutti disponibili, e ogni record deve essere selezionabile e selezionandolo deve essere incluso in un report o in una maschera. Ho sentito parlare di listbox multiselezione, ma è un casino ....
  • Re: Maschera per selezionare alcuni record

    Per me stai ignorando o sottovalutando la potenzialità del "filtro in base a maschera". Io ho capito questo da te, che hai i seguenti valori:
    IDPersona | Cognome | Nome |
    1 | Laviosa | Osvaldo
    2 | Cassano | Antonio
    3 | Frassica | Nino
    4 | Berlusconi | Silvio
    5 | Moretti | Nanni
    6 | Mozart | Wolfgang Amadeus

    Tu li visualizzi tutti sulla tua maschera continua e vuoi stampare soltanto Cassano Antonio e Berlusconi Silvio. A questo punto devi cliccare sul tasto in alto "filtro in base a maschera". Clicca sul campo IDPersona e scegli 2, poi clicca sulla linguetta in basso Oppure e scegli IDPersona=4. Poi clicca sul tasto Applica filtro. Il filtro ti mostrerà soltanto gli IDPersona 2 e 4 con i restanti campi. A questo punto con un clic di pulsante che deve attivare il codice suggerito nel link, grazie alla proprietà Me.Filter (tra l'altro ti consiglio di impostare anche la proprietà acViewPreview (Anteprima di stampa) così puoi avere un riscontro prima), vedrai stampati i dati relativi ai valori filtrati.
    Se non ti piace la strada via VBA, ho trovato una soluzione analoga con una macro, ma la sostanza non cambia.
    Spero che fosse questo il tuo intento, altrimenti descrivici passo passo tutti i dettagli di come deve funzionare la cosa.
  • Re: Maschera per selezionare alcuni record

    Grazie Osvaldo. Più o meno ci avevo pensato a fare questa cosa, ma non è proprio funzionale per me. Allora faccio un riassunto del mio database, omettendo le cose meno importanti.
    tabella "dati" con i campi "idpersona" "cognome" "nome" "indirizzo" "telefono1" "telefono2" e altri campi.
    Con una query faccio la ricerca in base al cognome (restituendomi tutti i risultati in caso di omonimia).
    Poi ho un report con tutti i campi formattati in modo tale da stampare una scheda personale.
    Tutto funziona alla perfezione.
    Adesso ho la necessità di creare un altro report da stampare . In questo report devo inserire solo i campi "cognome" "telefono1" e "telefono2" ma solo di alcune persone che devo poter selezionare da un elenco totale. Questo è il mio obiettivo finale. Spero di aver spiegato dettagliatamente quello che vorrei fare.
  • Re: Maschera per selezionare alcuni record

    Io penso che gli utenti ti diano delle soluzioni mirate, poi sta a te personalizzare il discorso.
    1. Se prima avevi Report1 con TUTTI i campi, crea un nuovo Report2 con i soli campi Cognome, Telefono1, Telefono2.
    2. Nella maschera crea ugualmente il pulsante che deve aprire Report2, con il codice VBA adattato alla tua esigenza.
    3. Il filtro in base a maschera sulla maschera non sarà su IDPersona, ma su Cognome e qualcosaltro........
    ....ma il discorso, nella sostanza, non cambia a livello di strategia.
  • Re: Maschera per selezionare alcuni record

    Ciao Seven
    io aggiungerei un campo alla tabella denominato "Stampa" di tipo testo, 1 carattere che visualizzerei nella maschera basata sulla query che elenca tutte le persone.
    Imposti a "S" quelli che vuoi stampare e basi il tuo report su una query che filtra i record per il campo Stampa="S".
    Un pulsante che dalla maschera lancia il report ed il gioco è fatto. Poi sull'evento chiusura o apertura maschera lanci una query che imposta a null il campo [stampa] su tutti i record…
    … sbaglio qualcosa?
    ciao
    fausto
  • Re: Maschera per selezionare alcuni record

    Per fcasini: la tua soluzione ci può stare ma si tratta di una pezza a colori. Il campo Stampa non è un campo strettamente legato al nome della tabella. Direi che concettualmente è sbagliato.

    Volendo correggere l'ultimo mio intervento, se non si gradisce costruire Report2, si può sempre implementare una macro con più azioni:
    ApriReport + tanti ImpostaValore che vanno a dire a tutti i controlli e campi che non si vuole vedere di Repor1 di essere impostati:
    Elemento: [Forms]![NomeMaschera]![NomeControllo].[Visible]
    Espressione: Falso
  • Re: Maschera per selezionare alcuni record

    Mah, ci sono tanti modi per farlo. Io personalmente uso questo sistema e lo trovo molto pratico. Io apro una maschera basata su una tabella che contiene i record contenenti i dati delle fatture ed in ultimo il campo [stampa] valorizzato per default a Null.
    Se nella maschera poi, scorrendo le fatture imposto a "S" alcuni record, questi e solo questi verranno stampati su un report ad hoc con i soli dati rilevanti e basato su una query che filtra tutti i record dove [Stampa]="S".
    Mi sembra veramente semplice ed efficace, se non ho capito male la richiesta.
    ciao
    fausto
  • Re: Maschera per selezionare alcuni record

    Ciao maestro Osvaldo,
    scusatemi se mi intrometto nella discussione, ma ho capito che la selezione non ha alcun criterio, e cambia in continuazione.
    Nei miei db costruisco una "Maschera divisa"
    Sulla tabella inserisco un campo "selezione" che riporto sulla maschera.
    All'apertura della maschera vedo tutti i record della tabella, inserisco una valore nel campo selezione, e li filtro in base a questa stessa selezione.
  • Re: Maschera per selezionare alcuni record

    Grazie a tutti per i preziosissimi consigli. Comunque , data la mia conoscenza basilare, ho trovato più semplice la soluzione di fcasini (anche se quella di Osvaldo sarebbe più tecnica) e più o meno ho ottenuto quello che mi serve. In ogni caso, per Osvaldo, se puoi darmi una mano a compilare il codice vbs cerco di capire come applicare la tua soluzione. Grazie
  • Re: Maschera per selezionare alcuni record

    Non so usare il VBA, ma piuttosto me la cavo bene con le macro. Anche quel codice che ti ho suggerito si può tradurre con macro. Per organizzare una o più macro, dovresti dirmi in quale punto del database ti trovi quando vuoi stabilire se stampare tutti o alcuni. Devi dirmi se vuoi avere Report1 e Report2 oppure riciclare sempre lo stesso Report omettendo/impostando opportuni valori per...ecc...insomma quello che ti ho già detto...
  • Re: Maschera per selezionare alcuni record

    Ok. Mi trovo nella maschera in cui vengono visualizzati tutti i nominativi, con i relativi campi disponibili. Da questa maschera si devono selezionare solo alcuni nominativi (con i relativi campi). Una volta ottenuti quelli desiderati, creare un report con solo elenco di cognome e numero di telefono.
Devi accedere o registrarti per scrivere nel forum
18 risposte