Newsgroup: it.comp.appl.access
Titolo: videonoleggio

Scusate ma ho urgentissimo bisogno d'aiuto, sono un principiante di Access
ma con l'ausilio di diversi libri sono riuscito a costruire un database per
la gestione di un videonoleggio.
Ho creato diverse tabelle, query e maschere per questo scopo ma ci sono
ancora specialmente 2 problemi da risolvere:
1)      ho creato la tabella noleggio con i seguenti campi :
         IDNoleggio, IDClienti, IDFilms, DataPrelievo, DataRientro,
CondizioniNoleggio, Rientrato, Incasso Noleggio
Nella maschera noleggio creata con una query a campi incrociati inserendo o
il nominativo clienti o l'IDClienti  mi si apre la sottomaschera con il film
da noleggiare la dataPrelievo (date()) condizioni di noleggio e tutto
funziona a meraviglia infatti controllando la tabella noleggi dopo ogni
Operazione tutto viene aggiornato.
Per il rientro invece non riesco a risolvere il problema in quanto avendo
creato la maschera sempre con una query nell'apertura della stessa tutto
torna vedo la data rientro il ritardo e l'incasso noleggio ma questi sono
stati calcolati usando espressioni (calcoli) e quindi una volta che il film
viene restituito la tabella noleggi non viene totalmente aggiornata ma
risulta solo che il film è rientrato non permettendo di sapere quando e
quanto è stato noleggiato con relativo incasso.
Per essere più chiaro ecco le espressioni usate
DataRientro: [DataPrelievo]+[Giorni ritardo]+[giorni]
Giorni ritardo: Date()-([DataPrelievo]+[Giorni])
Ritardo: [PenaleGiornaliera]*[Giorni ritardo]
Incasso Noleggio: [Prezzo]+[Ritardo]
1)La domanda è questa come faccio ad aggiornare il campo datarientro( e gli
altri) della tabella noleggi con il valore che risulta nell'espressione
della query?
2)      Voglio che quando una persona noleggia un film che ci sia un
controllo immediato che questo non sia già stato noleggiato con la
possibilità però che nel caso che il cliente lo rivoglia l'operazione di
noleggio sia possibile. Qualche idea?
Non so se sono stato abbastanza chiaro (spero di si) e spero che qualcuno
che ci capisca di più di me mi dia una mano anche perché mi sto scoraggiando
(è un mese che sono fermo)
Ringrazio Chiunque mi risponda

 ha scritto nel messaggio
CUT
Mi sembra che cosi' si faccia un po' di confusione.
Spezzetta il problema altrimenti e' dispersivo.
Inizia dal tuo primo problema, ossia i dati che non vengono aggiornati.
Quando esegui calcoli, i dati risultano momentanei, cioe': quando chiudi la
query perdi tutti i valori. Se vuoi inserire i valori calcolati in una
tabella per conservarli puoi usare una query di aggiornamento (se i dati
sono da modificare) o di inserimento (se in dati sono da inserire).
Non e' che si capisse molto delle operazioni che compi, spiega una cosa alla
volta con minore concitazione.
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bin laden saddam attentato medio oriente

 ha scritto nel messaggio
news:taOW7.372480$sq5.18...@news.infostrada.it...

Non è che non ti si voglia rispondere ma in quello che tu dici c'è qualcosa
che lascia perplessi.
Dici che come origine record di una maschera hai una query a campi
incrociati: una query a campi incrociati è per definizione un recordset non
aggiornabile, quindi va bene per visualizzare delle informazioni ma non per
aggiornare dei dati. D'altra parte nessun campo calcolato di una query è
aggiornabile.
Questo almeno si capisce da quello che ci hai detto; non credo che qualcuno
di noi sia in grado di rendere aggiornabile una query a campi incrociati. Se
hai realizzato quello che si capisce dal tuo messaggio, ho paura che tu
debba rivedere un po' la logica del tuo applicativo, adottando soluzioni che
oltre a noleggiare le cassette ne prevedano anche il rientro.
La soluzione del secondo problema è abbastanza facile: è sufficiente una
funzione DLookup; penso però che se non risolvi il primo problema, la
soluzione del secondo sia abbastanza insignificante.
L'analisi e la progetazione di un database è fondamentale e vanno fatte
completamente prima di iniziare a realizzare il database medesimo; se non
segui questo metodo, postresti trovarti in un vicolo cieco dal quale forse è
possibile uscire solamente con una marcia indietro.
Scusa se posso sembrarti crudo nella mia risposta, ma sei tu che hai
insistito per averla.
Comunque mi auguro che qualcun altro capisca diversamente da me ciò che hai
postato precedentemente e che ti possa dare la dritta che aspetti.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------