Casella di testo

di il
6 risposte

Casella di testo

Buonasera a tutti gli iscritti. In merito al titolo faccio richiesta di un vostro aiuto per risolvere un problema con una casella di testo.

Espongo subito il problema:

Ho una tabella con vari campi (Qualifica, Cognome, Nome, Ufficio). I dati di questa Tabella vengono rappresentati attraverso Maschere Continue. Poi, tramite un Report e codice VBA, questi dati vengono stampati in PDF formando una tabella. Fin qui tutto fila liscio. Ora ho la necessità di inserire un nuovo campo (magari MEMO) il quale funge da campo ANNOTAZIONI. Chiaramente anche questo campo viene rappresentato sia in Maschera che nel Report grazie a una casella di testo. Il problema è che questo campo non deve appartenere a un singolo record. Per intenderci ho bisogno che graficamente la casella di testo (denominata txtAnnotazioni) deve contenere eventuali dati inseriti relativi a tutta la tabella. Invece così come l'ho strutturato, se scrivo nella casella di testo txtAnnotazioni, succede che vado a scrivere in un record e se mi sposto col cursore in un altro record chiaramente non visualizzo più quello che avevo inserito nel campo txtAnnotazioni precedentemente.
Allora ho provato a creare solo la casella di testo senza associarla a nessun campo in Tabella, da una parte funziona, ma non appena chiudo la maschera chiaramente quello che avevo scritto nella txtAnnotazioni si cancella.

Quindi, riassumendo:

1) attraverso una tabella una maschera continua, un report e codice VBA vado a stampare in PDF il contenuto della tabella, producendo una serie di righe contenenti dati di tipo anagrafici.

2) in fondo al report ho bisogno di una casella di testo dove vado ad annotare dei dati relativi a tutta la tabella.

Mi auguro di essermi spiegato. Che consiglio mi date?
Grazie.

