Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Instalare aer conditionat in apar...

Telefoane prietenoase cu vederea?

Alegere teava pentru incalzire pr...

Opinia publica despre medici/ asi...
 Senzor Temp PMOD-TMP3 cu TCN75A

Amazing Race

La multi ani @LouisCyphre!

Vinieta Bulgaria Online
 Investitie imobiliara in strainat...

Plita inducție gorenje IC340...

info schimbare buletin sectorul 4

Aplicație nivel scazut baterie
 Importul de cod extern avantaje v...

Alegere sistem usi glisante\...

Am primit credit in avans desi op...

Restituire prima casco dupa instr...
 

schimbare format numere in access

- - - - -
  • Please log in to reply
11 replies to this topic

#1
adiharan

adiharan

    Oldest member. Probably

  • Grup: Senior Members
  • Posts: 3,724
  • Înscris: 24.03.2002
Am o aplicatie de facturare in access pentru e-factura, si enervant este ca a trebuit sa schimb formatul numerelor in windows pentru a genera xml-ul compatibil pentru cei de la Anaf. Cu format(number) nu merge, sistemul face cumva overrite la formatul meu.

Acuma, n-as vrea un sub care pur si simplu sa-mi inlocuiasca virgula cu punct, mi se pare cam din topor.
Acuma, eu in C# am rezolvat elegant problema, dar la vb nu prea ma pricep. In C# am rezolvat asa:

System.Globalization.CultureInfo inf = (System.Globalization.CultureInfo)System.Windows.Forms.Application.CurrentCulture.Clone();
    inf.NumberFormat.NumberDecimalSeparator = ",";
    System.Windows.Forms.Application.CurrentCulture = inf;

Este in vba ceva asemanator, si sa nu trebuiasca sa schimb formatul numerelor pentru tot win?

#2
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,127
  • Înscris: 24.02.2006
pune codul cu care generezi xml, ca sa ne putem da seama ce anume faci acolo
in principiu in VBA  ai Application.DecimalSeparator si Application.UseSystemSeparators, dar depinde si cum le folosesti

#3
adiharan

adiharan

    Oldest member. Probably

  • Grup: Senior Members
  • Posts: 3,724
  • Înscris: 24.03.2002
Nu cred ca merge. Se pare ca se schimba doar modul de afisare, dar valoarea in sine ramine cu decimal separator-ul sistemului.

#4
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,127
  • Înscris: 24.02.2006
valorile din memorie nu au separator zecimal :). acesta este adaugat atunci cand se afiseaza (sau se pregateste pt afisare) valoarea.
n-ai pus codul folosit pt a genera xml-ul, deci e greu de spus ce ar trebui sa faci acolo. in principiu ar trebui sa folosesti un ToString() si sa-i poti da un IFormatProvider sau un CultureInfo.

ps: cred ca in VBA ai acces atat la _.Value cat si la _.Text; ar trebui ca acel _.Text sa fie formatat conform cu Application.DecimalSeparator

#5
adiharan

adiharan

    Oldest member. Probably

  • Grup: Senior Members
  • Posts: 3,724
  • Înscris: 24.03.2002
cam asa arata o linie care scrie valoarea intr-un fisier xml:

Set rs = CurrentDb.OpenRecordset("2")
    'While Not rs.EOF

    With rs
                        out_file.writeline "     <cbc:TaxableAmount currencyID=""RON"" >" & Format(.Fields("suma"), "####0.00") & "</cbc:TaxableAmount>"

numele tabelului e 2. Dar format(...) nu functioneaza. Cu toate ca eu scriu in cod formatul "####0.00" daca in sistem separatorul decimal e virgula, imi afiseaza virgula, nu punct.

#6
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,127
  • Înscris: 24.02.2006
Format() foloseste intotdeauna setarile locale . cred ca Str() foloseste mereu punctul pe post de separator, dar cred ca trebuie sa rotunjesti inainte numarul la 2 zecimale (daca e cazul).

#7
adiharan

adiharan

    Oldest member. Probably

  • Grup: Senior Members
  • Posts: 3,724
  • Înscris: 24.03.2002

 _Smiley_, on 07 ianuarie 2024 - 13:35, said:

Format() foloseste intotdeauna setarile locale . cred ca Str() foloseste mereu punctul pe post de separator, dar cred ca trebuie sa rotunjesti inainte numarul la 2 zecimale (daca e cazul).

Nu prea imi iese. Intr-adevar, str() foloseste . ca simbol decimal, dar chiar daca ii dau un numar cu 2 zecimale goale (0,00), mi-l returneaza 0, fara zecimale.

#8
adiharan

adiharan

    Oldest member. Probably

  • Grup: Senior Members
  • Posts: 3,724
  • Înscris: 24.03.2002
pina la urma mi-a iesit, cam ciobaneste ce-i drept:

Replace(Format(.Fields("suma"), "###0.00"),",",".")

#9
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,127
  • Înscris: 24.02.2006
cu formatul ala nu iti pune si separator de grupuri, nu? adica scoate 99999.99 sau 99,999.99 ?

#10
adiharan

adiharan

    Oldest member. Probably

  • Grup: Senior Members
  • Posts: 3,724
  • Înscris: 24.03.2002
Da, fara separator. Asa trebuie in e-factura.

#11
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,127
  • Înscris: 24.02.2006
atunci e ok. o solutie "ciobaneasca" la o problema "ciobaneasca" :)

#12
adiharan

adiharan

    Oldest member. Probably

  • Grup: Senior Members
  • Posts: 3,724
  • Înscris: 24.03.2002
:)
mersi.

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate