Newsgroup: it.comp.appl.access
Titolo: Scomporre numero

Come poter visualizzare un numero 1.200
in 1  o 200 quindi visualizzando o il numero
prima del punto oppure dopo il punto.
Grazie
Rino Ferrari

 ha scritto nel messaggio
news:7Bz6d.14127$75.6...@news3.tin.it...

Ciao Rino,
a questo punto sono curiosa, io ti trovo una soluzione ma tu mi devi
spiegare a cosa ti serve!
Saluti
Cinzia


Sono felice di aver suscitato la tua curiosità ;-D
Bene lavorando con un gestionale sono emerse delle
esigenze, la prima come da te gia risolta la conosci,
ora il risultato ottenuto naturalmente incrementando
di 200 unità per volta si arriva a valori del  tipo 1.200
questo valore per degli ordini particolari va visualizzato
in questo modo Kg.1 gr.200 ecco giustificata la mia richiesta.
Ciao Rino

 prima del punto oppure dopo il punto.
Questa funzioncina credo ti possa aiutare, adattata alle tue esigenze...
Dim strNumero As String
Dim strParteIntera As String
Dim strParteDecimale As String
Dim strDecimalSeparator As String
Dim lDecimalPosition As Long
strNumero = "1,200"
strDecimalSeparator = Mid(1 / 2, 2, 1) 'Estrae informazioni sul separatore
decimale
lDecimalPosition = InStr(1, strNumero, strDecimalSeparator) 'Posizione del
separatore
If lDecimalPosition > 0 Then 'Se esiste il separatore
   strParteIntera = Left(strNumero, lDecimalPosition - 1) 'Parte intera:
prima del separatore
   strParteDecimale = Mid(strNumero, lDecimalPosition + 1) 'Parte decimale:
dopo il separatore
Else 'Se non viene rilevato il separatore
   strParteIntera = strNumero
   strParteDecimale = 0
End If
--
Daniele M. aka mcdany
mc_NO_S...@tiscali.it

 ha scritto nel messaggio
news:UWz6d.14255$75.6...@news3.tin.it...

Ciao Rino,
non occupandomi quasi per niente di gestionali in senso "classico" (bolle,
fatture...) mi risultava difficile immaginare l'utilizzo delle 2 richieste,
adesso ho capito l'ambito di applicazione  e ti ringrazio per il
chiarimento. Ho vito che mcdany ti ha già postato una soluzione per cui per
questa volta mi risparmio e ti devo una soluzione per il prossimo  quesito!
Saluti
Cinzia

 ha scritto nel messaggio
news:cjehsb$bv5$1...@carabinieri.cs.interbusiness.it...

Ma dividere per 1000 in questo caso non va bene? troppo semplice?
PS

Come poter richiamare tale funzione avendola strutturata :
Public Function Scomponi()
Dim strNumero As String
Dim strParteIntera As String
Dim strParteDecimale As String
Dim strDecimalSeparator As String
Dim lDecimalPosition As Long
strNumero = Me.Prova
strDecimalSeparator = Mid(1 / 1, 2, 1) 'Estrae informazioni sul separatore
decimale
lDecimalPosition = InStr(1, strNumero, strDecimalSeparator) 'Posizione del
separatore
If lDecimalPosition > 0 Then 'Se esiste il separatore
   strParteIntera = left(strNumero, lDecimalPosition + 0) 'Parte
intera:prima del separatore
   strParteDecimale = Mid(strNumero, lDecimalPosition + 2) 'Parte
decimale:dopo il separatore
Else 'Se non viene rilevato il separatore
   strParteIntera = strNumero
   strParteDecimale = 0
End If
End Function
dove Me.Prova e l'oggetto TxT che contiene il valore da scomporre
volendo visualizzare la  Parte intera:prima del separatore?

 Ma dividere per 1000 in questo caso non va bene? troppo semplice?
Non troppo semplice, troppo semplicistica.
Si dovrebbe tenere in considerazione gli arrotondamenti del caso.
Cioè
    ? clng(999/1000)=1
mentre (credo) il nostro amico vorrebbe restituito 0.
Saluti.



Prima dell'End Function inserisci:
Scomponi=strParteIntera
P.S. Se posso permettermi "Scomponi" mi sembra una descrizione non adatta e
poco convenzionale. Proporrei DammiParteIntera o, ancora meglio,
GetIntegerPart.
Saluti,


 ha scritto nel messaggio
news:cjes09$5g4$1...@grillo.cs.interbusiness.it...

Ciao Daniele
ce un problema ,che il numero da scomporre non e nel formato 1,200
ma 1.200 e quindi no riesco ad estrarre valori esatti .
Ho applicato delle modifiche alla funzione ma con risultati poco
sodisfacenti.
poiché il codice riconosce i valori dopo la virgola e non dopo il punto.
Ciao Rino

 ha scritto nel messaggio
news:H3D6d.23813$35.12...@news4.tin.it...

Ciao Rino,
il nostro 1200 è ottenuto dalla procedura dell'altro post per cui di suo non
ha ne punti nè virgole
quindi puoi fare semplicememte
Peso = Arrotonda(x)
Kili = Peso \  1000   (divisione intera 1200 : 1000 = 1)
Etti = Peso Mod 1000   (resto della divisione Intera 1200 : 1000 resto 200)
Saluti
Cinzia

 Etti = Peso Mod 1000   (resto della divisione Intera 1200 : 1000 resto
200)
Era quello che intendevo anche io... certo non lo ho spiegato bene come te
;-)
Ciao
PS

 Etti = Peso Mod 1000   (resto della divisione Intera 1200 : 1000 resto
200)
Il metodo proposto ha il limite di essere applicato solo a numeri interi.
Considerando genericamente che il valore iniziale (1200) possa anche avere
dei decimali,
potrebbe essere 9999,6.
L'operazione quanto dovrebbe riportare?
E la tecnica che hai mostrato che valore ritorna?
Ciao :)))
