2015-08-16 2 views
0

В настоящее время у меня есть таблица базы данных Access 2013 с столбцом в ней, который имеет некоторые значения;Разбиение ячеек доступа на основе десятичной точки

Value1: 90.1244.1234 

Value2: 90.1295 

Я хотел бы разделить их на 3 столбца на основе десятичной точки.

Column1 Column2 Column 3 
90   1244  1234 

Однако, когда я пытаюсь разделить эти из значения, которые имеют только 1 десятичную точку, бросает #Func! ошибка. Вместо #Func! ошибка, я хотел бы оставить ячейку пустой.

код я использую:

First Split: Left$([JDE Account Number],InStr([JDE Account Number],".")-1) 

Middle Split: Mid([JDE Account Number],InStr([JDE Account Number],".")+1,InStrRev([JDE Account Number],".")-InStr([JDE Account Number],".")-1) 

Last Split: Right$([JDE Account Number],Len([JDE Account Number])-InStrRev([JDE Account Number],".")) 

Ее средний раскол, который вызывает #FUNC! поскольку иногда значения имеют только 1 десятичное место.

Есть ли способ каким-либо образом оставить среднюю ячейку пустой, если значение имеет только одно десятичное место, а не два?

ответ

0

Создать небольшую функцию:

Public Function SplitString(ByVal Triple As String, ByVal Element As Integer) As Variant 

    Dim Elements As Variant 
    Dim TriplePart As Variant 

    Elements = Split(Triple, ".") 

    If UBound(Elements) >= Element - 1 Then 
     TriplePart = Elements(Element - 1) 
    Else 
     TriplePart = Null 
    End If 

    SplitString = TriplePart 

End Function 

и использовать это в вашем запросе как выражение:

Column1: SplitString(Nz([JDE Account Number]),1) 
Column2: SplitString(Nz([JDE Account Number]),2) 
Column3: SplitString(Nz([JDE Account Number]),3) 
+0

Извинения @Gustav я забыл отметить этот отвеченный –

+0

Wauw! Лучше поздно, чем никогда. Благодаря! – Gustav

Смежные вопросы