Newsgroup: it.comp.appl.access
Titolo: Operazione in base a selezione...

Salve a tutti è la prima volta che scrivo su questo NG (in verità è la prima
volta che ne utilizzo uno... :P cmq...) spero possiate aiutarmi.....sono un
neofilo in quanto a programmazione Access...mi stò avvicinando solo da poco
a questo tipo di programmazione...volevo chiedervi...è possibile applicare
determinate operazioni tra tabelle in base al conenuto di una di esse ?
Mi spiego meglio....ho un casella di selezione dove vado a selezionare il
tipo di contratto di un dipendente "X" in base al tipo di contratto
selezionato devo effettuare determinate operazioni fra alcune tabelle di
tipo numerico....naturalmente come già detto al variare del
contratto...varierà anche il tipo di calcolo da effettuare tra le tabelle.
Ve ne sarei molto grato...e spero di essermi spiegato bene.... :P
See Yaa....

 ha scritto nel messaggio
news:UDeLa.153811$pR3.3...@news1.tin.it...

Credo tu possa utilizzare l'evento DopoAggiornamento e sfruttare
la struttura Select Case........!!!
Private Sub TuoControllo_AfterUpdate()
    Select Case Me.NomeControllo
        Case 1
            'Primo calcolo
        Case 2
            '................
        Case 3
            '-...............
    End select
End Sub
@Alex.

 ha scritto nel messaggio
news:F6fLa.127887$Ny5.3...@twister2.libero.it...



Io avevo capito...............!!!!
Quello che ti ho postato era solo l'esempio che
se adattato correttamente FUNZIONA.
Prova a ripostarmi il tuo codice completo di formule
reali.
@Alex.

 ha scritto nel messaggio
news:ZGkLa.128769$Ny5.3...@twister2.libero.it...



Rispondi sempre dopo il Quoting o messaggio precedente......!
Vista cosě č ovvio che non vada, hai copiato il mio codice e incollato.
Ti avevo accennato che era solo l'esempio di come impostare la cosa.
Devi comprendere l'utilizzo di Select Case.
Poichč la casella di selezione(che non sň cosa sia ma presumo una ComboBox
o una ListBox) ha valori di tipo Testo allora e ovvio che nei Case devi
inserire i valori Testo:
Private Sub Tipo_contratto_AfterUpdate()
     Select Case Me.Tipo_contratto
         Case "Incarico Professionale"
                'E' chiaro che quě di seguito ci devi mettere
                'le formule riferite ai Controlli o valori o Variabili reali
che hai tu.
                'CostoOrario= "Imponibile Orario"
        Case "Incarico cococo"
                'E' chiaro che quě di seguito ci devi mettere
                'le formule riferite ai Controlli o valori o Variabili reali
che hai tu.
                'Costo Orario="Imponibile Orario" + "Irap" + "Inail" +
"Inps" e a sua
                "Inail" deve essere uguale a "0,004" x "Imponibile Orario"
                "Inps" deve essere uguale a "Imponibile Orario" x "9,33%"
                "Irap" deve essere uguale a "Imponibile Orario" + "Inps" x
"4,25%"
    End Select
End Sub
Non puň funzionare nemmeno cosě se non ci metti un pň del tuo ad adattare
la struttura.
Spero di essere stato piů concreto.......!
@Alex

 ha scritto nel messaggio
news:V%FLa.131175$Ny5.3...@twister2.libero.it...

Ciao @Alex grazie a te sono riuscito a risolvere il mio dilemma.. :)  c'č
solo un ultima cosa che non riesco a capire.. ti posto di seguito la
compilazione:
Private Sub Tipo_contratto_AfterUpdate()
    Select Case Me.Tipo_contratto
    Case "INCARICO PRESTAZIONE PROFESSIONALE"
    Costo_Orario = Impo_orario
    Case "INCARICO PRESTAZIONE OCCASIONALE"
    Costo_Orario = Impo_orario + Irap
    Irap = Impo_orario * 4,25%      <-------
    End Select
End Sub
dove indicato con la freccia credo che ci sia un problema....non mi effettua
l'operazione....credo che per quanto riguarda questa operazione bisogni
applicare un metodo diverso....potresti darmi quest'ultimo aiuto ??
Grazie anticipatamente...
See yaa....


Cos'č Impo_orario e Irap...?
Sono variabili publiche della tua Form oppure controlli TextBox
della Form.....?
Se sono controlli come immagino devi usare i corretti riferimenti,
ma poi devi riaggiornare la Form:
Me.Irap=Val(Me.Impo_orario) * 4,25
Me.Recalc 'Oppure Me.Requery ma nel tuo caso credo sia meglio Recalc
Ciao.
@Alex.


