Problemi/difficoltà con access

di il
4 risposte

Problemi/difficoltà con access

Ciao a tutti, sono nuovo e mi rivolgo a voi del forum per cercare un aiuto con Access.
Premetto che non ho una conoscenza molto approfondita del programma, l’ho studiato alle superiori ma ormai sono passati diversi anni.
Dunque, il database che devo realizzare è abbastanza semplice e dovrà contenere un numero di record non elevatissimo, circa 400/500. Si tratta di una lista di clienti con le relative informazioni. Esso è strutturato in 2 entità collegate da una relazione 1aN per mezzo dell’attributo CAP.
CLIENTI: n°cliente – Cognome – Nome – Info cliente – Telefono abitazione – Cellulare – Indirizzo – CAP – Ultima prova fumi - Scadenza prova fumi – Ultima pulizia – Scadenza pulizia – Info caldaia
CITTA’: CAP – Città – Note
Le difficoltà che ho incontrato nel realizzare il database sono:

- I campi “Scadenza prova fumi” e “Scadenza pulizia” sono, come presumibile, delle date. Queste sono rispettivamente la data contenuta nel campo “Ultima prova fumi” + 2 anni e la data contenuta nel campo “Ultima Pulizia” + 1 anno.
Vorrei che nel momento in cui inserisco le date “Ultima prova fumi” e “Ultima pulizia” automaticamente i campi “Scadenza prova fumi” e “Scadenza pulizia” si riempissero da soli. Per far ciò ho provato ad inserire nella voce “Valore predefinito” delle scadenze la funzione DateAdd(intervallo, numero, data), mettendo come intervallo “aaaa” (che sta per anno), come numero 2 e come data il nome del campo. Ad esempio: DateAdd(“aaaa”,2,[Ultima prova fumi])
Questo sistema non mi funziona. Faccio qualche errore di sintassi o è proprio un metodo sbagliato??
Sapete consigliarmi qualche altra maniera?

- Giunti alla data della scadenza della prova dei fumi o della pulizia, dovrò andare dal cliente e ripetere l’analisi. Una volta fatta devo aggiornare il mio database, modificando il campo “Ultima prova fumi” o “Ultima Pulizia” e di conseguenza anche le relative scadenze. Il problema è che non voglio perdere le vecchie date, ma voglio conservarle e memorizzarle. Insomma vorrei creare uno storico per ciascun cliente. Sapete se Access permette di far ciò?

- Nei casi in cui la caldaia si trova in un appartamento in affitto, mi trovo di fronte 2 nominativi: il proprietario e l’inquilino. In questo caso il mio cliente è l’inquilino, ma ho bisogno di registrare nel mio database anche il proprietario. Ho pensato quindi di aggiungere all’entità CLIENTI altri 3 attributi: Proprietario (in cui indicherò il nome e il cognome del proprietario dell’abitazione), Indirizzo proprietario e Telefono proprietario. Essendo questi casi una minoranza, le celle del database di questi attributi aggiuntivi rimarranno vuote. Pensate che si possano creare problemi di inconsistenza/incongruenza?

Grazie anticipatamente dell’aiuto!!

4 Risposte

  • Re: Problemi/difficoltà con access

    Ciao non uso Access da qualche anno ma, se non ricordo male la funzione DateAdd nel tuo caso andrebbe scritta cosi: DateAdd(“yyyy”,2,[Ultima prova fumi])

    per il secondo punto, invece in un qualsiasi altro sistema di database professionale, avresti potuto creare una tabella di storico e creare un Trigger che inserisce in automatico il record modificato nella tabella principale in base alle tue regole.
    Su access non ho mai sentito parlare di Trigger ma, facendo una ricerca ho trovato questo articolo:
    http://office.microsoft.com/it-it/access-help/creare-un-trigger-adp-HP003085415.aspx

    prova a vedere se ti può essere utile.

    Ciao
  • Re: Problemi/difficoltà con access

    Ciao Toki, per quanto riguarda la funzione DateAdd ho provato mettendo yyyy per indicare gli anni.
    Questa è la sintessi che mi scrive automaticamente:
    =DateAdd("""yyyy""";2;[UltimaProvaFumi])
    ma mi da questo errore: Il modulo di gestione di database non riconosce il campo 'UltimaProvaFumi' in una espressione di convalida o il valore predefinito nella tabella 'Clienti'
    Mi chiedevo, ma la funzione la devo inserire in "valore predefinito" nella visualizzazione di struttura della tabella Clienti?

    per il secondo punto invece credo che dovrei utilizzare una macro, ma non ne sono capace
  • Re: Problemi/difficoltà con access

    Ciao non ho access installato quindi non posso provare cmq mi sembra che devi inserire la funzione tipo:
    valorecalcolato:DateAdd("yyyy",2,[UltimaProvaFumi]) dove in genere dichiari il nome della colonna.
    In pratica vai nella struttura della tabella e inserisci valorecalcolato:DateAdd("yyyy",2,[UltimaProvaFumi]) nel box di input "Campo".
  • Re: Problemi/difficoltà con access

    C'è qualcuno in grado di aiutarmi a risolvere almeno il secondo problema?
    Forse devo utilizzare una macro, ma come detto prima non ne sono capace.
Devi accedere o registrarti per scrivere nel forum
4 risposte