Newsgroup: it.comp.appl.access
Titolo: Attribuire parametri da un form

Ciao
Come si può fare per attribuire i parametri da un form per esempio ricarico
o sconto
a tutti o ad una sola categoria?  Io l'o risolto parzialmente o quasi.
Ho creato una maschera ,basata su tabella omonima [Gest Ricarichi] ,per
attribuzione prezzi agli articoli con i controlli relatinvi [Ricarico]
,[sconti], [Categorie]. Cioè, Praticamente tramite questi parametri nella
query  di
Articoli mi Dovrebbe aggiornare i [prezzi] di Tutti record o solo ad una
categoria . Nella query per fare riferimento  a Controlli in form [gest
ricarichi] ho inserito la funzione DLookup("[Ricarico]";"Gest Ricarichi")
nell'intestazione di  campo in griglia di struttura ,che mi funziona
egregiamente per attribuire a tutte le gategorie . se invece volessi
aggiornare solo una categoria  non ci riesco a fare nulla a tal punto che
mifa venire il dubbio cha la strada  è sbaliata. cosa si può fare? sono
proprio fuori come un balcone o no.
con access è possibile o bisogna ricorrere al codice Vb e come?
ringrazio anticipatamente se qualcuno sa delucidarmi su questo argomento.
Ciao
- shari


Se non ho capito male ti dovrebbe servire una query di aggiornamento che ha
come criterio di selezione il campo [articolo] o [categoria] (se li hai
chiamati cosě).
Codice VBA? Sě un pochino serve e non fa mai male; un esempio č inserire il
seguente codice in un bottone:
'-------------
Docmd.RunSql "UPDATE [Gest Ricarichi]  SET  [Ricarico] = " &
nz(me!ricarico,0) & ", [sconti] = " & nz(me!sconti,0) & " WHERE [categoria]
= " & chr(34) & me!categoria & chr(34) & ";"
'-------------
Ti aggiorna il campo ricarico e sconti per tutti gli articoli di quella
categoria.
Per aggiornare (sostituire) tutti i prezzi invece:
'-------------
Docmd.RunSql "UPDATE [Gest Ricarichi]  SET  [Ricarico] = " &
nz(me!ricarico,0) & ", [sconti] = " & nz(me!sconti,0) & ";"
'-------------
Attenzione che io ho inteso il termine "aggiornare" come "sostituire il
prezzo vecchio con quello nuovo" e non come "incrementare un valore".
Ciao.

 Ciao Sergio
 Ti ringrazio per la risposta . ma nel codice non vedo nessun Riferimento
alla tabella articoli.Senz'altro sono stato io che non mi sono fatto capire.
(tabella "Articoli"  ha alcuni campi come [Nome articolo] ,[Mis], Ecc..
Poi[PrzCosto], [Categoria] ,[PrzVendita]),
Io non devo aggiornare tabella "Gest Ricarichi" questo mi serve solo per
inserire i [ricarico], [Sconto] ,[categoria] per poi prenderli nella Tabella
o/e Query
[articoli],  e assegnarli al [PrzCosto] a tutte o solo una categoria e fare
dei calcoli
nella query ( per esempio: [PrzCosto]*[Ricarico] oppure * sconto ecc...).a
questo punto non impota che sostituisce o incrementa perchč fa quei
calcoli.Quindi Quando io inserisco i parametri in quel form Con un evento
mideve modificare valori in tabella ,Nel caso specifico di [categoria]questo
č un comboBox che prende categorie Es. A ;B ;C ;D ecc..da una tabella, e
scegiendo una categoria con evento pulsante di deve modificare solo quella
categoria.
Spero di essere stato piů chiaro di prima .
 Ti auguro Buona Pasquua Ciao
-Shari


Ho dato per scontato che il tuo riferimento a "query Articoli" era il nome
della query e non della tabella. Comunque dovresti solo cambiare il
riferimento nelle istruzioni sql:
'-------------
Docmd.RunSql "UPDATE [Articoli]  SET  [PrzCosto] = [PrzCosto]*" &
nz(me!ricarico,0) & " WHERE [categoria]= " & chr(34) & me!categoria &
chr(34) & ";"
'-------------
'-------------
Docmd.RunSql "UPDATE [Articoli]  SET  [PrzCosto] = [PrzCosto]*" &
nz(me!ricarico,0) & ";"
'-------------
Sempre se ho capito...
Ciao.

 wrote in message
9bgvc9$l44$1...@suite03.caspur.it...


 centra?
Per favore rispondi dopo il messaggio precedente, come faccio io, grazie.
Il chr(34) altro non è che la codifica ascii delle doppie virgolette; se
prevedi che nel campo [categoria] o nel controllo me!categoria non venga mai
inserito un dato con l'apostrofo, puoi liberamente farne a meno (del
chr(34)); quindi potresti modificare l'istruzione in:
'-------------
Docmd.RunSql "UPDATE [Articoli]  SET  [PrzCosto] = [PrzCosto]*" &
nz(me!ricarico,0) & " WHERE [categoria]= '" & me!categoria & "';"
'-------------
con l'apostrofo che delimita il contenuto del controllo me!categoria. Al
contrario, non puoi farne a meno se hai una categoria con l'apostrofo;
prendi per esempio i cognomi: es. Silvio DELL'ORSO; l'istruzione
diventerebbe:
'-------------
Docmd.RunSql ".... WHERE [cognome]= '" & me!cognome & "';"
'-------------
Che tradotto per l'sql è:
'-------------
Docmd.RunSql ".... WHERE [cognome]= 'DELL'ORSO';"
'-------------
Ti produce un errore perché l'apostrofo e le doppie virgolette sono
delimitatori di testo, puoi inserire sia l'uno che l'altro ma sempre a
coppia.
L'istruzione giusta è:
'-------------
Docmd.RunSql ".... WHERE [cognome]= "DELL'ORSO";"
'-------------
Ma chiaramente una stringa scritta così è sempre un errore e infinocchi il
VBA utilizzando i codici ascii in questo caso il 34:
'-------------
Docmd.RunSql ".... WHERE [cognome]= " & chr(34) & "DELL'ORSO" & chr(34) &
";"
'-------------
Spero di essere stato chiaro...
Ciao.

 wrote in message
9bp1fi$k9j$1...@canarie.caspur.it...