6 Risposte

  • Re: Casella di testo

    alexps81 ha scritto:


    ... In merito al titolo
    che ha un'utilità prossima a zero.

    alexps81 ha scritto:


    Ora ho la necessità di inserire un nuovo campo (magari MEMO) il quale funge da campo ANNOTAZIONI....
    Tratto anche la situazione che sembra non essere quella da te contemplata di annotazioni estemporanee, cioè che non devono essere salvate ma solo destinate alla stampa in quel particolare momento. Il controllo non associato deve essere inserito nell'intestazione o nel pié di pagina della maschera. Il controllo nel report (anche questo nell'instazione o nel pié di pagina report) ha come origine dati il controllo della maschera che quindi dovrà essere aperta al momento della stampa.

    Passiamo al caso che forse ti riguarda in concreto, cioè che quelle annotazioni siano da salvare. Se la stessa annotazione riguarda più record (ed è così sempre, non un caso sporadico) devi creare una nuova tabella destinata alle annotazioni e metterla in relazione uno a molti con la tabella che già hai. Quindi dove tu volevi salvare le annotazioni devi invece inserire un campo che sarà FK. A questo punto però si potrebbe riflettere sul tipo di "raggruppamento" che fai. Cioè in base a quale criterio la stessa annotazione riguarda un gruppo di soggetti. Perché magari appartengono allo stesso "reparto"? Cioè, nella tabella esistente c'è già qualcosa che li accomuna e alla quale fare riferimento per associare la relativa annotazione? Spiega un po' meglio il tutto perché solo così è possibile dire a cosa la tabella delle annotazioni (che per il momento considero necessaria) deve essere collegata.
  • Re: Casella di testo

    Grazia prima di tutto per l'interessato.
    In termini pratici:

    Questa tabella serva per appuntare eventuale personale che si mette in malattia durante le ore notturne. Dunque man mano che qualcuno mi chiama per mettersi in malattia, vengono trascritte in questa tabella tutti i suoi dati. Uno dopo l'altro vanno a formare un elenco nominativi. Poi alla fine della notte viene stampato in PDF.
    Adesso io vorrei inserire in fondo a questo elenco un riquadro dove vado ad inserire delle annotazioni inerente a questo elenco. Ad esempio ho la necessità di segnalare che il Chiedente Visita Pinco Pallino dichiara di aver avuto dal suo medico curante 3 giorni di malattia. Per ragioni di spazio e cmq queste annotazioni quasi mai vengono utilizzate, non posso inserire un altro campo per ogni record ma vorrei far in modo che ogni elenco abbia un solo campo annotazioni
  • Re: Casella di testo

    Con riserva di rivedere la struttura del tuo database

    alexps81 ha scritto:


    ... io vorrei inserire in fondo a questo elenco un riquadro dove vado ad inserire delle annotazioni inerente a questo elenco....
    Se le annotazioni riguardano l'intero elenco devi avere una tabella "degli elenchi"

    alexps81 ha scritto:


    Per ragioni di spazio
    spazio di cosa? della tabella? nella maschera, nel report? Se è per la logica della struttura del database ok, ma se è per "ragioni di spazio" il sistema non è questo. Ripeto, però: se è per la logica della struttura ok.

    alexps81 ha scritto:


    e cmq queste annotazioni quasi mai vengono utilizzate, non posso inserire un altro campo per ogni record ma vorrei far in modo che ogni elenco abbia un solo campo annotazioni
    Quasi mai... non significa nulla. Quando servono che si fa, si cambia tutto?
    A mio avviso devi avere (almeno) due tabelle: una "degli elenchi" (una sorta di "intestazione degli elenchi") e una dei soggetti inseriti in ciascun elenco. In entrambe le tabelle può essere presente un campo delle annotazioni, per note che riguardano l'intero elenco e per le note riguardanti il singolo soggetto di quel particolare elenco. Se quest'ultima non ti serve, niente.
    La gestione per l'inserimento è quella poi classica di maschera principale (Elenco) e sottomaschera (Soggetti dello specifico elenco) e la stampa viene di conseguenza. Finché tieni una tabella sola non vai da nessuna parte.
  • Re: Casella di testo

    Va bene, ho capito che devo creare un'altra tabella solo per le annotazioni e devo metterla in relazione con la prima. La relazione deve essere uno a molti. Giusto?
  • Re: Casella di testo

    alexps81 ha scritto:


    Va bene, ho capito che devo creare un'altra tabella solo per le annotazioni e devo metterla in relazione con la prima. La relazione deve essere uno a molti. Giusto?
    No, il concetto principale è che devi avere una tabella per gli elenchi. I campi li conosci tu, ovviamente. Oltre alla classica PK potresti avere la data dell'elenco e la altre informazioni direttamente legate a singolo elenco. Puoi mettere lì il campo annotazioni direttamente qui, che quindi sarà specifico per ogni elenco.
    Nella tabella che già stavi usando poi usi una FK e inserisci per ogni elenco i soggetti che ne entrano a far parte. Se ad esempio in quella tabella avevi la data dell'elenco, questa si sposta nell'altra tabella. Un po' di lavoro di normalizzazione, insomma.
    L'uso di una tabella per le annotazioni è una scelta un po' strana, se ad esempio non vuoi usare un campo memo ma testo "normale" e le note sono particolarmente lunghe e vuoi, ad esempio che non tutte siano visibili a tutti.
  • Re: Casella di testo

    alexps81 ha scritto:


    Questa tabella serva per appuntare eventuale personale che si mette in malattia durante le ore notturne. Dunque man mano che qualcuno mi chiama per mettersi in malattia, vengono trascritte in questa tabella tutti i suoi dati. Uno dopo l'altro vanno a formare un elenco nominativi. Poi alla fine della notte viene stampato in PDF.
    Adesso io vorrei inserire in fondo a questo elenco un riquadro dove vado ad inserire delle annotazioni inerente a questo elenco. Ad esempio ho la necessità di segnalare che il Chiedente Visita Pinco Pallino dichiara di aver avuto dal suo medico curante 3 giorni di malattia. Per ragioni di spazio e cmq queste annotazioni quasi mai vengono utilizzate, non posso inserire un altro campo per ogni record ma vorrei far in modo che ogni elenco abbia un solo campo annotazioni
    Innanzitutto la TuaTabella deve avere un nome più qualificato, direi Pazienti.
    La sola lista dei Pazienti relativa a una giornata o nottata (non ho capito bene) non basta con quei soli campi. Devi rivedere il tuo progetto con più tabelle "ben relazionate" in cui ce ne sarà una...non saprei...forse PresenzePersonale o Giornate in cui focalizzi l'attenzione solo su una. In questa tabella ci metti quel campo di tipo Memo (Testo lungo) da evidenziare sopra nei tuoi maschera/sottomaschera e/o report/sottoreport.
Devi accedere o registrarti per scrivere nel forum
6 risposte