Newsgroup: it.comp.appl.access
Titolo: Arrotondamento per eccesso o per difetto in automatico in base alla cifra inserita

Ciao a tutti.vorrei ottenere questo risultato:Se inserisco una valore
ad esempio € 3,60 il ris. in automatico deve essere € 3,50. Lo stesso
se e' € 3,70 - Se invece  e' € 3,80 o € 3,90 deve essere € 4,00.Lo
stesso discorso deve valere per € 3,10 o € 3,20  deve essere
arrotondato a € 3,00.Se invece il valore e' € 3,30 o € 3,40 deve
andare ad € 3,50.
Grazie in anticipo
Dino

 Dino
Supponendo che tu abbia una casella di nome Testo0, nell'evento "Dopo
Aggiornamento" inserisci questo codice:
Private Sub Testo0_AfterUpdate()
    Dim icent As Double
    Dim arrotonda As Double
    icent = 0
    icent = CDec(Me.Testo0 - Int(Me.Testo0))
    Select Case icent
    Case 0 To 0.29
        arrotonda = 0
    Case 0.3 To 0.79
        arrotonda = 0.5
    Case 0.8 To 0.99
        arrotonda = 1
     End Select
     Me.Testo0 = Int(Me.Testo0) + arrotonda
     End Sub
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Ciao e grazie per la risposta.Il codice funziona perfettamente se
aggiorno manualmente la casella di testo.In realta' pero' tale casella
viene aggiornata da una query di agg(questa query in base
all'incremento che  inserisco tramite un form aggiorna il prezzo).ho
provato ad aggiornare il campo con un requery ma non funziona.Come
posso fare???
Grazie ancora Dino

 Grazie ancora Dino
Ma da dove lo prende il valore 3,50 3,60 etc? Perchè non ti crei una
funzione.
In un modulo:
Public Function DecRound(ICampo As Double) As Double
    Dim icent As Double
    Dim arrotonda As Double
    icent = 0
    icent = CDec(ICampo - Int(ICampo))
    Select Case icent
    Case 0 To 0.29
        arrotonda = 0
    Case 0.3 To 0.79
        arrotonda = 0.5
    Case 0.8 To 0.99
        arrotonda = 1
    End Select
    DecRound = Int(ICampo) + arrotonda
End Function
Nella finestra Immediata:
DecRound(3.20) ti restituisce 3
DecRound(3.80) ti restituisce 4
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 - Mostra testo citato -
Eccomi....Allora ho inserito la funzione in un modulo(chiamato
DecRound()).Sono andato poi nella query  ed ho creato il campo
Prezzoarr :DecRound([prezzo]).Così ho fatto anche in tutte le query di
aggiornamento.Funzionava tutto correttamente ,poi nell'uscire  e nel
rientrare  nel  DB e' arrivato il problema.Apro il form per variare il
prezzo(l'origine dati di questa maschera e' data dalla query dove ho
creato il campo "Prezzoarr") e mi da la segnalazione "funzione non
definita nell'espressione"
Da cosa puo' dipendere????
Grazie ancora Dino

 Grazie ancora Dino
Hai chiamato il modulo con lo stesso nome della funzione??
Se è così è errato.
Ricordati che la funzione è Public.
Testala nella finestra Immediata.
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 - Mostra testo citato -
Ho provato nella fin. immediata e funziona correttamente.Ho rinominato
il nome della funzione ma mi da ancora lo stesso errore.
NB:Per rinfrescarmi la memoria.Con una funzione "Public" io posso
nella struttura di una query inserirla???.Se dovessi inserirla in un
form ???
Grazie
Dino

?"Dino"  ha scritto nel messaggio 
news:26bf9d5d-ffb5-4ea2...@q18g2000vbm.googlegroups.com...

Grazie in anticipo
Dino
__
Ciao
www.donkarl.com/it
Arrotondamenti

 ?"Dino"  ha scritto nel messaggionews:26bf9d5d-ffb5-4ea2...@q18g2000vbm.googlegroups.com...

Ciao e grazie per la risp.Il problema non e' la funzione.Quella che mi
ha scritto SV va benissimo.dEvo solo farla riconoscere a tutti gli
oggetti del DB.
Dino

 Dino
Una Public la puoi richiamare sempre da dove vuoi tu.
Ma che c'entra rinominare la funzione?
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 - Mostra testo citato -
C'entra che sono "molto" "arrugginito" con il codice.In realta' avevi
gia' ragione tu stamattina.Mi dicevi di non chiamare un modulo nello
stesso modo della funzione all'interno di esso.
Morale ho rinominato la funzione e lo chiamata "Pippo".Nelle query
invece richiamo il nome reale DecRound e tutto funziona correttamente.
Adesso devo solo fare delle prove in alcune form,ma penso di aver
risolto.
Grazie ancora per l'aiuto
NB:Aspetta il mio OK definitivo tra un attimo
Dino

 - Mostra testo citato -
OK funziona tutto correttamente
Rigrazie
Dino
PS:Salutami CIDI

 PS:Salutami CIDI
Senz'altro.
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
