Имам необработени финансови текстови файлове, които импортирам в Access 2010 и експортирам във формат на Excel. Тези файлове съдържат няколко полета с дължина от 14 символа, които представляват стойности в долари. Имам проблеми с конвертирането на тези полета във валута поради 14-ия знак. 14-ият знак е число, представено със скоба или буква. Той също така диктува дали уникалното поле е положителна или отрицателна стойност.
Положителните числа от 0 до 9 започват с отворена скоба { е нула, A е едно, B е две,...I е девет.
Отрицателни числа от -0 до -9 (знам, че -0 е математическа грешка, но останете с мен. Не знам как иначе да го обясня.) започват със затваряща скоба } е -0, J е -1, K е -2,...R е -9.
Примерни данни (всички принадлежат към едно и също поле/колона):
0000000003422{ преобразувано е $342,20
0000000006245} преобразувано е -$624,50
0000000000210N преобразувано е -$21,05
0000000011468D преобразувано е $1,146.84
Ето заявката, с която работя. Всеки път, когато го изпълня, цялото поле се изтрива. Бих предпочел да се придържам към SQL заявка, ако е възможно, но съм отворен за всички методи за разрешаване.
SET FIELD_1 = Format(Left([FIELD_1],12) & "." & Mid([FIELD_1],13,1) & IIf(Right([FIELD_1],1)="{",0,IIf(Right([FIELD_1],1)="A",1,IIf(Right([FIELD_1],1)="B",2,IIf(Right([FIELD_1],1)="C",3,IIf(Right([FIELD_1],1)="D",4,IIf(Right([FIELD_1],1)="E",5,IIf(Right([FIELD_1],1)="F",6,IIf(Right([FIELD_1],1)="G",7,IIf(Right([FIELD_1],1)="H",8,IIf(Right([FIELD_1],1)="I",9,"")))))))))),"$##0.00"), IIf(Right([FIELD_1],1)="}",0,IIf(Right([FIELD_1],1)="J",1,IIf(Right([FIELD_1],1)="K",2,IIf(Right([FIELD_1],1)="L",3,IIf(Right([FIELD_1],1)="M",4,IIf(Right([FIELD_1],1)="N",5,IIf(Right([FIELD_1],1)="O",6,IIf(Right([FIELD_1],1)="P",7,IIf(Right([FIELD_1],1)="Q",8,IIf(Right([FIELD_1],1)="R",9,"")))))))))),"-$##0.00")
Mid("0000000000210N", 13, 1)
връща 0.Mid("0000000000210N", 14, 1)
връща N, което според мен всъщност искате. ЗабележкаRight("0000000000210N", 1)
ще ви даде N. - person HansUp   schedule 05.02.2015