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 |
schimbare format numere in access
Last Updated: Jan 08 2024 15:51, Started by
adiharan
, Jan 04 2024 10:15
·
0
#1
Posted 04 January 2024 - 10:15
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
Posted 04 January 2024 - 13:52
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
Posted 06 January 2024 - 10:21
Nu cred ca merge. Se pare ca se schimba doar modul de afisare, dar valoarea in sine ramine cu decimal separator-ul sistemului.
|
#4
Posted 06 January 2024 - 11:58
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
Posted 07 January 2024 - 12:59
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
Posted 07 January 2024 - 13:35
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
Posted 07 January 2024 - 23:14
_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
Posted 08 January 2024 - 00:49
pina la urma mi-a iesit, cam ciobaneste ce-i drept:
Replace(Format(.Fields("suma"), "###0.00"),",",".") |
#9
Posted 08 January 2024 - 09:27
cu formatul ala nu iti pune si separator de grupuri, nu? adica scoate 99999.99 sau 99,999.99 ?
|
#11
Posted 08 January 2024 - 11:20
atunci e ok. o solutie "ciobaneasca" la o problema "ciobaneasca"
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users