Setting Query e Avviso Scadenza Attività

di il
16 risposte

Setting Query e Avviso Scadenza Attività

Buonasera a tutti. Mi scuso per l'ennesimo tentativo fallito con access e la conseguente richiesta di aiuto a voi esperti. Vi espongo il mio problemino.
Ho un database che gestisce un archivio clienti. Il DB è formato da 3 tabelle:

- Anagrafica Aziende (ID -NUM.AUT.- *PK* ,Ragione Sociale -TESTO- ,Commerciale -TESTO-, Assegnato -SI/NO- , Analista - TESTO-);
- Situazione Analisi (ID -NUM.AUT. - *PK* , Presa in carico - DATA- , Evasione - DATA- , ecc. ecc.);
- Attività e contatti (ID - NUMERICO- , Data Attività - DATA- , Contenuto Attività - MEMO - , Data Scadenza Attività - DATA - , Stato Attività - TESTO a scelta tra "Da fare" e "Fatto" e nessuna chiave primaria!).

Vi scrivo tutto per non tralasciare nulla.

Le relazioni sono :
- 1 a 1 tra ID della prima e della seconda tabella (con applica integrità referenziale);
- 1 a molti tra l'ID della prima e della terza tabella in quanto per ogni azienda ci sono più contatti (con applica integrità referenziale).

Come mai se faccio una query sulla situazione generale mi estrapola soltanto le aziende che hanno dei contatti mentre se non ho avuto nessun contatto con un'azienda la query non mi estrapola quell'azienda?

