Newsgroup: it.comp.appl.access
Titolo: aggiornamento campi

raga ho un problemino...
devo costruire una maschera dove inserendo il valore di un controllo mi
vada ad aggiornare in automatico altri valori di altri controlli. ok
mi spiego fino in fondo
ho due tabelle in access: registrazione_manutenzione e manutenzione
preventiva.
la prima mi serve per registrare i dati della manutenzione che ho fatto
su alcune macchine; nell'altra ci sono i valori della manutenzione
preventiva.
dovrei costruire la maschera per la registrazione. mettendo il valore
id_manutenzione i campi id macchina, id sottomacchina, attività,
addetto, e materiali si dovrebbero aggiornare automaticamente. della
serie prendo i dati dalla tabella manutenzione preventiva per compilare
la mia maschera.
spero di essermi spiegato, in effetti non è facile dirlo a parole...
il fatto è che non so da dove cominciare, proprio niente di niente...
spero che possiate darmi una mao vi sarei davvero riconoscente.. grazie

[omissis]
Vediamo di chiarificare: tu vorresti una maschera per la registrazione delle 
manutenzioni dalla quale selezioni un modello di manutenzione preventiva 
e ti ritrovi la nuova manutenzione che stai inserendo già compilata, con 
solo qualche aggiustamento da fare?
Se è così, puoi ricorrere facilmente al VBA, tramite cui andare a copiare 
i record dei dettagli della manutenzione preventiva nei dettagli della manutenzione 
che vuoi inserire.
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

si esatto ma per il codice non so da che parte rifarmi....

mica mi potresti aiutare in qlc modo... ti posso dare tutte le
informazioni che ti servono non ti rimane altro che chiedere... se ti
va di farlo altrimenti....mi bloccherò.. grazie!!

> si esatto ma per il codice non so da che parte rifarmi....
Comincia con il postare l'esatta struttura delle tabelle e delle relazioni 
contenute nel database in questione.


allora le due tabelle sono:
MANUTENZIONE_PREVENTIVA con i campi:
id manutenzione (contatore), id master (numerico), id slave (testo),
attività (testo), [frequenza (giorni)] (numerico), materiale e
quantità (memo), note operative (memo), [tempo previsto (h,mm)]
(data/ora), addetto (testo), prossima manutenzione (data/ora)
REGISTRAZIONE_MANUTENZIONE con i campi:
id registrazione (contatore), id manutenzione (numerico), id master
(numerico), id slave (testo), attività (testo), addetto (testo),
materiale e quantità (memo), [tempo (h,mm)] (data/ora), anomalie
(memo), note operative (memo), data (data/ora)
L'obiettivo sarebbe quello di creare una maschera dove inserendo io
l'id manutenzione mi si riempiono i campi id master, id slave,
attività, addetto. Nel campo data il valore predefinito dovrà essere
la data odierna.
Aggiungendo poi tutti gli altri campi rimasti vuoti il tutto dovrà
essere salvato nella tabella REGISTRAZIONE_MANUTENZIONE.
Altra operazione sarebbe quella di sommare la DATA con la FREQUENZA per
ottenere il campo PROSSIMA MANUTENZIONE da salvare nella tabella
MANUTENZIONE_PREVENTIVA
La relazione tra le tabelle: 1 a molti tra 
MANUTENZIONE_PREVENTIVA.ID
MANUTENZIONE e 
REGISTRAZIONE_MANUTENZIONE.ID
 MANUTENZIONE
ti ringrazio anticipatamente anche per avermi ascoltato... grazie
grazie grazie...
se ti serve qualche altro particolare non hai altro che da chiedere...
se pio vedi che la cosa ti sta occupando troppo tempo me lo dici che
provvederò a spararmi da solo.... eheheh :-)) grazie mille ancora

 MANUTENZIONE_PREVENTIVA
?!?!?
Ferma ferma ferma.
In base a quello che hai scritto, quindi, la MANUTENZIONE_PREVENTIVA NON 
E' un modello di compilazione della REGISTRAZIONE_MANUTENZIONE.
Nel tuo post precedente in risposta al mio hai detto l'esatto contrario.
Comunque, visto che la form in questione ha come origine record la tabella 
REGISTRAZIONE_MANUTENZIONE, per andare a modificare un record in una tabella 
differente devi necessariamente ricorrere al VBA.
A questo punto l'evento da scegliere dipende da quando vuoi riportare la 
modifica in quella tabella.
Supponendo di volerla riportare dopo che hai salvato il record, quindi l'evento 
sarà Form_AfterUpdate o Form_AfterInsert.
In uno di questi eventi dovrai utilizzare il seguente codice:
Dim intNumGiorni as integer
intNumGiorni = DLookup("[frequenza (giorni)]", "MANUTENZIONE_PREVENTIVA", 
"[id manutenzione]=" & Me.[id manutenzione])
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE MANUTENZIONE_PREVENTIVA SET [prossima manutenzione] 
= " & DateAdd("d", intNumGiorni, Me.Data)
DoCmd.SetWarnings True
Buona fortuna.


& Me.[id manutenzione])
dove lo vado a scrivere??? io l'ho inserito dopo l'aggiornamento della
Combobox ID Manutenzione della maschera, ma mi dà dei problemi:
"Impossibile trovare la macro Me."
cos'è che sbaglio?? mica mi potresti dare qlc informazione in più se
non ti scoccia??? ti ringrazio tanto
3. Per l'altra data.. ossia la somma di data e frequenza ancora non mi
ci sono messo... magari ti scrivo dopo...
ciao e grazie ancora...

E' un modello di compilazione della REGISTRAZIONE_MANUTENZIONE.
la tabella manutenzione_preventiva mi serve anche per fare il
calendario delle prossime manutenzioni..

>Dim intNumGiorni as integer
intNumGiorni = DLookup("[frequenza (giorni)]",
"MANUTENZIONE_PREVENTIVA",
"[id manutenzione]=" & Me.[id manutenzione])
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE MANUTENZIONE_PREVENTIVA SET [prossima
manutenzione]
= " & DateAdd("d", intNumGiorni, Me.Data)
DoCmd.SetWarnings True
scusa ma l'editor di visual basic mi dà un errore di compilazione
DateAdd("d"............... mi dà errore sulla "d".. mi dice che è
prevista un fine istruzione... dove sta il problema??
tutto questo lo vado a scrivere nel AfterUpdate di DATA va bene????
grazie mille sei gentilissimo e piano piano mi stai risolvendo grossi
guai.. ciao



Allora devi rivedere la struttura della base dati.
Senza una struttura efficace, che rispecchia il problema logico, è INUTILE 
che tu provi a scrivere anche una sola riga di codice.
Mio modesto parere, s'intende.


 ma mi dà dei problemi: "Impossibile trovare la macro Me."
Prova a modificarla come segue:
Me.Controls("id master") = DLookup("[id master]", "MANUTENZIONE_PREVENTIVA", 
"[id manutenzione]=" & Me.Controls("id manutenzione")


 tutto questo lo vado a scrivere nel AfterUpdate di DATA va bene????
Non sono più sicuro nemmeno di come mi chiamo.


grazie ho risolto tutto scrivendo tutta la maschera e tutti gli
aggiornamenti in cadice.. mi c'è voluto un bel po' ma ce l'ho fatta ed
ho risolto i problemi.. Adesso ho delle difficoltà con una stringa
SQL, ho postato una nuova discussione... magari dacci un'occhiata se
vuoi...
Comunque la struttura del DB doveva esser fatta così...