NB:
da Tinto:
SELECT Collaudi.*, SpecificheA.* FROM Collaudi INNER JOIN SpecificheA ON (Collaudi.CDARTSPEC=SpecificheA.[SANMDIS]) AND (Collaudi.CDPOS = SpecificheA.SAPOS);
Mi sono dovuto basare sulle informazioni che mi hai dato, o meglio su quelle che sono riuscito a comprendere , percui è possibile che, se ho saltato qualche "variabile", il risultato non sia quello atteso... (l'asterisco della stringa SQL, non mi ha permesso di leggere correttamente i nomi dei campi [f3], [f7] e [f8] per cui nella query che ho preparato li ho chiamati semplicemente [f3], [f7] e [f8] senza le parentesi quadre... nel caso provvedi tu a sostituire
Collaudi.*, SpecificheA.* come da indicazioni sotto...).
posto la query:
UPDATE Collaudi INNER JOIN SpecificheA ON (Collaudi.CDARTSPEC = SpecificheA.[SANMDIS]) AND (Collaudi.CDPOS = SpecificheA.SAPOS) SET Collaudi.f7 = CercaNaNr([f3]), Collaudi.f8 = CercaPzprel([f3])
WHERE (((Collaudi.f3)<>"+"));
ps: come argomento delle funzioni sono consapevole di aver messo [f3] ovviamente quella è una condizione, mentre i paramentri sono altri (e mi devi indicare tu quali sono i nomi dei campi da passare come argomento - tieni presente che se sono nella query puoi indicarlo come [nomecampo] altrimenti ho bisogno di sapere dove sono 'Formxxx.nomecomtrollo')
Fai una copia del DB... la query di aggiornamento se mal utilizzata è pericolosa... e prova i seguenti passaggi:
Crea una query in modalità struttura e Tasto Destro richiama la visualizzazione SQL e copiaci la stringa di cui sopra salva la query e chiudila Chiamala "qry_Update"
Sostituzione di Collaudi.*, SpecificheA.* --> nella struttura query fai doppio click su tutti i campi che sono utilizzati sia dalla query stessa che dalla subform che li ospita assicurati che [f3], [f7] e [f8] senza parentesi siano i nomi esatti e mi raccomando..... IMPORTANTE ... non premere il punto esclamativo. ( nella query che ti ho postato, i campi [f3], [f7] e [f8] sono già stati inclusi... nel caso devi solo correggere il nome)
Se riesci prova ad attribuire tu gli argomenti alle funzioni.
quando hai fatto... se ti va di postare la query l'analizziamo...
Giunti a Questo Punto, se tutto è andato bene, siamo a metà dell'opera.
Al fine di decidere come e dove far lavorare la query affrontiamo ancora qualche questione:
Quali sono gli eventi che dovrebbero dare luogo al calcolo delle funzioni e alla rispettiva visualizzazione in [f7] e [f8]???
ho una subform (countinuos form) con alcuni campi calcolati in base ad un valore numerico della main form che può variare (editabile)
uno è sicuramente il controllo di cui sopra (qual'è il nome del controllo?)
[f3] è una casella di testo unbound il cui nome è "Lett" la cui origine è: =CercaLivello([SALIVEL];'C')
Ottengo il valore associando la riga Collaudi che sto trattando alla riga di Specifiche (dalla quale ottengo il campo SALIVEL) e cerco nella tabella Livelli il record che ha il primo valore superore a RCQTACF (campo della subform continous form Certificati) in LVQTAMX
un altro dovrebbe essere [SALIVEL] ( è editabile ?) (se è si la risp: qual'è il nome del controllo?)
un altro dovrebbe essere [RCQTACF ] ( è editabile ?) (se è si la risp: qual'è il nome del controllo?)
Se vi sono altri controlli editabili che possono dar luogo al ricalcolo o non ho interpretato bene il ciclo di funzionamento del tuo prog... fammi sapere...
saluti