Seconda cosa: è possibile una sorta di reminder che mi indichi settimanalmente quali attività stiano scadendo ?(non dico che access mi invii una mail ma una cosa del genere (magari una query, un report automatico,ecc)?

Intanto vi ringrazio in anticipo per la collaborazione e mi scuso se ho tralasciato qualche particolare importante.
Nicola

16 Risposte

  • Re: Setting Query e Avviso Scadenza Attività

    Io non ho chiaro il significato di alcuni campi...poco importa...preferisco rispondere alle domande.

    santos81 ha scritto:


    Le relazioni sono :
    - 1 a 1 tra ID della prima e della seconda tabella
    Non ha senso che siano relazionati 1 a 1, piuttosto si preferisce sempre includere tutti i campi i un'unica tabella.

    santos81 ha scritto:


    Come mai se faccio una query sulla situazione generale mi estrapola soltanto le aziende che hanno dei contatti mentre se non ho avuto nessun contatto con un'azienda la query non mi estrapola quell'azienda?
    Prova a cambiare il tipo di join nella query, deve essere di "tipo 2: Includi tutti i record di Tabella1 e solo i record di Tabella2 in cui i campi collegati sono uguali"

    santos81 ha scritto:


    è possibile una sorta di reminder che mi indichi settimanalmente quali attività stiano scadendo ?(non dico che access mi invii una mail ma una cosa del genere (magari una query, un report automatico,ecc)?
    È possibile impostare una macro Autoexec (o un'altra collegata a un particolare evento) con la condizionale impostata secondo le tue esigenze e che, per esempio, invia una FinestraMessaggio dove dice qualcosa del tipo "...ci sono alcune attività in scadenza..."...questa è giusto una indicazione minima, ovviamente si può organizzare qualcosa di più complesso.
  • Re: Setting Query e Avviso Scadenza Attività

    Grazie mille Osvaldo. Il primo punto risolto in pieno!!!!
    Per quanto riguarda il reminder pensavo ad una finestra pop-up che ad ogni apertura del db indicasse il nome delle aziende e la scadenza settimanale...come potrei iniziare a muovermi (sono un pesantissimo neofita )
    Grazie ancora
  • Re: Setting Query e Avviso Scadenza Attività

    Scrivi alcuni record di esempio (specificando ovviamente i campi) e indica su quale campo vuoi effettuare il controllo. Spiega meglio cosa vorresti che accadesse perchè non l'ho proprio afferrato bene bene.
  • Re: Setting Query e Avviso Scadenza Attività

    Praticamente il "REMINDER" deve apparire automaticamente e settimanalmente (oltre alla maschera principale del db) con il nome dell'azienda, l'attività da svolgere per quell'azienda e la data di scadenza. ci possono essere naturalmente più attività da svolgere per una singola azienda.

    Vengono presi in considerazione i campi Ragione Sociale (TIPO TESTO) della tabella Anagrafica Azienda, e i campi Attività (MEMO) e Data di scadenza (DATA) della tabella Attività e contatti.

    Le relazioni le avevo elencate precedentemente...


    Grazie mille
  • Re: Setting Query e Avviso Scadenza Attività

    1. Crea una query in visualizzazione struttura dove importi le tabelle che interessano i campi che hai citato, soprattutto DataScadenza.
    2. In corrispondenza di Criteri, alla colonna DataScadenza, scrivi quanto segue:
    Between Date() And Date()+7
    3. Salva la query con nome Scadenze
    4. Apri una macro in visualizzazione struttura
    5. Apri la colonna Condizioni
    6. Nel 1° rigo Condizioni scrivi:
    DCount("*";"Scadenze";"")>0
    e accanto, nella colonna Azioni, scrivi:
    ApriQuery con nome query: Scadenze
    facoltativamente, puoi aggiungere tre puntini (...) al rigo sottostante Condizioni e accanto FinestraMessaggio in cui ci scrivi qualcosa come "Hai delle Attività in scadenza".
    7. Salva la macro con nome, scegli tu se deve essere proprio la macro Autoexec oppure avere un nome personalizzato.
    8. Se la macro non è Autoexec, devi associare un Evento, non saprei quale, dipende da te, che punta al nome macro.

    N.B.: La sintassi Between che ho scritto io è del tutto arbitraria e personalizzata. Significa che la query ti filtra tutte le Attività che hanno data da Oggi fino a 7 giorni in avanti. Mi sembra la sintassi più vicina alla tua richiesta, altrimenti prova a dare un'occhiata al seguente link
    http://office.microsoft.com/it-it/access-help/esempi-di-criteri-di-query-HA010066611.aspx#BM4
    dove puoi trovare molteplici sintassi sui campi di tipo Data.
  • Re: Setting Query e Avviso Scadenza Attività

    Grazie davvero!
    Ho risolto in pochi semplici passi e personalizzato il reminder grazie alle tue istruzioni.
    buona giornata e a presto.

    Nicola
  • Re: Setting Query e Avviso Scadenza Attività

    santos81 ha scritto:


    Praticamente il "REMINDER" deve apparire automaticamente e settimanalmente
    Questa frase mi fa pensare che tu vorresti che l'avviso comparisse soltanto un giorno particolare della settimana. Io penserei al Lunedì. La condizione che ti ho scritto, penso sia incompleta. In quel modo si rischia di far partire la macro tutte le volte che apri il database. Correggi la condizione con la seguente sintassi:
    DCount("*";"Scadenze";"")>0 And Weekday(Date())=2
    2 è un numero convenzionale che significa Lunedì, quindi la macro si attiverà soltanto quando hai almeno un'Attività in scadenza nei 7 giorni a seguire da Oggi e soltanto se oggi è Lunedì.
  • Re: Setting Query e Avviso Scadenza Attività

    Un'ultima cosa immagino le maledizioni che potrai mandarmi...

    è possibile nella maschera del db inserire un menù a tendina con i nomi dei singoli analisti e per ognuno di loro avere un report/query con tutte le aziende assegnate?

    Spiego meglio..

    nella prima tabella "Anagrafica Aziende" c'è un campo testo con il nome dell'analista a cui è assegnata l'azienda.

    Vorrei creare un menu a tendina che per ogni analista mi faccia vedere l'azienda a lui assegnata e le attività da fare...è possibile una cosa del genere?

    Grazie ancora!
  • Re: Setting Query e Avviso Scadenza Attività

    Innanzitutto, secondo me, deve cambiare lo scenario tabelle. Penso che, nel corso del tempo, gli Analisti che osservano le Aziende cambiano. Questo mi fa pensare che occorre cambiare l'organizzazione tabelle, così:

    tblAnagraficaAziende
    IDAzienda
    RagioneSociale
    ...altri campi

    tblAnalisti
    IDAnalista
    Nome
    Cognome

    tblAttività
    IDAttività
    DataInizio
    DataFine
    IDAnalista

    In sostanza AnagraficaAziene e Analisti sono in relazione molti-a-molti e occorre la tabella di congiunzione Attività come ti ho mostrato.
    Poi non ho proprio afferrato cosa vuoi fare.
  • Re: Setting Query e Avviso Scadenza Attività

    Mi spiego meglio con un esempio di tabelle a pochi campi.

    tbl anagrafica aziende : ID , nome azienda, analista assegnato
    tbl attività: ID, attività

    Dovrei effettuare una query scegliendo da un menu a tendina il nome dell'analista e mi debba comparire per l'analista scelto l'azienda e le attività che l'analista deve svolgere.

    ad esempio Pippo Pluto e topolino sono gli analisti
    da un menu a tendina scegliere pippo pluto o topolino e a seguito della scelta vedere tutte le aziende assegnate a pippo e le attività da svolgere per quell'azienda

    Spero di essere stato chiaro adesso e scusami se non sono stato chiaro prima
  • Re: Setting Query e Avviso Scadenza Attività

    Oggi gli Analisti sono pochi e per ogni Analista corrisponde una Azienda. Domani diventeranno molti di più e non è detto che un Analista--->una Azienda reggerà. Penso sia utile e doveroso prevedere una tabella a parte Analisti e correlare le 3 tabelle come ti ho detto.
  • Re: Setting Query e Avviso Scadenza Attività

    Ok. modificate le strutture delle tabelle come posso fare per scegliere da un menu a tendina di una maschera il nome dell'analista e vedere tutte le aziende assegnate per lui e le attività da fare?
    Grazie ancora
  • Re: Setting Query e Avviso Scadenza Attività

    Innanzitutto "menu a tendina" in Access si chiama tecnicamente "casella combinata" (ComboBox).
    Tieni presente che una casella combinata è un campo particolare che deve guardare dati che stanno memorizzati da un'altra parte (tabella o query). Hai a disposizione molte strade per ottenere quello che chiedi, io sintetizzerei così:
    1. Crea maschera/sottomaschera Analisti/Attività. Sfrutta la procedura guidata e includi tutti i campi di entrambe le tabelle, in modo da tenerle ben sincronizzate.
    2. In questo forum puoi trovare molti post che parlano di come costruire le caselle combinate, ci sono soluzioni per tutti i gusti. Io ho provato a schematizzare tutto in questo link

    clicca su Download
    3. Nel tuo caso, nella maschera Analisti, aggiungerei una casella combinata che guarda una query impostata su Cognome & Nome (vedi il caso C dal file che hai scaricato)
  • Re: Setting Query e Avviso Scadenza Attività

    Gentilissimo. torno a richiederti una delucidazione riprendendo il discorso.

    Mi spiego meglio con un esempio.

    Tabella_1

    Id (Num.Aut. -PK-)
    Ragione Sociale (Testo)
    Analista(Testo) (6 analisti in totale)

    Tabella_2

    Id (numerico)
    Data (Data)
    Attività (Memo)

    Relazione Id_Tabella_1 ---> Id_Tabella_2

    Mi occorre dapprima la query che per ogni analista mi faccia vedere l'azienda assegnata a lui e le attività da svolgere per quell'azienda e successivamente nella maschera inserire una casella combinata che, selezionando da un elenco il nome di uno dei 6 analisti, mi effettui la query.
    Ho provato già ma la casella combinata oltre ad elencarmi i nomi degli analisti ripetuti non mi genera nessuna query...sbaglio qualcosa nelle relazioni e nella query sicuramente.

    Esempio

    Luca - XSPA - 21/07/2013 - fare export
    Luca - YSPA - 23/07/2013 - fare import
    Marco - ZSPA - 25/07/2013 - fare import
    Marco - TSPA - 24/07/2013 - fare export

    La casella combinata che vorrei creare deve permettermi di scegliere dall'elenco Luca o Marco e dopo aver scelto il nome mi genera la query (magari già esportata in excel)...puoi darmi una mano?

    Grazie mille
Devi accedere o registrarti per scrivere nel forum
16 risposte