Raccolta dati "crea messaggio di posta elettronica"

di
Anonimizzato10687
il
9 risposte

Raccolta dati "crea messaggio di posta elettronica"

Salve a tutti!
ho da risolvere un problemino che probabilmente sarà semplice, ma finchè non trovo il passaggio giusto... devo gestire l'aggiornamento del mio DB via email:

ho una tabella con le vie di un comune
una tabella con le zone del comune e l'indirizzo email del referente per quell'area

ogni via è collegata alla sua area (la seleziono tramite una casella combinata e ho impostato una relazione uno a molti tra le due tabelle tramite il campo "area" presente in entrambe")

ho realizzato una query di selezione per avere per l'area "X" tutte le vie afferenti all'area "X" e funziona tutto bene. (ne ho una per ogni area)

quando vado a impostare la raccolta dati su una di queste query ottengo due diverse risposte:
-se è presente la relazione tra le due tabelle, mi dice che la query è in sola lettura e non è utilizzabile
-se rimuovo la relazione la procedura parte, ma poi non ho accesso agli indirizzi che sono nella tabella aree perchè non ho "nessuna tabella associata" (oltre al fatto che la query non è corretta..)

se imposto come chiave primaria il campo nella tabella aree, lo "strumento" parte ma non mi è possibile l'aggiornamento dati..
la guida di office dice che non posso aggiornare i dati provenienti da due tabelle.. ma io voglio aggiornarne una sola, l'altra mi serve solo per le email!

come potrei risolvere? che particolarità deve avere la relazione tra le tabelle per non rendere la query "di sola lettura"?
grazie!
M2

Aggiornamento:
Se provo a utilizzare la tabella completa delle vie (invece della query con la selezione delle vie in un'area) la tabella delle aree risulta collegata e posso selezionare il campo delle email.. che però risultano non "contenere indirizzi validi"...
se io provo ad utilizzare direttamente la tabella delle aree, che contiene il campo delle email.. quest'ultime vanno benissimo e tutto parte...
cos'è che non ho capito!?!?!

9 Risposte

  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Io non ho capito la struttura delle tabelle, ma vado per la mia logica. Tu dovresti avere 3 tabelle così (per semplicità non considerò un eventuale campo ID contatore come chiave primaria, ma direttamente il campo testo):

    Aree:
    Area: testo, chiave primaria

    Vie:
    Via: testo, chiave primaria
    Area: testo

    Persone:
    IDPersona: contatore, chiave primaria
    Nome: testo
    Cognome: testo
    Via: testo
    N civico: testo (caso mai ti capita un 5/B)
    e-mail: testo (oppure "collegamento ipertestuale")

    Relazioni:
    Aree uno-a-molti con Vie, attraverso il campo Area (nella stessa Area ci sono più Vie)
    Vie uno-a-molti con Persone, attraverso il campo Via (più Persone possono abitare nella stessa Via)

    Partendo da qui, se è corretto per me si può proseguire, altrimenti rispiegami meglio tutto il quadro della situazione.
    In ogni caso è del tutto normale che quando crei una "query da più tabelle correlate", sia impossibile mettere mano ad alcuni, se non tutti, i campi della query.
  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Intanto grazie, ora mi spiego meglio con il tuo esempio
    Aree:
    Area: testo, chiave primaria
    Responsabile: testo (qui c'è l'email del responsabile dell'area)

    Vie:
    Via: testo, chiave primaria
    Area: testo
    Note: testo

    l'idea è che ogni responsabile riceva via email un form da riempire per la sola zona di cui è responsabile, in cui la via e l'area non sono modificabili e lui deve solo aggiungere le note
    di fatto nella mia testa a me serve solo che editi la tabella "Vie"... l'altra tabella serve solo per contenere l'email..

    io lavoravo su una query di selezione sulla tabella Vie, che visualizza Via, Note, e non visualizza Area ma usa il criterio (diciamo) "Centro"

    il fatto di avere la chiave primaria su un contatore implica qualcosa?
    come potrei altrimenti collegare le email zona per zona?
    e rigrazie!!

    P.S.
    in un forum inglese ho trovato indicazioni riguardanti una soluzione mediante query di creazione tabella, ma non ho capito e non ne ho mai usate...
    aggiungo ( e poi la smetto) che il campo Area nella tabella Vie è impostato come casella combinata dalla tabella Aree.Area
  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Ho capito.
    Forse ti stai incaponendo inutilmente a lavorare su query. Purtroppo quando crei una query da più tabelle correlate, si verifica quel problema inesorabilmente.
    Ma io sto pensando piuttosto al fatto che a te interessa visualizzare entrambi i dati da quelle due tabelle. Ciò lo realizzi meglio creando una maschera/sottomaschera, grazie proprio alla relazione uno-a-molti che esiste tra loro: esiste una creazione guidata apposita. La maschera principale sarà Aree con tutti i campi, la sottomaschera sarà Vie. Tra l'altro sei avvantaggiato di avere davvero poche tabelle e pochi campi, quindi spazio per visualizzare tutto ne hai. Ogni volta che ti posizioni su un'Area diversa, dalla maschera principale, potrai vedere sotto tutte le vie che la compongono. La visualizzazione è semplice ed elegante allo stesso tempo. L'ulteriore vantaggio che avresti da maschera/sottomaschera sarebbe proprio il fatto di poter mettere mano a qualsiasi dato. Magari talvolta ti capita di conoscere la Via, ma non la relativa Area. Allora sulla maschera, aggiungi un pulsante, al cui clic (con una macro, oppure sfrutta anche qui la procedura guidata) ti apre la query che avevi progettato, giusto per dare un'occhiata.

    Un campo Contatore è soltanto il campo ideale per progettare la chiave primaria, ma non è obbligatorio. Quando su un campo ci sono valori che sicuramente non si ripetono mai (il caso Aree va benissimo), puoi lasciare così come è. Un campo contatore chiave primaria diventa utile anche nel caso in cui serva a riassumere in un solo campo tutto quello che vuoi descrivere in una serie di campi successivi, che, se diventano tanti, non sapresti quale scegliere: non mi pare sia il tuo caso.

    Collegare e-mail: non mi sembra un campo ideale per impostare la chiave primaria.

    Query creazione tabella (o qualcosa di simile).
    Anch'io non l'ho mai usata. A naso immagino che si tratti di creare tutto in un'unica tabella, ma avresti molti dati ripetuti, e quando vorresti cambiare l'e-mail del Responsabile, dovresti ripeterlo per tutti gli altri record in cui esso compare.............si può anche fare un semplice Sostituisci su tutti i record in quel campo, ecc............però si tratta di fare un passo indietro secondo una logica strutturale tipica di Access.
  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Il guaio è che la raccolta dati via mail non è gestibile con la maschera (si possono aggiornare solo tabelle o query).. cosa che è il mio scopo principale!
    per stasera ho risolto con una query di aggiornamento... nella maschera per la gestione delle aree ho messo un pulsante che "riempie" tutti i campi "Responsabile" che ho aggiunto alla tabella "Vie", copiando il valore del campo "responsabile" della tabella Aree e così funziona... ma è un orrore di ridondanza!
    la struttura diventa
    Aree:
    Area: testo, chiave primaria
    Responsabile: testo (qui c'è l'email del responsabile dell'area)

    Vie:
    Via: testo, chiave primaria
    Area: testo
    Note: testo
    Responsabile: testo (copiato da Aree.Responsabile, quindi ogni Via ha il suo responsabile..ancora )

    la query di selezione che mi restituisce tutti i campi della tabella Vie che appartengono ad una determinata area funziona, e funaziona la maschera che deriva da questa query
    quello che non riesco a fare (diciamo "lasciando la query editabile" cioè non in sola lettura) è collegare anche l'area con il suo responsabile
    in questo modo quando lancio la raccolta dati via mail avrei a disposizione sia i campi da editare che gli indirizzi dei responsabili a cui mandarli
  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Masare2 ha scritto:


    quando vado a impostare la raccolta dati su una di queste query

    Masare2 ha scritto:


    l'idea è che ogni responsabile riceva via email un form da riempire per la sola zona di cui è responsabile, in cui la via e l'area non sono modificabili e lui deve solo aggiungere le note
    di fatto nella mia testa a me serve solo che editi la tabella "Vie"... l'altra tabella serve solo per contenere l'email..

    Masare2 ha scritto:


    il guaio è che la raccolta dati via mail non è gestibile con la maschera
    Scusami davvero, forse tu vuoi dare un significato più profondo alla e-mail che non colgo. Sarà una domanda stupida, ma cosa accade nella realtà?
    Supponiamo che il cittadino Tizio, abita in Via Mazzini, dell'Area A. Attraverso la pubblicazione di una query o maschera o qualcosa che stai cercando, Tizio, avendo un problema in zona, invia una e-mail al suo Responsabile di Area A, Il signor Verdi (Responsabile, con e-mail verdi@) riceve questo form via e-mail e poi può soltanto compilare il campo Note.
    La stessa cosa la fa il cittadino Sempronio, nell'Area A.
    Poi sig. Rossi nell'Area B che ha un responsabile sig. Bianchi con e-mail bianchi@ fa lo stesso ecc....
    Che cosa intendi dire per "raccolta dati"?
    Perdonami se sto andando completamente fuori strada, ma temo ci sia qualche piccolo particolare, per te implicito che a me sfugge.
  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Hai ragione, scusami... è che ci sto ragionando da ieri...
    intanto il database di cui stiamo discutendo è semplificato rispetto a quello su cui effettivamente lavoro.. era solo per non fare casino!
    io ho delle aree di distribuzione dei volantini, con dei referenti per ogni area
    ogni referente per ogni area mi deve dire quali vie ha fatto, quanti volantini, le note particolari (fatto solo un lato, via chiusa ecc) ecc
    ho già preparato il database per la gestione di questi dati (incluso il collegamento alla cartografia GIS per visualizzare l'andamento della distribuzione e altro... ma questa è un'altra storia)

    per permettere ad ogni referente di riempire il database (per la sua parte ovviamente) volevo usare lo strumento "raccolta dati" di access, che crea un messaggio di posta elettronica contenente un form con i campi del database da riempire e lo manda agli indirizzi che trova all'interno del DB.
    il referente riempie il form e me lo rispedisce e acces inserisce questi dati nel DB senza che io debba farlo a mano
    il problema è che gli indirizzi email dei referenti (il campo "Referente" di cui si parlava oggi) devono essere o nella tabella/query (non maschera) che fa da base per il form o in una "tabella collegata"
    io avevo già preparato una query per ogni area (da cui avevo tratto una maschera in modo da poter gestire comodamente i dati anche in locale) e volevo semplicemente collegare questa query con l'indirizzo del referente dell'area ma ottenevo solo i problemi scritti nel primo post.

    devo riuscire O a organizzare diversamente la mia query O a collegarla alla tabella Area e quindi al campo Referente (senza però che la query diventi di sola lettura)...
    è difficile spiegarlo... rileggendo il post c'ho capito poco pure io!
  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Premetto che non conosco lo strumento "raccolta dati" di Access, ma forse ho capito meglio il tuo problema. Provo a riepilogarlo da solo per vedere se l'ho capito bene.

    Tu sei il Direttore dell'Azienda Distribuzione Volantini e hai la tua e-mail in testa a tutti. Tu invii un form per ogni Referente (il quale ha la sua e-mail). Il form prestampato elenca le Vie di ogni Area. Il Referente completa i restanti campi N Volantini, Note e eventuali altri campi di tua utilità ecc....e lo re-invia alla tua e-mail. Tu raccogli i dati via e-mail (Direttore) e vorresti che questi dati si vadano ad aggiornare automaticamente nel database. E' così che dovrebbe funzionare tutto?

    Se è sì, il problema per me resta soltanto nel creare una corretta compatibilità di campi fra i campi-tabelle e campi-form di un formato che non mi hai mai detto............però anch'io ci capisco poco e non so quanto posso aiutarti.
    La mia logica mi porta a pensare che il tuo database è strutturato correttamente. Le maschere, per quanto riguarda il form, non c'entrano. Usare le query per lo scopo che ti sei prefigurato, non sono adatte. E il report? Forse un report ben congeniato potrebbe risolvere?
    Io mi immagino un report/sottoreport organizzato così:
    report principale contenente i campi della tabella Aree: Area, Referente, e-mail
    sottoreport contentente i campi della tabella Vie: Via, N Volantini, altri campi utili, Note.
    Il report/sottoreport lo crei con una creazione guidata molto simile a quella delle maschere, magari scegli uno stile che abbia celle ben inquadrate, in modo che restino celle ben evidenti e sempre compatibili sia con le tabelle di Access, sia con le tabelle di Word (sto andando a ruota libera).
    Esporta il report in formato Word, sempre con le celle ben evidenti. Il Referente compila le celle di sua competenza e invia alla tua e-mail il form compilato. Dal form compilato con i valori nelle celle compilati dai Referenti, con la tua procedura di "raccolta dati" sei in grado di ritornare a ricreare lo stesso quadro nelle tabelle di Access.

    Non so, ripeto, non ho mai usato la "raccolta dati" in maniera automatizzata, ma, volendo, le cose potrebbero funzionare anche così.
    Boh, non so se ho centrato il tuo problema.
  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Il rapporto fra il form della mail e il database lo gestisce direttamente lo strumeno di raccolta dati, io devo solo dargli in pasto una tabella o una query (in quanto selezione di dati da tabella) che contenga sia le informazioni che devo gestire, sia gli indirizzi di posta a cui spedire le email.
    quello che non va è che il programma si comporta in modo che non capisco...
    se nella query seleziono dati di più tabelle diventa di sola lettura... e non la posso usare
    se attribuisco ad ogni Via un indirizzo email (nella loro tabella)posso utilizzare i dati presenti nella sola tabella vie, (ed è quello che sto facendo ora) ma è concettualmente sbagliato.. oltre che machinoso (tutto 'sto gioco lo devo mettere in mano al cliente che non ha mai usato access..)
    se uso la tabella vie (senza mettere un indirizzo per via) ho la possibilità di utilizzare il campo indirizzi nella tabella aree (che è collegata a vie).. ma mi dice che gli indirizzi non sono validi, ma lo sono (tanto è vero che se "spedisco" la sola tabella aree tutto funziona)..

    devo trovare il modo di "ribaltare" una query o una tabella in modo che tutto funzioni!
  • Re: Raccolta dati "crea messaggio di posta elettronica"

    Potresti dirmi esattamente tutti i campi della query?
    Se non sbaglio, avevi detto che le query sono tante quante sono le Aree, quindi per ogni area A, B, C... tu hai QueryA, QueryB, QueryC...è vero?
    Di ogni campo, vorrei sapere anche da quale tabella proviene.
    Mi confermi che la relazione Aree.Area è uno-a-molti con Vie.Area?
    Tale relazione l'hai creata nella finestra delle Relazioni oppure soltanto nella visualizzazione struttura query?
Devi accedere o registrarti per scrivere nel forum
9 risposte