Newsgroup: it.comp.appl.access
Titolo: query impostabile dall'operatore

Salve a tutto il newsgroup
Vorrei sapere se esiste un modo per permettere all'operatore, che 
inserisce i dati, di poter anche decidere quali calcoli effettuare sugli 
stessi......mi spiego meglio.
Supponiamo di avere una maschera singola di inserimento dati (basata 
quindi su una relativa tabella) con 5 controlli denominati valore1, 
valore2, valore3, valore4 e valore5 e di inserirci dei valori numerici.
Se io ora volessi fare dei calcoli aritmetici utilizzando questi valori ( 
per esempio sommare valore1 a valore5 e dividere per valore3) devo per 
forza impostare a priori una query oppure esiste un modo per permettere 
all'operatore di poter effettuare qualsiasi calcolo esso voglia fare sui 
dati appena inseriti? Ovviamente senza dover intervenire sulla struttura 
del batabase......
Spero di essermi spiegato bene.......è solo una domanda per capire se la 
cosa è fattibile o meno.
Grazie

 ha scritto nel messaggio 
news:figmof$irg$1...@carabinieri.cs.interbusiness.it...

----------------------
E' fattibile...la query o enunciato sql viene scritto al volo da codice.
E' chiaro che devi prevedere tutti i "pulsantini" per le varie operazioni 
aritmetiche...una specie di calcolatrice.
Ciao, Carlo

Ciao
Grazie per la risposta ultraveloce.
Io purtroppo non sono molto pratico di vba: potresti essere così gentile 
da farmi un piccolo esempio di codice....tanto per iniziare?
Magari basato sull'esempio fatto nel mio messaggio precedente.
Grazie in anticipo
Ciao

ca...@flag.it
 ha scritto:

Puoi dare all'utente la possibilità di scriversi la sua formula
personalizzata, utilizzando anche parentesi e costanti, e di vedere subito
il risultato.
Aggiungi una casella dove inserire la formula, chiamala Formula, e una per
il risultato, chiamala Risultato, quest'ultima bloccata e non abilitata.
Sugli eventi 'dopo aggiornamento' di ogni valore e della formula richiami
una sub che calcola il risultato.
La formula andrà inserita con questa sintassi, puoi anche richiamare un
valore più volte:
  (valore3+(valore1-valore4)/valore2+50)*valore3
Nella sub leggi la formula, sostituisci i vari valoreX con il contenuto
delle caselle e la passi ad Eval() (vedi help <F1> per Eval)
Dim Formu As String
    Formu = Me.Formula
    Formu = Replace(Formu, "valore1", Nz(Me.valore1, 0))
    Formu = Replace(Formu, "valore2", Nz(Me.valore2, 0))
    Formu = Replace(Formu, "valore3", Nz(Me.valore3, 0))
    Me.Risultato = Eval(Formu)
Se hai parecchi valori puoi fare le sostituzioni con un ciclo.
Siccome le formule non sono altro che delle stringhe puoi anche salvarle
in una tabella e richiamarle all'occorrenza con una combo.
Se serve puoi usare più caselle Formula, ognuna con la sua casella
Risultato a fianco.
Ciao.
-Marco-
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
ca...@flag.it
 ha scritto:




Dimenticavo... con questo sistema puoi usare anche costanti, ad esempio
'PI', che nel calcolo verranno sostituite con il loro valore (3,1415....)
ecc... e qualsiasi altro nome convenzionale ad esempio NumRecProdotti che
sostituisci con il numero di record della tabella Prodotti (utile per
calcolare medie), ecc...
In questo caso bisognerà fornire all'utente una piccola guida con l'elenco
delle costanti/variabili utilizzabili.
Usa nomi corti per i le textbox dei valori, per facilitare la scrittura
della formula, tipo V1, V2, V3...
Se i valori sono salvati nei record di una tabella devi richiamare la sub
Calcolo anche sull'evento Corrente della maschera, per aggiornare il
risultato quando passi da un record all'altro.


Ciao
Prima di tutto grazie per la risposta.
Vorrei però capire bene il procedimento prima di iniziare tutto il lavoro 
e soprattutto capire se è una cosa fattibile in base alle mie scarse 
capacità.
Non capisco cosa intendi quando scrivi: "sugli eventi 'dopo aggornamento' 
di ogni valore e della formula richiami una sub che calcola il risultato".
In particolare cos'è una sub? Come si richiama?
Poi i risultati ottenuti dalla formula dovrebbero essere memorizzati in 
quanto su questi ci sarà un'altra parte di programma che effettua delle 
statistiche.
E' sempre fattibile?
Grazie di nuovo

ca...@flag.it
 ha scritto:

Non ho tempo adesso di spiegarti la programmazione VBA e gli eventi, è un
argomento lungo. Comunque se vuoi realizzare in Access una qualsiasi
funzione che non sia nativa (come lo scorrimento dei record nelle
maschere, i semplici filtri ed ordinamenti) ed applicare i suggerimenti
che riceverai sui newsgroup, ti sarà indispensabile sapere come funzionano
gli eventi e conoscere un po' di VBA (Visual Basic for Applications).
Quindi, a meno che non ci sia qualcuno disposto a farti qua sul ng un
corso on-line, ti consiglio di cercare materiale in internet (ce n'è in
quantità) e di procurarti un buon libro in materia e/o iscriverti a
qualche corso.
Prova a cercare in internet qualcosa tipo "Access corso VBA routine
evento".


 ha scritto nel messaggio 
news:figp3g$kl2$1...@carabinieri.cs.interbusiness.it...
Ciao
Grazie per la risposta ultraveloce.
Io purtroppo non sono molto pratico di vba: potresti essere cosě gentile
da farmi un piccolo esempio di codice....tanto per iniziare?
Magari basato sull'esempio fatto nel mio messaggio precedente.
Grazie in anticipo
Ciao
Gli esempi che ti ha fornito Marco sono perfetti...ma capisco che non 
mastichi molto di VBA (di codice).
E' anche apprezzabile il fatto che vuoi renderti conto di quello che fai o 
impari....
Devo dirti che in questo NG troverai moltissimo aiuto ma č richiesto un 
minimo di conoscenze da parte tua.
Comincia a postare qualcosa del tipo...Cosa č una funzione o una Sub? Cosa 
sono gli eventi?
Vedrai che nel giro di pochissimo tempo sarai in grado di muovere i primi 
passi nella programmazione.
Ciao, Carlo

Ciao e grazie sia a Marco che a Carlo per le risposte.
Ancora una domanda: sapreste consigliarmi un libro per INIZIARE a 
programmare in vba?
Tanto per non 'sparare' nel  mucchio......
Grazie ancora
Ciao

 ha scritto nel messaggio 
news:fijnnq$91a$1...@carabinieri.cs.interbusiness.it...

Prima di tutto la guida in linea di Access...anche se dipende dalla versione 
che hai.
Poi comincia da questa ricerca:
http://www.google.it/search?hl=it&q=Programmare+VBA+Access&meta=
Qui trovi manuali e trucchi o esempi (scorri le varie pagine):
http://www.manuali.net/manuali/search.asp?advanced=true&q=Access%20VBA&mode=or&cat=0&autore=&lingua=&formato=&size=0&p=5
http://www.itportal.it/tutorial/software/office/vba/
Ciao, Carlo