Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [VB6]Formattazione euro

    Ciao ragazzi, ho guardato i post precedenti del forum e ho seguito i vari esempi, ma non mi funzionano.
    ...intendevo la formattazione della valuta con due numeri decimali.
    Questo è il codice:
    codice:
    PreVen = RsAnaProd.Fields("PrezzoVendita").Value
    PreVen = Format(PreVen, "#,##0.00")
    txtPrezzoVen.Text = PreVen
    ma alla fine mi ritorna un singola decimale (2,5 anzichè 2,50) o nulla (anzichè 2,00).

  2. #2
    Probabilmente passando attraverso il campo di appoggio PreVen la prima istruzione lo definisce numerico e da qui la perdita dello zero finale, io proverei con istruzione diretta del tipo

    txtPrezzoVen.Text =Format(RsAnaProd.Fields("PrezzoVendita").Value, "#,##0.00")

    Se l'hai già provata non tener conto del suggerimento.

    Ciao

  3. #3
    il comando corretto è questo


    PreVen = RsAnaProd.Fields("PrezzoVendita").Value
    PreVen = Format(PreVen, "#,##0.00#")
    txtPrezzoVen.Text = PreVen

  4. #4
    Innanzi tutto grazie delle risposte.
    Ho provato i due codici che mi avete postato, quello che diceva vitren è giusto, perdevo la formattazione.
    Invece la modifica che mi ha dato stegtw non mi funziona, mi da il solito problema.Forse perchè la variabile è settata come Double?

    Grazie.

  5. #5
    EH SI! penso che il problema sia proprio questo... Anche se non capisco come mai. Prova a togliere il dim della variabile (ovviamente se non hai l'OPTION EXPLICIT, in quel caso togli anche quello). Se non metti il dim dovrebbe andare di sicuro!

  6. #6
    Non ho capito in che modo mi stai dicendo di dichiarare la variabile.
    Io l'ho dichiarato all'inizio come
    codice:
    Dim PrezzoVen As Double
    ...tu mi dici di togliere il Dim?Ma in questo caso mi da l'errore di "type".

  7. #7
    Togli proprio tutta la riga...

  8. #8
    E infatti funziona

    Ora ho un'altra domanda.
    Quando inserisco i dati nel db(access) c'è l'errore della "," (access legge il ".", mentre vb la ","), perciò uso il replace:
    codice:
    txtPrezzoAcq.Text = Replace(txtPrezzoAcq.Text, ".", ",")
    RsAnaProd("PrezzoAcquisto") = txtPrezzoAcq
    il problema è che così da continua ad aggiungere "00" sia se uso la "," sia se uso il "."
    Risultato che il valore 120 diventa 1.2000,00
    In ogni caso aggiunge 00 alla fine

  9. #9
    Credo che il consiglio dato da stegtw non sia tanto ortodosso. Eliminando l'OPTION EXPLICIT e la dichiarazione della variabile PreVen risolvi sì, ma in un modo abbastanza "empirico" e deleterio per il debug del programma. In pratica, senza togliere l'OPTION EXPLICIT, bastava dichiarare
    codice:
    Dim PreVen As Variant
    e l'effetto è lo stesso di quello consigliato da stegtw. In ogni caso anche questa soluzione non è consigliabile, il tipo Variant dovrebbe essere usato il meno possibile!

    Il problema, riferendomi al codice originale:
    codice:
    Dim PreVen As Double
    PreVen = RsAnaProd.Fields("PrezzoVendita").Value
    PreVen = Format(PreVen, "#,##0.00")
    txtPrezzoVen.Text = PreVen
    era nella terza riga, dove la funzione Format restituisce una stringa (per esempio "500,00") che poi viene riconvertita in double quando viene assegnata a PreVen. Un metodo più corretto è come quello che ha proposto vitren54, così:
    codice:
    Dim PreVen As Double
    PreVen = RsAnaProd.Fields("PrezzoVendita").Value
    txtPrezzoVen.Text = Format(PreVen, "#,##0.00")
    Chi non cerca trova.

  10. #10
    Ho capito qual è il problema. Se tu non setti la variabile in output a video la visualizza correttamente, ma nel database la riconosce come una stringa e per tanto fa casino. tu prova a seguire il consiglio di TAS e intanto io cerco, perchè ho avuto un problema simile pochi giorni fa... CIAO

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.