Allora tutti i valori sopracitati sono tutte caselle di testo di una
maschera dove i dati vengono immessi manualmente e memorizzati
successivamente nei relativi campi l'unico valore fisso è Tipo_contratto che
in effetti è un listbox con dei valori preimpostati.
Cmq..ho provato a fare come hai detto:
Private Sub Tipo_contratto_AfterUpdate()
    Select Case Me.Tipo_contratto
    Case "INCARICO PRESTAZIONE PROFESSIONALE"
    Costo_Orario = Impo_orario
    Case "INCARICO PRESTAZIONE OCCASIONALE"
    Me.Irap = Val(Me.Impo_orario) * 4.25
    Me.Requery
    Costo_Orario = Impo_orario + Irap
    Case "INCARICO DI COLLABORAZIONE COORDINATA E CONTINUATIVA"
    Costo_Orario = Impo_orario + Irap + Inail + Inps
    Inail = [0.004] * Impo_orario
    Inps = Impo_orario * [9.33]
    Irap = Impo_orario + Inps * [4.25%]
    End Select
End Sub
e diciamo che sotto un certo punto di vista funge se non fosse che a parte
il prodotto errato quando poi il 4.25 a me servirebbe in percentuale....e ho
notato che anche in questa condizione non funge....

 ha scritto nel messaggio
news:13XLa.164077$pR3.3...@news1.tin.it...
[CUT]

Scusa ma 4.25%=0.0425 quindi usa quello.........!
Poi ti ripeto devi esplicitare il riferimento Me.NomeControllo
ed in oltre riferirti al Valore della TxtBox con la funzione VAL.
in più alla fine devi inserire un Me.Recalc
Non mi fare scrivere il codice che odio scrivere il mio.......!
Applica quanto ti ho suggerito e funziona tutto.
@Alex.


Ciao Alex credimi le stò provando tutte se provo a inserire la funzione come
mi avevi suggerito:
Me.Irap=Val(Me.Impo_orario) * 4,25
Me.Recalc 'Oppure Me.Requery ma nel tuo caso credo sia meglio Recalc
il database comincia a darmi impicci....ho provato a modificare + volte la
stringa e l'unica che si avvicina a quello che cercavo è questa:
Private Sub Tipo_contratto_AfterUpdate()
    Select Case Me.Tipo_contratto
    Case "INCARICO PRESTAZIONE PROFESSIONALE"
    Costo_Orario = Impo_orario
    Case "INCARICO PRESTAZIONE OCCASIONALE"
    Irap = Impo_orario * 0.0425
    Costo_Orario = Val(Impo_orario) + Irap
    Case "INCARICO DI COLLABORAZIONE COORDINATA E CONTINUATIVA"
    Irap = Inps + Val(Impo_orario)
    Inps = Impo_orario * 0.0433
    Inail = Impo_orario * 0.004
    Costo_Orario = Val(Impo_orario) + Inail + Inps + Irap
    End Select
End Sub
solo che alcuni calcoli li fa bene ....altri invece no....ho fatto uno
screenshoot della maschera è puoi constatare anche tu che alcuni calcoli
sono sbagliati...
http://www.gegmultimedia.com/database.jpg
a questo punto l'unica cosa che mi può venire in mente è che possano essere
i campi della tabella....quelli per intenderci Irap Inps...ecc..ecc..che li
ho settati come "Testo" invece che numerico visto che non mi accettava i
record che avevano lo 0 dopo la virgola...potrebbe dipendere da questo ?
Sono disperato... :°(
See Yaa....


Vediamo cosě:
 Private Sub Tipo_contratto_AfterUpdate()
     Select Case Me.Tipo_contratto
         Case "INCARICO PRESTAZIONE PROFESSIONALE"
             Me.Costo_Orario = Impo_orario
         Case "INCARICO PRESTAZIONE OCCASIONALE"
             Me.Irap = Val(Impo_orario) * 0.0425
             Me.Costo_Orario = Val(Impo_orario) + Irap
         Case "INCARICO DI COLLABORAZIONE COORDINATA E CONTINUATIVA"
             Me.Inps = Impo_orario * 0.0433
             Me.Irap = Val(Inps) + Val(Impo_orario)
             Me.Inail = Impo_orario * 0.004
             Me.Costo_Orario = Val(Impo_orario) + Inail + Inps + Irap
    End Select
-----------------------------------------------------------------
    Me.Recalc
-----------------------------------------------------------------
 End Sub
Secondo me avevi invertito nel calcolo INPS e IRAP che invece essendo
dipendenti
dovevano essere eseguite ognuna nell'ordine corretto.
Poi impara a mantenere le spaziature nel CODICE in modo che sia piů
comprensibile a livello visivo la struttura e le dipendenze......!
@Alex.

 ha scritto nel messaggio
news:Q5dMa.137236$lK4.3...@twister1.libero.it...

Ciao @Alex tra un pň tento il suicidio... :°(  non capisco .... a seconda se
metto la virgola o il punto nell' "Impo_orario" mi restituisce valori
diversi...per prestazioni occasionali nel calcolo va bene la virgola ...per
prestazione occasionale va bene il punto...per prestazione coordinata e
continuativa nessuno dei due...in ogni caso mi restituisce nell'irap un
valore sbagliato...
Cmq grazie per i consigli che mi stai dando...in effetti sono un pň
disordinato per quanto riguarda il linguaggio di programmazione... :P
See Yaa.....