Visualizzazione dei risultati da 1 a 9 su 9

Discussione: valuta nel db

  1. #1

    valuta nel db

    ciao a tutti
    ho un problemino di questo tipo.
    Una maschera raccoglie un valore valuta e lo scrive in un campo di tabella di access settato come valuta, numero cifre decimali automatiche.
    Nell'inserirlo, se il valore ha centesimi di euro, il valore viene moltiplicato per 100. Esempio 1162,02 diventa € 116.202,00. (se non ha centesimi funziona; es 350 diventa correttamente € 350,00)
    Non riesco a capire perchè succeda e a modificare questa scrittura inesatta.
    Chi mi sa aiutare, please?

  2. #2
    Il problema sta semplicemente nel fatto che tu inserisci i valori nel database con il punto anziché con la virgola. Devi inserire per es. 2,45 e non 2.45 perché access vuole la valuta con la virgola. Prova a fare un request!

  3. #3
    ciao
    non è quello il problema: al valore inserito applico un replace che sostituisce la virgola col punto e questo prima di fare l'insert.

    codice:
    importo=request.form("importo")
    importo=replace(importo,",",".")
    e poi

    codice:
    sql="insert into debito(num,pendenza,importo,aa1,aa2,decreto,del) values("&deb&",'"&pendenza&"',"&importo&","&aa1&","&aa2&","&decreto&",#"&del&"#)"
    Ciònonostante nel db me lo ritrovo modificato e richiamato successivamente con asp in un'altra maschera mi ritorna modificato..

    Non riesco a capire... grazie cmq

  4. #4
    A me pare che sia proprio questo il problema, il replace lo devi fare per sostituire il punto con una virgola e non il contrario. Sul database deve andare un numero con la virgola.

  5. #5
    uhm... il problema è che se io lascio la virgola come separatore decimale, allora mi fa conflitto nel sql perchèla virgola del valore che deve essere inserito viene visto invece come separatore tra i valori che sta inserendo; cioè in pratica ade sempio 45,39 li interpreta come 45 da mettere nel primo campo e 39 nel secondo; alla fine sballa ovviamente sul num totale dei campi.
    la cosa buffa, si fa per dire, è che in un'altra maschera il problema non si pone. Anche lì un valore da inserire che viene inserito senza problemi e senza modifiche nello stesso db con la stessa istruzione e le stesse specifiche!!

    codice:
    rata=request.Form("importo")
    rata=replace(rata,",",".")
    codice:
    sql2="insert into rate (num,nuovo_residuo,importo_rata,data_versamento,modalita,bolletta,chiave,importo_iniziale) values ("&deb&","&nuovo_residuo2&","&rata &",#"&dataright&"#,'"&modo&"',"&bolletta&",'"&chiave&"',"&importo_iniziale&")"
    in ogni caso grazie per la risposta

  6. #6
    Uhm...! Prova a vederequesta discussione se ti può essere di aiuto!

  7. #7
    nulla purtroppo...

  8. #8
    ciao
    non è che per caso qualcuno mi sa dare una risposta? Il problema mi si è ripresentato ora a distanza di tempo (l'altra volta non son riuscito a risolvere...)
    grazie

  9. #9
    non so dire perchè ma funziona se aggiungo queste righe:

    quota_inc=replace(quota_inc,".",",")
    quota_inc=quota_inc*(-1)
    quota_inc=replace(quota_inc,",",".")

    Così passo al db un valore col punto come separatore decimale, ma non viene più visto come separatore migliaia di access.
    (Nel mio caso io moltiplico per -1 perchè ho bisogno del valore negativo.)

    Spero sia di aiuto ad altri.

    ciao 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 © 2024 vBulletin Solutions, Inc. All rights reserved.